178541c433049322b27b4f437973076ba29cff709Jordan Rose// expected-warning 0-1 {{umbrella header}}
278541c433049322b27b4f437973076ba29cff709Jordan Rose
378541c433049322b27b4f437973076ba29cff709Jordan Rose// FIXME: The "umbrella header" warning should be moved to a separate test.
478541c433049322b27b4f437973076ba29cff709Jordan Rose// This "0-1" is only here because the warning is only emitted when the
578541c433049322b27b4f437973076ba29cff709Jordan Rose// module is (otherwise) successfully included.
6585ec93e1bd4fdd5a37aa19848e5f92084f0d923Douglas Gregor
7aa93a875605536d72a10359a0098396192b7d4ecDouglas Gregor#ifndef MODULE_H
8aa93a875605536d72a10359a0098396192b7d4ecDouglas Gregor#define MODULE_H
921cae2059a06f7d89eee169409c9266def1b1acaDouglas Gregorconst char *getModuleVersion(void);
1021cae2059a06f7d89eee169409c9266def1b1acaDouglas Gregor
111c7e0472f5683a8ade62285f366637050cf113e5Douglas Gregor#ifdef FOO
121c7e0472f5683a8ade62285f366637050cf113e5Douglas Gregor#  error Module should have been built without -DFOO
131c7e0472f5683a8ade62285f366637050cf113e5Douglas Gregor#endif
141c7e0472f5683a8ade62285f366637050cf113e5Douglas Gregor
1521cae2059a06f7d89eee169409c9266def1b1acaDouglas Gregor@interface Module
161c7e0472f5683a8ade62285f366637050cf113e5Douglas Gregor+(const char *)version; // retrieve module version
170f50b08940ea0a9a44f2715f49ccf6bc64b95491Douglas Gregor+alloc;
1821cae2059a06f7d89eee169409c9266def1b1acaDouglas Gregor@end
1921cae2059a06f7d89eee169409c9266def1b1acaDouglas Gregor
20fba18aa8f2cd1994dc65e8cb9f4be201c560dc0bDouglas Gregor#define MODULE_H_MACRO 1
211ac13c37d8af0145b7e03fea70b7b1476b8828c9Douglas Gregor#__private_macro MODULE_H_MACRO
22aa93a875605536d72a10359a0098396192b7d4ecDouglas Gregor
23e209e5026892cb07294f733c72bd51359c0f0e72Douglas Gregor#include <Module/Sub.h>
24e209e5026892cb07294f733c72bd51359c0f0e72Douglas Gregor#include <Module/Buried/Treasure.h>
25e209e5026892cb07294f733c72bd51359c0f0e72Douglas Gregor
26c7be10245e78bf38694b26f289880edefb9f16e9Douglas Gregor__asm("foo");
27c7be10245e78bf38694b26f289880edefb9f16e9Douglas Gregor
283ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainartypedef	struct __sFILE {
293ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar  int _offset;
303ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar} FILE;
313ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar
323ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainarextern FILE *myFile;
333ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar
343ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar#define SOME_MACRO_ATTR_GETTING_UNDEFINED __attribute__((objc_method_family(none)))
353ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar#undef SOME_MACRO_ATTR_GETTING_UNDEFINED
363ea9e33ea25e0c2b12db56418ba3f994eb662c04Pirama Arumuga Nainar
37aa93a875605536d72a10359a0098396192b7d4ecDouglas Gregor#endif // MODULE_H
38