hanchenye-llvm-project/clang/lib/Parse
Douglas Gregor e60e41add9 Rework our handling of temporary objects within the conditions of
if/switch/while/do/for statements. Previously, we would end up either:

  (1) Forgetting to destroy temporaries created in the condition (!),
  (2) Destroying the temporaries created in the condition *before*
  converting the condition to a boolean value (or, in the case of a
  switch statement, to an integral or enumeral value), or
  (3) In a for statement, destroying the condition's temporaries at
  the end of the increment expression (!).

We now destroy temporaries in conditions at the right times. This
required some tweaking of the Parse/Sema interaction, since the parser
was building full expressions too early in many places.

Fixes PR7067.

llvm-svn: 103187
2010-05-06 17:25:47 +00:00
..
AttributeList.cpp Add calling convention related attributes to related declaration. Mark attributes invalid on type related checking so to add them to declarations only when everything is ok. 2010-04-30 13:10:51 +00:00
CMakeLists.txt Reorder files. 2009-07-21 21:03:50 +00:00
DeclSpec.cpp Keep track of the actual storage specifier written on a variable or 2010-04-19 22:54:31 +00:00
Makefile Allow users to set CPPFLAGS and CXXFLAGS on the make command line. 2010-03-12 22:55:16 +00:00
MinimalAction.cpp Migrate the responsibility for turning the receiver name in an 2010-04-21 20:38:13 +00:00
ParseCXXInlineMethods.cpp Make Parser::ConsumeAndStoreUntil() more consistent with Parser::SkipUntil(). 2010-04-23 21:20:12 +00:00
ParseDecl.cpp It's okay to reference an enum in a template definition, even though 2010-05-03 17:48:54 +00:00
ParseDeclCXX.cpp Replace a char*/size pair with stringref. 2010-05-03 13:08:54 +00:00
ParseExpr.cpp When parsing a cast-expression that starts with a scope annotation, 2010-04-23 02:08:13 +00:00
ParseExprCXX.cpp Rework our handling of temporary objects within the conditions of 2010-05-06 17:25:47 +00:00
ParseInit.cpp Implement parsing for message sends in Objective-C++. Message sends in 2010-04-21 22:36:40 +00:00
ParseObjc.cpp This patch deals with Sema Part of Setter/Getter synthesis 2010-05-05 21:52:17 +00:00
ParsePragma.cpp Remove tabs, and whitespace cleanups. 2009-09-09 15:08:12 +00:00
ParsePragma.h Remove tabs, and whitespace cleanups. 2009-09-09 15:08:12 +00:00
ParseStmt.cpp Rework our handling of temporary objects within the conditions of 2010-05-06 17:25:47 +00:00
ParseTemplate.cpp Reinstate my CodeModificationHint -> FixItHint renaming patch, without 2010-03-31 17:46:05 +00:00
ParseTentative.cpp Fix a tentative-parse error with unqualified template ids in cast expressions. 2010-04-30 03:11:01 +00:00
Parser.cpp Diagnose misordered initializers in constructor templates immediately instead of 2010-04-10 07:37:23 +00:00
RAIIObjectsForParser.h Privatize class members. 2009-12-10 21:50:21 +00:00