]> granicus.if.org Git - clang/commit
Introduce a new expression node, ImplicitValueInitExpr, that
authorDouglas Gregor <dgregor@apple.com>
Thu, 29 Jan 2009 17:44:32 +0000 (17:44 +0000)
committerDouglas Gregor <dgregor@apple.com>
Thu, 29 Jan 2009 17:44:32 +0000 (17:44 +0000)
commit3498bdb9e9cb300de74c7b51c92608e2902b2348
tree89551f7a11a7dccdf3248398d584abc31350505d
parent0bb76897bedb8b747efc6523efb432fc24966118
Introduce a new expression node, ImplicitValueInitExpr, that
represents an implicit value-initialization of a subobject of a
particular type. This replaces the (ab)use of CXXZeroValueInitExpr
within initializer lists for the "holes" that occur due to the use of
C99 designated initializers.

The new test case is currently XFAIL'd, because CodeGen's
ConstExprEmitter (in lib/CodeGen/CGExprConstant.cpp) needs to be
taught to value-initialize when it sees ImplicitValueInitExprs.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@63317 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/AST/Expr.h
include/clang/AST/StmtNodes.def
lib/AST/Expr.cpp
lib/AST/StmtPrinter.cpp
lib/CodeGen/CGExprAgg.cpp
lib/CodeGen/CGExprComplex.cpp
lib/CodeGen/CGExprConstant.cpp
lib/CodeGen/CGExprScalar.cpp
lib/Sema/SemaDecl.cpp
lib/Sema/SemaInit.cpp
test/CodeGen/designated-initializers.c [new file with mode: 0644]