1b13eb8dcSJordan Rose // expected-warning 0-1 {{umbrella header}} 2b13eb8dcSJordan Rose 3b13eb8dcSJordan Rose // FIXME: The "umbrella header" warning should be moved to a separate test. 4b13eb8dcSJordan Rose // This "0-1" is only here because the warning is only emitted when the 5b13eb8dcSJordan Rose // module is (otherwise) successfully included. 6fe76cfd8SDouglas Gregor 7ebf00499SDouglas Gregor #ifndef MODULE_H 8ebf00499SDouglas Gregor #define MODULE_H 9faeb1d46SDouglas Gregor const char *getModuleVersion(void); 10faeb1d46SDouglas Gregor 11f1312a82SDouglas Gregor #ifdef FOO 12f1312a82SDouglas Gregor # error Module should have been built without -DFOO 13f1312a82SDouglas Gregor #endif 14f1312a82SDouglas Gregor 15faeb1d46SDouglas Gregor @interface Module 16f1312a82SDouglas Gregor +(const char *)version; // retrieve module version 178455e76fSDouglas Gregor +alloc; 18faeb1d46SDouglas Gregor @end 19faeb1d46SDouglas Gregor 2097eec24bSDouglas Gregor #define MODULE_H_MACRO 1 21663b48f1SDouglas Gregor #__private_macro MODULE_H_MACRO 22ebf00499SDouglas Gregor 23a89c5ac4SDouglas Gregor #include <Module/Sub.h> 24a89c5ac4SDouglas Gregor #include <Module/Buried/Treasure.h> 25a89c5ac4SDouglas Gregor 26d6125663SDouglas Gregor __asm("foo"); 27d6125663SDouglas Gregor 28f0b4cd1eSArgyrios Kyrtzidis typedef struct __sFILE { 29f0b4cd1eSArgyrios Kyrtzidis int _offset; 30f0b4cd1eSArgyrios Kyrtzidis } FILE; 31f0b4cd1eSArgyrios Kyrtzidis 32f0b4cd1eSArgyrios Kyrtzidis extern FILE *myFile; 33f0b4cd1eSArgyrios Kyrtzidis 34*d2d3597eSArgyrios Kyrtzidis #define SOME_MACRO_ATTR_GETTING_UNDEFINED __attribute__((objc_method_family(none))) 35*d2d3597eSArgyrios Kyrtzidis #undef SOME_MACRO_ATTR_GETTING_UNDEFINED 365c585253SArgyrios Kyrtzidis 37ebf00499SDouglas Gregor #endif // MODULE_H 38