diff options
| author | Saleem Abdulrasool <compnerd@compnerd.org> | 2014-10-24 20:23:43 +0000 |
|---|---|---|
| committer | Saleem Abdulrasool <compnerd@compnerd.org> | 2014-10-24 20:23:43 +0000 |
| commit | b31b94a8f7b5fb5b03997c2d0e86ed8818f72c54 (patch) | |
| tree | 23c03cd48ea2be7ecb0b8a7acab77567c0b67492 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp | |
| parent | 202210b3694940b4e5cca50aa3b6208e0298121b (diff) | |
| download | llvm-b31b94a8f7b5fb5b03997c2d0e86ed8818f72c54.zip llvm-b31b94a8f7b5fb5b03997c2d0e86ed8818f72c54.tar.gz llvm-b31b94a8f7b5fb5b03997c2d0e86ed8818f72c54.tar.bz2 | |
CodeGen: correct materialize temporary aggregates in ARC mode
Avoid an assertion when materializing a lifetime type aggregate temporary. When
performing CodeGen for ObjC++, we could generate a lifetime-only aggregate
temporary by using an initializer list (which is effectively an array). We
would reach through the temporary expression, fishing out the inner expression.
If this expression was a lifetime expression, we would attempt to emit this as a
scalar. This would eventually result in an assertion as the emission would
eventually assert that the expression being emitted has a scalar evaluation
kind.
Add a case to handle the aggregate expressions. Use the EmitAggExpr to emit the
aggregate expression rather than the EmitScalarInit.
Addresses PR21347.
llvm-svn: 220590
Diffstat (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.cpp')
0 files changed, 0 insertions, 0 deletions
