• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // RUN: rm -rf %t
2 // RUN: %clang_cc1 -fmodules -x objective-c -emit-module -fmodule-cache-path %t -fmodule-name=macros %S/Inputs/module.map
3 // RUN: %clang_cc1 -fmodules -x objective-c -verify -fmodule-cache-path %t %s
4 // RUN: %clang_cc1 -E -fmodules -x objective-c -fmodule-cache-path %t %s | FileCheck -check-prefix CHECK-PREPROCESSED %s
5 // FIXME: When we have a syntax for modules in C, use that.
6 
7 @__experimental_modules_import macros;
8 
9 #ifndef INTEGER
10 #  error INTEGER macro should be visible
11 #endif
12 
13 #ifdef FLOAT
14 #  error FLOAT macro should not be visible
15 #endif
16 
17 #ifdef MODULE
18 #  error MODULE macro should not be visible
19 #endif
20 
21 // CHECK-PREPROCESSED: double d
22 double d;
23 DOUBLE *dp = &d;
24 
25 #__public_macro WIBBLE // expected-error{{no macro named 'WIBBLE'}}
26 
f()27 void f() {
28   // CHECK-PREPROCESSED: int i = INTEGER;
29   int i = INTEGER; // the value was exported, the macro was not.
30 }
31