Index: include/clang/AST/Expr.h =================================================================== --- include/clang/AST/Expr.h +++ include/clang/AST/Expr.h @@ -853,6 +853,8 @@ T->isInstantiationDependentType(), false), SourceExpr(SourceExpr), Loc(Loc) { + if (SourceExpr) + ExprBits.InstantiationDependent |= SourceExpr->isInstantiationDependent(); } /// Given an expression which invokes a copy constructor --- i.e. a Index: include/clang/AST/Stmt.h =================================================================== --- include/clang/AST/Stmt.h +++ include/clang/AST/Stmt.h @@ -115,6 +115,7 @@ friend class OverloadExpr; // ctor friend class PseudoObjectExpr; // ctor friend class AtomicExpr; // ctor + friend class OpaqueValueExpr; // ctor unsigned : NumStmtBits; unsigned ValueKind : 2; Index: test/SemaObjCXX/typo-correction.mm =================================================================== --- /dev/null +++ test/SemaObjCXX/typo-correction.mm @@ -0,0 +1,23 @@ +// RUN: %clang_cc1 %s -verify -fsyntax-only + +class ClassA {}; + +class ClassB { +public: + ClassB(ClassA* parent=0); + ~ClassB(); +}; + +@interface NSObject +@end + +@interface InterfaceA : NSObject +@property(nonatomic, assign) ClassA *m_prop1; // expected-note {{here}} +@property(nonatomic, assign) ClassB *m_prop2; +@end + +@implementation InterfaceA +- (id)test { + self.m_prop2 = new ClassB(m_prop1); // expected-error {{use of undeclared identifier 'm_prop1'; did you mean '_m_prop1'?}} +} +@end