rsmith added a comment.

In https://reviews.llvm.org/D43576#1019703, @zahiraam wrote:

> Currently this declaration:
> struct
>  __declspec(uuid("{DDB47A6A-0F23-11D5-9109-00E0296B75D3}"))
>  S1;
>
> a CXXRecordDecl type is generated with attributes (the uuid being an 
> attribute). Are you proposing that instead a new type is generated for S1 say 
> something like CXXUuidRecord? And create also a new TagType that corresponds 
> to this new Decl?


No. Concretely, I'd suggest we create a new `UuidDecl` object representing the 
`_GUID` object. An instance of `UuidDecl` would be created and owned by the 
`uuid` attribute, and `__uuidof(X)` would denote the `UuidDecl` owned by the 
`uuid` attribute on the `CXXRecordDecl`. We'd also need some way to form 
redeclaration chains for `UuidDecl`s (which means we'll need a map from UUID to 
`UuidDecl` somewhere, perhaps on the `ASTContext`).


https://reviews.llvm.org/D43576



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to