aboutsummaryrefslogtreecommitdiff
path: root/test/SemaCXX/type-convert-construct.cpp
diff options
context:
space:
mode:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>2008-08-22 15:38:55 +0000
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>2008-08-22 15:38:55 +0000
commit987a14bf5883ef6e5d07f1c83eb6d41a8212a78c (patch)
treed5691abce8108c4987271f3bcf4a2fb4c147640a /test/SemaCXX/type-convert-construct.cpp
parentdfb99a968b3cebe4ca5dd7941f228678f2cb3566 (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.cpp10
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}}
+}