Hi,
the attached patch adds codegen support for __uuidof. It's fairly
similar to how the RTTI descriptor code works. What __uuidof does:
Structs can be tagged with __declspec(uuid("some string with
numbers")), and after that __uuidof(taggedstruct) returns a IID struct
filled with the numbers from the uuid declspec attribute. See
test/Parser/MicrosoftExtensions.cpp and the included test for more
information.
I moved GetUuidAttrOfType() out of Sema since codegen now needs it
too. I couldn't find a great place for it -- it's a static function on
CXXUuidofExpr. Since that expression isn't very useful without uuid
attrs, it's a reasonable place for it I think.
I'm not very familiar with visibilities. WeakAnyLinkage is mostly a
guess, so please check that.
The name of the symbol generated for __uuidof constants seems to be an
implementation detail, so I just made up a mangling ("__uuid_"
followed by the contents of the uuid, see GetAddrOfIIDDescriptor()).
Nico
uuid.patch
Description: Binary data
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
