[cfe-commits] [patch] Add codegen support for __uuidof

Nico Weber thakis at chromium.org
Mon Oct 1 21:56:47 PDT 2012


On Mon, Oct 1, 2012 at 3:56 PM, Nico Weber <thakis at chromium.org> wrote:
> 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()).

Ping. It's a fairly short and simple-minded patch, I promise :-)

Nico



More information about the cfe-commits mailing list