On Wed, May 14, 2014 at 8:58 PM, David Majnemer <[email protected]>wrote:
> I'm a bit concerned with moving the DLLImport/DLLExport related linkage > calculation into Sema out of CodeGen. I have a feeling that this will > trigger warn_static_local_in_extern_inline when a static local variable > inside of a dllimport'd function. > > Considering that other things like VTables and RTTI don't rely on the > GVALinakge mechanism and will need the ability to "upgrade" some linkage to > a DLLImport/DLLExport friendly linkage, I think I'd rather see a > DLLImport/DLLExport handled via a function which takes an arbitrary > llvm::GlobalVariable linkage and a Decl and figures out what the final > linkage should be. > > This kind of upgrading is common inside of CodeGen, > GetAddrOfGlobalTemporary is a notable example of this.] > IMO the linkage at the AST level should reflect what the user wrote, and the user used dllexport plus inline, giving GVA_StrongODR. This is useful information for other Clang-based tools. I think CodeGen will always have to munge GlobalValue linkages for entities that don't exist in the user's program, for example, vtables and global reference temporaries.
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
