diff options
| author | Chris Lattner <sabre@nondot.org> | 2008-07-25 18:07:19 +0000 | 
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2008-07-25 18:07:19 +0000 | 
| commit | ec8996d7718b09ac845256014223bc629f5913b7 (patch) | |
| tree | 73dcb1feadcd617e5587b1aeaf430b92a5b5c758 /clang | |
| parent | 542cd5d3f974db68ba08f4a6d4742a39deea88e6 (diff) | |
| download | bcm5719-llvm-ec8996d7718b09ac845256014223bc629f5913b7.tar.gz bcm5719-llvm-ec8996d7718b09ac845256014223bc629f5913b7.zip  | |
Add support for __extension__ as an lvalue.  rdar://6097308
llvm-svn: 54033
Diffstat (limited to 'clang')
| -rw-r--r-- | clang/lib/AST/Expr.cpp | 3 | ||||
| -rw-r--r-- | clang/test/Sema/exprs.c | 6 | 
2 files changed, 8 insertions, 1 deletions
diff --git a/clang/lib/AST/Expr.cpp b/clang/lib/AST/Expr.cpp index 6c7d170d036..7eab87ff79e 100644 --- a/clang/lib/AST/Expr.cpp +++ b/clang/lib/AST/Expr.cpp @@ -415,7 +415,8 @@ Expr::isLvalueResult Expr::isLvalue() const {        return LV_Valid; // C99 6.5.3p4      if (cast<UnaryOperator>(this)->getOpcode() == UnaryOperator::Real || -        cast<UnaryOperator>(this)->getOpcode() == UnaryOperator::Imag) +        cast<UnaryOperator>(this)->getOpcode() == UnaryOperator::Imag || +        cast<UnaryOperator>(this)->getOpcode() == UnaryOperator::Extension)        return cast<UnaryOperator>(this)->getSubExpr()->isLvalue();  // GNU.      break;    case ParenExprClass: // C99 6.5.1p5 diff --git a/clang/test/Sema/exprs.c b/clang/test/Sema/exprs.c index 01758772874..fc506f7a2b3 100644 --- a/clang/test/Sema/exprs.c +++ b/clang/test/Sema/exprs.c @@ -9,3 +9,9 @@ _Complex double test2() {    return 1.0if;    // expected-warning {{imaginary constants are an extension}}  } +// rdar://6097308 +void test3() { +  int x; +  (__extension__ x) = 10; +} +  | 

