__extension__ treatment

Currently

Expr::IgnoreParens();
Expr::IgnoreParenCasts();
Expr::IgnoreParenImpCasts();

does not take in proper account __extension__ unary operator.

This means that everywhere this methods are called the behaviour would
change if an __extension__ keyword was present.

I think this is a mistake: __extension__ is no different from parens.

What do you think about?

Sounds like a bug! __extension__ should be no different from parentheses, and should have no effect on the semantics of the program except to silence diagnostics.

  - Doug

Fixed in r116569.