crash.mm revision e7be1090e8cc8bfcda4f73fcad35d29e9e58b1c4
1e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.org// RUN: %clang_cc1 -fsyntax-only %s -verify 
2e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.org
3e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.org// <rdar://problem/11286701>
4e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.orgnamespace std {
5e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.org  template<typename T, typename U> class pair;
6e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.org}
7e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.org
8e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.org@interface NSObject
9e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.org@end
10e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.org
11e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.org@interface Test : NSObject
12e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.org@end
13e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.org
14e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.org@implementation Test
15e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.org
16e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.orgstruct EvilStruct {
17e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.org} // note the missing semicolon
18e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.org
19e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.org  typedef std::pair<int, int> IntegerPair; // expected-error{{typedef declarator cannot be qualified}} \
20e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.org// expected-error{{typedef name must be an identifier}} \
21e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.org// expected-error{{expected ';' after top level declarator}}
22e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.org
23e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.org@end
24e5c3b69d269a0509fe309cba296dd71414f5a715hpayer@chromium.org