summaryrefslogtreecommitdiffstats
path: root/clang/test/SemaCXX/references.cpp
diff options
context:
space:
mode:
authorAnders Carlsson <andersca@mac.com>2010-01-31 17:18:49 +0000
committerAnders Carlsson <andersca@mac.com>2010-01-31 17:18:49 +0000
commit8abde4b447dba9647a50b04e732294e2e2a4e843 (patch)
tree6d0124cde73e8f25b2f64d46e5c18ec41638ab9c /clang/test/SemaCXX/references.cpp
parentcd6d4260757c9c7a82aff1c0bde11083334d5f6e (diff)
downloadbcm5719-llvm-8abde4b447dba9647a50b04e732294e2e2a4e843.tar.gz
bcm5719-llvm-8abde4b447dba9647a50b04e732294e2e2a4e843.zip
Diagnose binding a non-const reference to a vector element.
llvm-svn: 94963
Diffstat (limited to 'clang/test/SemaCXX/references.cpp')
-rw-r--r--clang/test/SemaCXX/references.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/clang/test/SemaCXX/references.cpp b/clang/test/SemaCXX/references.cpp
index 630f53f2839..df8337bec82 100644
--- a/clang/test/SemaCXX/references.cpp
+++ b/clang/test/SemaCXX/references.cpp
@@ -102,3 +102,16 @@ string getInput();
void test9() {
string &s = getInput(); // expected-error{{lvalue reference}}
}
+
+void test10() {
+ __attribute((vector_size(16))) typedef int vec4;
+ typedef __attribute__(( ext_vector_type(4) )) int ext_vec4;
+
+ vec4 v;
+ int &a = v[0]; // expected-error{{non-const reference cannot bind to vector element}}
+ const int &b = v[0];
+
+ ext_vec4 ev;
+ int &c = ev.x; // expected-error{{non-const reference cannot bind to vector element}}
+ const int &d = ev.x;
+}
OpenPOWER on IntegriCloud