|  | // RUN: %clang_cc1 -fmodules -x c++-module-map %s -fmodule-name=__usr_include -verify | 
|  | // RUN: %clang_cc1 -fmodules -x c++-module-map %s -fmodule-name=__usr_include -verify -DIMPORT | 
|  |  | 
|  | module __usr_include { | 
|  | module stddef {} | 
|  | module stdlib {} | 
|  | } | 
|  |  | 
|  | #pragma clang module contents | 
|  |  | 
|  | // expected-no-diagnostics | 
|  |  | 
|  | #pragma clang module begin __usr_include.stddef | 
|  | #define NULL 0 | 
|  | #pragma clang module end | 
|  |  | 
|  | #pragma clang module begin __usr_include.stdlib | 
|  | #ifdef IMPORT | 
|  | #pragma clang module import __usr_include.stddef | 
|  | #else | 
|  | #pragma clang module begin __usr_include.stddef | 
|  | #define NULL 0 | 
|  | #pragma clang module end | 
|  | #endif | 
|  |  | 
|  | void *f() { return NULL; } // ok, NULL is visible here | 
|  | #pragma clang module end |