zahiraam marked 4 inline comments as done.
zahiraam added inline comments.

================
Comment at: lib/Parse/ParseDecl.cpp:572
+    DeclSpecUuidDecl *ArgDecl =
+      DeclSpecUuidDecl::Create(Actions.getASTContext(),
+                               Actions.getFunctionLevelDeclContext(),
----------------
rsmith wrote:
> What should happen if multiple declarations (of distinct entities) use the 
> same `__declspec(uuid(...))` attribute? Should you get a redefinition error 
> for the attribute or should they all share the same UUID entity? Either way, 
> we'll want to do some (minimal) UUID lookup and build a redeclaration chain 
> for `DeclSpecUuidDecl`s.
If we want to align with MS, we don't want  to signal an error. So may be I 
should have a map that assigns to each StrUuid a list of DeclSpecUuid?
So for this code:
struct
__declspec(uuid("{DDB47A6A-0F23-11D5-9109-00E0296B75D3}"))
S1 {};

struct
__declspec(uuid("{DDB47A6A-0F23-11D5-9109-00E0296B75D3}"))
S2 {};

I will have a map from DDB47A6A-0F23-11D5-9109-00E0296B75D3 to {S1, S2}. Do you 
agree?



================
Comment at: lib/Sema/SemaDeclAttr.cpp:4937-4938
-      return nullptr;
-    Diag(UA->getLocation(), diag::err_mismatched_uuid);
-    Diag(Range.getBegin(), diag::note_previous_uuid);
-    D->dropAttr<UuidAttr>();
----------------
rsmith wrote:
> Do we still diagnose UUID mismatches somewhere else?
Not as far as I know. I guess I should put this diag somewhere?


https://reviews.llvm.org/D43576



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
  • [PATCH] D43576: S... Zahira Ammarguellat via Phabricator via cfe-commits
    • [PATCH] D435... Zahira Ammarguellat via Phabricator via cfe-commits
    • [PATCH] D435... Richard Smith - zygoloid via Phabricator via cfe-commits
    • [PATCH] D435... Zahira Ammarguellat via Phabricator via cfe-commits

Reply via email to