diff options
author | dim <dim@FreeBSD.org> | 2013-12-22 00:07:40 +0000 |
---|---|---|
committer | dim <dim@FreeBSD.org> | 2013-12-22 00:07:40 +0000 |
commit | 952eddef9aff85b1e92626e89baaf7a360e2ac85 (patch) | |
tree | df8df0b0067b381eab470a3b8f28d14a552a6340 /test/CXX/expr/expr.unary/expr.sizeof/p1.cpp | |
parent | ea266cad53e3d49771fa38103913d3ec7a166694 (diff) | |
download | FreeBSD-src-952eddef9aff85b1e92626e89baaf7a360e2ac85.zip FreeBSD-src-952eddef9aff85b1e92626e89baaf7a360e2ac85.tar.gz |
Vendor import of clang release_34 branch r197841 (effectively, 3.4 RC3):
https://llvm.org/svn/llvm-project/cfe/branches/release_34@197841
Diffstat (limited to 'test/CXX/expr/expr.unary/expr.sizeof/p1.cpp')
-rw-r--r-- | test/CXX/expr/expr.unary/expr.sizeof/p1.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/test/CXX/expr/expr.unary/expr.sizeof/p1.cpp b/test/CXX/expr/expr.unary/expr.sizeof/p1.cpp index 6a59e3d..aa76b3a 100644 --- a/test/CXX/expr/expr.unary/expr.sizeof/p1.cpp +++ b/test/CXX/expr/expr.unary/expr.sizeof/p1.cpp @@ -18,3 +18,31 @@ void test(A *a) { x = sizeof(a->bitX = 3); // expected-error {{invalid application of 'sizeof' to bit-field}} x = sizeof(a->bitY += 3); // expected-error {{invalid application of 'sizeof' to bit-field}} } + +void test2() { + int x; + x = sizeof(void); // expected-error {{invalid application of 'sizeof' to an incomplete type 'void'}} + x = sizeof(int()); // expected-error {{invalid application of 'sizeof' to a function type}} + x = sizeof(test2()); // expected-error {{invalid application of 'sizeof' to an incomplete type 'void'}} + x = sizeof(test2); // expected-error {{invalid application of 'sizeof' to a function type}} +} + +namespace pr16992 { + +template<typename T> struct ABC { + int func () { + return sizeof T; // expected-error {{expected parentheses around type name in sizeof expression}} + } +}; + +ABC<int> qq; + +template<typename T> struct ABC2 { + int func () { + return sizeof T::A; + } +}; + +struct QQ { int A; }; +ABC2<QQ> qq2; +} |