]> granicus.if.org Git - clang/commit
Add support for C++'s "type-specifier ( expression-list )" expression:
authorArgyrios Kyrtzidis <akyrtzi@gmail.com>
Fri, 22 Aug 2008 15:38:55 +0000 (15:38 +0000)
committerArgyrios Kyrtzidis <akyrtzi@gmail.com>
Fri, 22 Aug 2008 15:38:55 +0000 (15:38 +0000)
commit987a14bf5883ef6e5d07f1c83eb6d41a8212a78c
treed5691abce8108c4987271f3bcf4a2fb4c147640a
parentdfb99a968b3cebe4ca5dd7941f228678f2cb3566
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
14 files changed:
include/clang/AST/ExprCXX.h
include/clang/AST/StmtNodes.def
include/clang/Basic/DiagnosticKinds.def
include/clang/Parse/Action.h
include/clang/Parse/Parser.h
lib/AST/Expr.cpp
lib/AST/ExprCXX.cpp
lib/AST/StmtPrinter.cpp
lib/AST/StmtSerialization.cpp
lib/Parse/ParseExpr.cpp
lib/Parse/ParseExprCXX.cpp
lib/Sema/Sema.h
lib/Sema/SemaExprCXX.cpp
test/SemaCXX/type-convert-construct.cpp [new file with mode: 0644]