xref: /llvm-project/clang/test/Modules/Inputs/Module.framework/Headers/Module.h (revision d2d3597ea2647009a318394141e72960dfa5d913)
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