// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s // expected-no-diagnostics struct HasValueType { typedef int value_type; }; __attribute__((objc_root_class)) @interface Foo { @protected HasValueType foo; } @property (nonatomic) HasValueType bar; @end @implementation Foo @synthesize bar; - (void)test { decltype(foo)::value_type vt1; decltype(self->foo)::value_type vt2; decltype(self.bar)::value_type vt3; } @end