From b30f9ce6a87e94b34c1420323e445c07eee8305e Mon Sep 17 00:00:00 2001 From: xleroy Date: Thu, 15 May 2014 07:27:56 +0000 Subject: - Re-added support for "__func__" identifier as per ISO C99. - Support for empty structs and unions - Better handling of "extern" and "extern inline" function definitions. git-svn-id: https://yquem.inria.fr/compcert/svn/compcert/trunk@2493 fca1b0fc-160b-0410-b1d3-a4f43f01ea2e --- cfrontend/C2C.ml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'cfrontend') diff --git a/cfrontend/C2C.ml b/cfrontend/C2C.ml index 8799bc0..d389d0a 100644 --- a/cfrontend/C2C.ml +++ b/cfrontend/C2C.ml @@ -1069,9 +1069,13 @@ let convertProgram p = let atom_is_static a = try let i = Hashtbl.find decl_atom a in - i.a_storage = C.Storage_static || i.a_inline - (* inline functions can remain in generated code, but at least - let's not make them global *) + (* inline functions can remain in generated code, but should not + be global, unless explicitly marked "extern" *) + match i.a_storage with + | C.Storage_default -> i.a_inline + | C.Storage_extern -> false + | C.Storage_static -> true + | C.Storage_register -> false (* should not happen *) with Not_found -> false -- cgit v1.2.3