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

Reply via email to