]> granicus.if.org Git - clang/commit
Compound literals, enums, et al require const expr
authorBill Wendling <isanbard@gmail.com>
Fri, 9 Nov 2018 00:41:36 +0000 (00:41 +0000)
committerBill Wendling <isanbard@gmail.com>
Fri, 9 Nov 2018 00:41:36 +0000 (00:41 +0000)
commited611fa5aace7533cbd8ffcf27fdcc5208bfaa2f
treef5e40550687ce7795444e440b9a9968c0f5b4dd1
parent130d3d039ee8886084c8dfe038b3183db72f6788
Compound literals, enums, et al require const expr

Summary:
Compound literals,  enums, file-scoped arrays, etc. require their
initializers and size specifiers to be constant. Wrap the initializer
expressions in a ConstantExpr so that we can easily check for this later
on.

Reviewers: rsmith, shafik

Reviewed By: rsmith

Subscribers: cfe-commits, jyknight, nickdesaulniers

Differential Revision: https://reviews.llvm.org/D53921

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@346455 91177308-0d34-0410-b5e6-96231b3b80d8
30 files changed:
include/clang/AST/Expr.h
include/clang/ASTMatchers/ASTMatchers.h
lib/AST/ASTImporter.cpp
lib/AST/Expr.cpp
lib/AST/ExprConstant.cpp
lib/ASTMatchers/ASTMatchersInternal.cpp
lib/ASTMatchers/Dynamic/Registry.cpp
lib/Analysis/CFG.cpp
lib/CodeGen/CGExpr.cpp
lib/CodeGen/CGExprAgg.cpp
lib/CodeGen/CGExprComplex.cpp
lib/CodeGen/CGExprConstant.cpp
lib/CodeGen/CGExprScalar.cpp
lib/Sema/SemaExpr.cpp
lib/Sema/SemaInit.cpp
lib/Sema/SemaOverload.cpp
lib/Sema/SemaType.cpp
lib/StaticAnalyzer/Core/Environment.cpp
lib/StaticAnalyzer/Core/ExprEngine.cpp
test/Import/switch-stmt/test.cpp
test/Misc/ast-dump-attr.cpp
test/Misc/ast-dump-c-attr.c
test/Misc/ast-dump-color.cpp
test/Misc/ast-dump-decl.c
test/Misc/ast-dump-decl.cpp
test/SemaCXX/compound-literal.cpp
test/Tooling/clang-check-ast-dump.cpp
unittests/AST/ASTImporterTest.cpp
unittests/ASTMatchers/ASTMatchersNodeTest.cpp
unittests/ASTMatchers/ASTMatchersTraversalTest.cpp