aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Bitcode/Reader/BitcodeReader.cpp
diff options
context:
space:
mode:
authorSaleem Abdulrasool <compnerd@compnerd.org>2014-10-24 20:23:43 +0000
committerSaleem Abdulrasool <compnerd@compnerd.org>2014-10-24 20:23:43 +0000
commitb31b94a8f7b5fb5b03997c2d0e86ed8818f72c54 (patch)
tree23c03cd48ea2be7ecb0b8a7acab77567c0b67492 /llvm/lib/Bitcode/Reader/BitcodeReader.cpp
parent202210b3694940b4e5cca50aa3b6208e0298121b (diff)
downloadllvm-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