1acfbe9e1SPatrick Beard// RUN: %clang_cc1 -fsyntax-only -verify -Wno-objc-root-class %s 2c6e68daaSAndy Gibbs// expected-no-diagnostics 333e148f6SFariborz Jahanian 433e148f6SFariborz Jahanian@interface Foo 533e148f6SFariborz Jahanian@end 633e148f6SFariborz Jahanian 733e148f6SFariborz Jahanian@implementation Foo 833e148f6SFariborz Jahanian- (id)test { 933e148f6SFariborz Jahanian id bar; 1033e148f6SFariborz Jahanian Class cl; 1133e148f6SFariborz Jahanian Foo *f; 1233e148f6SFariborz Jahanian 1333e148f6SFariborz Jahanian (void)((bar!= 0) ? bar : 0); 1433e148f6SFariborz Jahanian (void)((cl != 0) ? cl : 0); 1533e148f6SFariborz Jahanian (void)((f != 0) ? 0 : f); 1633e148f6SFariborz Jahanian return (0 == 1) ? 0 : bar; 1733e148f6SFariborz Jahanian} 1833e148f6SFariborz Jahanian@end 1933e148f6SFariborz Jahanian 20*9a6f4d45SRichard Smith@class A; 21*9a6f4d45SRichard Smith 22*9a6f4d45SRichard Smithvoid multilevel() { 23*9a6f4d45SRichard Smith A **p; 24*9a6f4d45SRichard Smith const A **q; 25*9a6f4d45SRichard Smith 26*9a6f4d45SRichard Smith using T = decltype(true ? q : p); 27*9a6f4d45SRichard Smith using T = const A * const *; 28*9a6f4d45SRichard Smith} 29*9a6f4d45SRichard Smith 30