From 987a14bf5883ef6e5d07f1c83eb6d41a8212a78c Mon Sep 17 00:00:00 2001 From: Argyrios Kyrtzidis Date: Fri, 22 Aug 2008 15:38:55 +0000 Subject: 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 --- test/SemaCXX/type-convert-construct.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 test/SemaCXX/type-convert-construct.cpp (limited to 'test/SemaCXX/type-convert-construct.cpp') 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}} +} -- cgit v1.2.3-70-g09d2