|  | // RUN: rm -rf %t | 
|  | // RUN: cd %S | 
|  | // RUN: %clang_cc1 -fmodules -x c++ -std=c++11 -fmodules-cache-path=%t \ | 
|  | // RUN:   -I%S/Inputs/private3 -emit-module -fmodule-name=A -o %t/m.pcm %s | 
|  | // RUN: %clang_cc1 -fmodules -x c++ -std=c++11 -fmodules-cache-path=%t \ | 
|  | // RUN:   -I%S/Inputs/private3 -emit-module -fmodule-name=B -o %t/m.pcm %s | 
|  | // RUN: %clang_cc1 -fmodules -x c++ -std=c++11 -fmodules-cache-path=%t \ | 
|  | // RUN:   -I%S/Inputs/private3 -emit-module -fmodule-name=C -o %t/m.pcm %s | 
|  | // RUN: %clang_cc1 -fmodules -x c++ -std=c++11 -fmodules-cache-path=%t \ | 
|  | // RUN:   -I%S/Inputs/private3 -emit-module -fmodule-name=D -o %t/m.pcm %s | 
|  |  | 
|  | module A { | 
|  | header "Inputs/private3/public.h" | 
|  | private header "Inputs/private3/private.h" | 
|  | } | 
|  | module B { | 
|  | header "Inputs/private3/public.h" | 
|  | module "private.h" { | 
|  | private header "Inputs/private3/private.h" | 
|  | } | 
|  | } | 
|  | module C { | 
|  | module "public.h" { | 
|  | header "Inputs/private3/public.h" | 
|  | } | 
|  | private header "Inputs/private3/private.h" | 
|  | } | 
|  | module D { | 
|  | module "public.h" { | 
|  | header "Inputs/private3/public.h" | 
|  | } | 
|  | module "private.h" { | 
|  | private header "Inputs/private3/private.h" | 
|  | } | 
|  | } |