[libcxx-commits] [PATCH] D145508: [libc++] Reject standard attributes which are extensions in libcpp-uglify-attributes

Richard Smith - zygoloid via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Fri Apr 7 14:25:49 PDT 2023


rsmith added a comment.

There still appear to be problems after this patch. It looks like a test that defines these tokens to "weird" things and then tries including the libc++ headers would have caught these issues.



================
Comment at: libcxx/include/__config:1190
 
 #  if __has_cpp_attribute(msvc::no_unique_address)
 // MSVC implements [[no_unique_address]] as a silent no-op currently.
----------------
This is still broken. We'll fail to compile this header if `msvc` or `no_unique_address` is defined as a macro that expands to something other than a single identifier. My understanding is that the direction on the bug was to remove the `msvc::no_unique_address` handling entirely.


================
Comment at: libcxx/include/__config:1200
 #    define _LIBCPP_NO_UNIQUE_ADDRESS [[msvc::no_unique_address]]
 #  elif __has_cpp_attribute(no_unique_address)
+#    define _LIBCPP_NO_UNIQUE_ADDRESS [[__no_unique_address__]]
----------------
This is also still broken, if `no_unique_address` is defined as a macro.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D145508/new/

https://reviews.llvm.org/D145508



More information about the libcxx-commits mailing list