]> granicus.if.org Git - clang/commit
When evaluating a VarDecl as a constant or determining whether it is
authorDouglas Gregor <dgregor@apple.com>
Tue, 26 May 2009 18:54:04 +0000 (18:54 +0000)
committerDouglas Gregor <dgregor@apple.com>
Tue, 26 May 2009 18:54:04 +0000 (18:54 +0000)
commit78d1583d0b36b7d6d8d10234cdc19ab94adf765a
tree6fd6d0fc80be75ca12fcc0ddc17cb6de5c7e1668
parent0311d47665bcdd186af6fc1bcfa40cf186ae7b9a
When evaluating a VarDecl as a constant or determining whether it is
an integral constant expression, maintain a cache of the value and the
is-an-ICE flag within the VarDecl itself. This eliminates
exponential-time behavior of the Fibonacci template metaprogram.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72428 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/AST/Decl.h
lib/AST/Decl.cpp
lib/AST/Expr.cpp
lib/AST/ExprConstant.cpp
lib/AST/StmtIterator.cpp
lib/Frontend/PCHReaderDecl.cpp
lib/Sema/SemaDecl.cpp
lib/Sema/SemaDeclCXX.cpp