aboutsummaryrefslogtreecommitdiff
path: root/test/CodeGenCXX/gnu-conditional-scalar-ext.cpp
AgeCommit message (Collapse)Author
2011-02-21Rename test/CodeGenCXX/gnu-conditional-scalar-ext.cpp to conditional-gnu-ext.cppJohn McCall
for consistency with other tests (and to remove "scalar" from the name). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126104 91177308-0d34-0410-b5e6-96231b3b80d8
2011-02-17Change the representation of GNU ?: expressions to use a different expressionJohn McCall
class and to bind the shared value using OpaqueValueExpr. This fixes an unnoticed problem with deserialization of these expressions where the deserialized form would lose the vital pointer-equality trait; or rather, it fixes it because this patch also does the right thing for deserializing OVEs. Change OVEs to not be a "temporary object" in the sense that copy elision is permitted. This new representation is not totally unawkward to work with, but I think that's really part and parcel with the semantics we're modelling here. In particular, it's much easier to fix things like the copy elision bug and to make the CFG look right. I've tried to update the analyzer to deal with this in at least some obvious cases, and I think we get a much better CFG out, but the printing of OpaqueValueExprs probably needs some work. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125744 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-21IRgen for gnu extension's conditional lvalue expressionFariborz Jahanian
with missing LHS. radar 8453812. Executable test is checked into llvm test suite. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114457 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-20Implements in IRgen gnu extensions missing LHS forFariborz Jahanian
complex conditionals. Radar 8453812. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114376 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-18Problem with gnu conditional extension with missingFariborz Jahanian
LHS and when conditional expression is an array. Since it will be decayed, saved expression must be saved with decayed expression. This is necessary to preserve semantics of this extension (and prevent an IRGen crash which expects an array to always be decayed). I am sure there will be other cases in c++ (aggregate conditionals for example) when saving of the expression must happen after some transformation on conditional expression has happened. Doug, please review. Fixes // rdar://8446940 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114296 91177308-0d34-0410-b5e6-96231b3b80d8
2010-09-17Patch to add IRgen support for Gnu's conditional operatorFariborz Jahanian
extension when missing LHS. This patch covers scalar conditionals only. Others are wip. (pr7726, radar 8353567). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114182 91177308-0d34-0410-b5e6-96231b3b80d8