| // RUN: rm -rf %t |
| // RUN: %clang_cc1 -fmodules -x objective-c -emit-module -fmodule-cache-path %t -fmodule-name=macros %S/Inputs/module.map |
| // RUN: %clang_cc1 -fmodules -x objective-c -verify -fmodule-cache-path %t %s |
| // RUN: %clang_cc1 -E -fmodules -x objective-c -fmodule-cache-path %t %s | FileCheck -check-prefix CHECK-PREPROCESSED %s |
| // FIXME: When we have a syntax for modules in C, use that. |
| |
| @import macros; |
| |
| #ifndef INTEGER |
| # error INTEGER macro should be visible |
| #endif |
| |
| #ifdef FLOAT |
| # error FLOAT macro should not be visible |
| #endif |
| |
| #ifdef MODULE |
| # error MODULE macro should not be visible |
| #endif |
| |
| // CHECK-PREPROCESSED: double d |
| double d; |
| DOUBLE *dp = &d; |
| |
| #__public_macro WIBBLE // expected-error{{no macro named 'WIBBLE'}} |
| |
| void f() { |
| // CHECK-PREPROCESSED: int i = INTEGER; |
| int i = INTEGER; // the value was exported, the macro was not. |
| } |