llvm-project/clang/lib
Reid Kleckner 0449316ea0 Don't try to spill static allocas when emitting expr cleanups with branches
Credit goes to Gor Nishanov for putting together the fix in
https://reviews.llvm.org/D33733!

This patch is essentially me patching it locally and writing some test
cases to convince myself that it was necessary for GNU statement
expressions with branches as well as coroutines. I'll ask Gor to land
his patch with just the coroutines test.

During LValue expression evaluation, references can be bound to
anything, really: call results, aggregate temporaries, local variables,
global variables, or indirect arguments. We really only want to spill
instructions that were emitted as part of expression evaluation, and
static allocas are not that.

llvm-svn: 304335
2017-05-31 19:59:41 +00:00
..
ARCMigrate [ARCMigrate] When applying changes from remap files, disable the 'adjustRemovals' functionality of EditedSource 2017-04-28 00:25:06 +00:00
AST [ODRHash] Support TemplateSpecializationType 2017-05-31 00:31:58 +00:00
ASTMatchers Add cxxStdInitializerListExpr AST matcher 2017-05-05 21:01:12 +00:00
Analysis [coroutines] Fix fallthrough diagnostics for coroutines 2017-05-25 02:16:53 +00:00
Basic Reverting Neon vector type 64-alignment fix 2017-05-30 17:09:47 +00:00
CodeGen Don't try to spill static allocas when emitting expr cleanups with branches 2017-05-31 19:59:41 +00:00
Driver [clang-cl] Implement /diagnostic: flag 2017-05-31 17:37:49 +00:00
Edit [ARCMigrate] When applying changes from remap files, disable the 'adjustRemovals' functionality of EditedSource 2017-04-28 00:25:06 +00:00
Format clang-format: [JS] improve calculateBraceType heuristic 2017-05-31 09:29:40 +00:00
Frontend [clang-cl] Improve default calling convention flag handling 2017-05-31 15:39:28 +00:00
FrontendTool unique_ptrify createDriverOptTable 2017-01-13 17:34:15 +00:00
Headers [PPC] Make altivec conversion function macros. 2017-05-30 11:37:29 +00:00
Index [index] The references to explicit class properties should be recorded 2017-05-24 14:23:40 +00:00
Lex Allow for unfinished #if blocks in preambles 2017-05-30 11:54:55 +00:00
Parse [NFC, Refactor] Modernize TemplateIdAnnotation using TrailingObjects 2017-05-23 01:07:12 +00:00
Rewrite [analyzer] Re-apply r283092, attempt no.4, chunk no.4 (last) 2016-10-07 19:25:10 +00:00
Sema [coroutines] Fix assertion during -Wuninitialized analysis 2017-05-31 19:36:59 +00:00
Serialization Allow for unfinished #if blocks in preambles 2017-05-30 11:54:55 +00:00
StaticAnalyzer [analyzer] Fix immutable map factory lifetime for partial taint. 2017-05-29 18:54:02 +00:00
Tooling Method loadFromCommandLine should be able to report errors 2017-05-24 11:57:37 +00:00
CMakeLists.txt