rsmith added inline comments.

================
Comment at: include/clang/AST/ASTContext.h:1428
+                             QualType equivalentType,
+                             IdentifierInfo *AddressSpaceMacroII = nullptr);
 
----------------
There is no reason to make this specific to address space attributes. Please 
keep it general.


================
Comment at: lib/AST/TypePrinter.cpp:1370
+
+    // Remove the underlying address space so it won't be printed.
+    SplitQualType SplitTy = T->getModifiedType().split();
----------------
This is unnecessary; just print the modified type here. (The modified type by 
definition does not have the attribute applied to it.)


================
Comment at: lib/Sema/SemaType.cpp:5817-5822
+      IdentifierInfo *AddressSpaceMacroII = nullptr;
+      auto FoundMacro = S.PP.AddressSpaceMacros.find(
+          S.SourceMgr.getSpellingLoc(Attr.getLoc()));
+      if (FoundMacro != S.PP.AddressSpaceMacros.end())
+        AddressSpaceMacroII = FoundMacro->second;
+
----------------
This is not the right way to find the macro.

What you should do is this: look at the source range of the attribute, and find 
the object-like macro expansion(s) common to both the start and end location. 
Search through those for the outermost macro expansion whose range is that of 
the attribute plus the enclosing syntax (`__attribute__((` ... `))` or `[[` ... 
`]]` or similar). That macro name is the name that was used to write this type, 
and that's the name we should preserve.

Plus, please do this all from `getAttributedType` itself so that it applies to 
all type attributes, not just address space attributes.


================
Comment at: test/Sema/address_space_print_macro.c:3-4
+
+#define _AS1 __attribute__((address_space(1)))
+#define _AS2 __attribute__((address_space(2)))
+
----------------
I know this is just a test, but please avoid using reserved identifiers here. 
(Drop the leading `_` from these macro names.)


Repository:
  rC Clang

https://reviews.llvm.org/D51329



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

Reply via email to