decltype.mm revision 403f2c68046eba1a9d5e3f7b52b8481573e56d40
1// RUN: %clang_cc1 -fsyntax-only -verify -std=c++11 %s
2// expected-no-diagnostics
3struct HasValueType {
4  typedef int value_type;
5};
6
7__attribute__((objc_root_class))
8@interface Foo
9{
10@protected
11    HasValueType foo;
12}
13
14@property (nonatomic) HasValueType bar;
15@end
16
17@implementation Foo
18@synthesize bar;
19
20- (void)test {
21  decltype(foo)::value_type vt1;
22  decltype(self->foo)::value_type vt2;
23  decltype(self.bar)::value_type vt3;
24}
25@end
26