1*4971ed0fSRichard Smith // RUN: %clang_cc1 -fmodules -x c++-module-map %s -fmodule-name=__usr_include -verify 2*4971ed0fSRichard Smith // RUN: %clang_cc1 -fmodules -x c++-module-map %s -fmodule-name=__usr_include -verify -DIMPORT 3*4971ed0fSRichard Smith 4*4971ed0fSRichard Smith module __usr_include { 5*4971ed0fSRichard Smith module stddef {} 6*4971ed0fSRichard Smith module stdlib {} 7*4971ed0fSRichard Smith } 8*4971ed0fSRichard Smith 9*4971ed0fSRichard Smith #pragma clang module contents 10*4971ed0fSRichard Smith 11*4971ed0fSRichard Smith // expected-no-diagnostics 12*4971ed0fSRichard Smith 13*4971ed0fSRichard Smith #pragma clang module begin __usr_include.stddef 14*4971ed0fSRichard Smith #define NULL 0 15*4971ed0fSRichard Smith #pragma clang module end 16*4971ed0fSRichard Smith 17*4971ed0fSRichard Smith #pragma clang module begin __usr_include.stdlib 18*4971ed0fSRichard Smith #ifdef IMPORT 19*4971ed0fSRichard Smith #pragma clang module import __usr_include.stddef 20*4971ed0fSRichard Smith #else 21*4971ed0fSRichard Smith #pragma clang module begin __usr_include.stddef 22*4971ed0fSRichard Smith #define NULL 0 23*4971ed0fSRichard Smith #pragma clang module end 24*4971ed0fSRichard Smith #endif 25*4971ed0fSRichard Smith 26*4971ed0fSRichard Smith void *f() { return NULL; } // ok, NULL is visible here 27*4971ed0fSRichard Smith #pragma clang module end 28