yaxunl marked an inline comment as done.
yaxunl added inline comments.

================
Comment at: include/clang/AST/Type.h:336-342
+  /// Get the address space value used in diagnostics.
+  unsigned getAddressSpacePrintValue() const {
+    unsigned AS = getAddressSpace();
+    if (AS >= LangAS::target_first)
+      return AS - LangAS::target_first;
+    return AS;
+  }
----------------
yaxunl wrote:
> t-tye wrote:
> > Is this the right thing to do? This is making the CLANG named address 
> > spaces have the same numbers as the target-specific address space numbers 
> > which would seem rather confusing.
> > 
> > What do the diagnostics want to display? For example, they could display 
> > the address space as a human readable form such as "Default", 
> > "OpenCL-global", CUDA-device", "target-specific(5)", etc. To do that this 
> > function could take an iostream and a LangAS value and use << to write to 
> > the iostream.
> This function is used by diagnostics for address spaces specified by 
> `__attribute__((address_space(n)))`. There are several lit tests for that, 
> e.g. 
> 
> https://github.com/llvm-mirror/clang/blob/master/test/SemaCXX/address-space-newdelete.cpp
> https://github.com/llvm-mirror/clang/blob/master/test/SemaCXX/address-space-references.cpp
> 
> It is desirable to use the same value as specified by the attribute, 
> otherwise it may confuse the user.
I can change it to

```
  unsigned getAddressSpacePrintValue() const {
    return getAddressSpace() - LangAS::target_first;
  }
```
Since the value is only used for `__attribute__((address_space(n)))`, in case 
the user specifies negative value to achieve language specific addr space, the 
diag msg will just show the same negative value they used in  
`__attribute__((address_space(n)))`


https://reviews.llvm.org/D31404



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

Reply via email to