diff options
author | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-08-22 15:38:55 +0000 |
---|---|---|
committer | Argyrios Kyrtzidis <akyrtzi@gmail.com> | 2008-08-22 15:38:55 +0000 |
commit | 987a14bf5883ef6e5d07f1c83eb6d41a8212a78c (patch) | |
tree | d5691abce8108c4987271f3bcf4a2fb4c147640a /test/SemaCXX/type-convert-construct.cpp | |
parent | dfb99a968b3cebe4ca5dd7941f228678f2cb3566 (diff) |
Add support for C++'s "type-specifier ( expression-list )" expression:
-The Parser calls a new "ActOnCXXTypeConstructExpr" action.
-Sema, depending on the type and expressions number:
-If the type is a class, it will treat it as a class constructor. [TODO]
-If there's only one expression (i.e. "int(0.5)" ), creates a new "CXXFunctionalCastExpr" Expr node
-If there are no expressions (i.e "int()" ), creates a new "CXXZeroInitValueExpr" Expr node.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@55177 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/SemaCXX/type-convert-construct.cpp')
-rw-r--r-- | test/SemaCXX/type-convert-construct.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/test/SemaCXX/type-convert-construct.cpp b/test/SemaCXX/type-convert-construct.cpp new file mode 100644 index 0000000000..4641718bde --- /dev/null +++ b/test/SemaCXX/type-convert-construct.cpp @@ -0,0 +1,10 @@ +// RUN: clang -fsyntax-only -verify %s + +void f() { + float v1 = float(1); + int v2 = typeof(int)(1,2); // expected-error {{function-style cast to a builtin type can only take one argument}} + typedef int arr[]; + int v3 = arr(); // expected-error {{array types cannot be value-initialized}} + int v4 = int(); + int v5 = int; // expected-error {{expected '(' for function-style cast or type construction}} +} |