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