[clang] Fix double-quotes in diagnostic when attempting to access a ext_vector of bools (PR #118186)

via cfe-commits cfe-commits at lists.llvm.org
Sat Nov 30 14:08:45 PST 2024


llvmbot wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-clang

Author: William Tran-Viet (smallp-o-p)

<details>
<summary>Changes</summary>

Fixes #<!-- -->116932 

---
Full diff: https://github.com/llvm/llvm-project/pull/118186.diff


2 Files Affected:

- (modified) clang/lib/Sema/SemaExprMember.cpp (+3-1) 
- (modified) clang/test/SemaCXX/vector-bool.cpp (+4-4) 


``````````diff
diff --git a/clang/lib/Sema/SemaExprMember.cpp b/clang/lib/Sema/SemaExprMember.cpp
index 434768b99d631e..3d843bb84d9d8b 100644
--- a/clang/lib/Sema/SemaExprMember.cpp
+++ b/clang/lib/Sema/SemaExprMember.cpp
@@ -1655,8 +1655,10 @@ static ExprResult LookupMemberExpr(Sema &S, LookupResult &R,
     // We disallow element access for ext_vector_type bool.  There is no way to
     // materialize a reference to a vector element as a pointer (each element is
     // one bit in the vector).
+    assert(MemberName.isIdentifier() &&
+           "Ext vector component name not an identifier!");
     S.Diag(R.getNameLoc(), diag::err_ext_vector_component_name_illegal)
-        << MemberName
+        << MemberName.getAsIdentifierInfo()->getName()
         << (BaseExpr.get() ? BaseExpr.get()->getSourceRange() : SourceRange());
     return ExprError();
   }
diff --git a/clang/test/SemaCXX/vector-bool.cpp b/clang/test/SemaCXX/vector-bool.cpp
index e99d420e73fab2..cd638056f348b0 100644
--- a/clang/test/SemaCXX/vector-bool.cpp
+++ b/clang/test/SemaCXX/vector-bool.cpp
@@ -85,10 +85,10 @@ void foo(const bool& X);
 
 // Disallow element-wise access.
 bool* ElementRefs() {
-  eight_bools.y = false; // expected-error at 88 {{illegal vector component name ''y''}}
-  &eight_bools.z;        // expected-error at 89 {{illegal vector component name ''z''}}
-  foo(eight_bools.w);    // expected-error at 90 {{illegal vector component name ''w''}}
-  foo(eight_bools.wyx);  // expected-error at 91 {{illegal vector component name ''wyx''}}
+  eight_bools.y = false; // expected-error at 88 {{illegal vector component name 'y'}}
+  &eight_bools.z;        // expected-error at 89 {{illegal vector component name 'z'}}
+  foo(eight_bools.w);    // expected-error at 90 {{illegal vector component name 'w'}}
+  foo(eight_bools.wyx);  // expected-error at 91 {{illegal vector component name 'wyx'}}
 }
 
 void Sizeof() {

``````````

</details>


https://github.com/llvm/llvm-project/pull/118186


More information about the cfe-commits mailing list