Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion clang/lib/Sema/SemaExprMember.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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();
}
Expand Down
8 changes: 4 additions & 4 deletions clang/test/SemaCXX/vector-bool.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,10 +85,10 @@ void foo(const bool& X);

// Disallow element-wise access.
bool* ElementRefs() {
eight_bools.y = false; // expected-error@88 {{illegal vector component name ''y''}}
&eight_bools.z; // expected-error@89 {{illegal vector component name ''z''}}
foo(eight_bools.w); // expected-error@90 {{illegal vector component name ''w''}}
foo(eight_bools.wyx); // expected-error@91 {{illegal vector component name ''wyx''}}
eight_bools.y = false; // expected-error@88 {{illegal vector component name 'y'}}
&eight_bools.z; // expected-error@89 {{illegal vector component name 'z'}}
foo(eight_bools.w); // expected-error@90 {{illegal vector component name 'w'}}
foo(eight_bools.wyx); // expected-error@91 {{illegal vector component name 'wyx'}}
}

void Sizeof() {
Expand Down