]> granicus.if.org Git - clang/commit
Refactor our handling of expression evaluation contexts, so that Sema
authorDouglas Gregor <dgregor@apple.com>
Thu, 26 Nov 2009 00:44:06 +0000 (00:44 +0000)
committerDouglas Gregor <dgregor@apple.com>
Thu, 26 Nov 2009 00:44:06 +0000 (00:44 +0000)
commit2afce7248b7a362f1e322ad18e43484d575b9c9d
treeec6248bcb8c77c0371d28db1f51f44d21b1da68d
parentbf0fe6c5b7bd7bc67b6b3ef0acb22bf4811f2a1b
Refactor our handling of expression evaluation contexts, so that Sema
maintains a stack of evaluation contexts rather than having the parser
do it. This change made it simpler to track in which contexts
temporaries were created, so that we could...

"Forget" about temporaries created within unevaluated contexts, so
that we don't build a CXXExprWithTemporaries and, therefore, destroy
the integral-constness of our expressions. Fixes PR5609.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89908 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Parse/Action.h
lib/Sema/Sema.cpp
lib/Sema/Sema.h
lib/Sema/SemaExpr.cpp
lib/Sema/SemaExprCXX.cpp
test/SemaTemplate/instantiate-static-var.cpp