1// RUN: rm -rf %t
2// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs -x c++ -E %s | \
3// RUN:   FileCheck -strict-whitespace %s --check-prefix=CHECK --check-prefix=CXX --check-prefix=CXX-DASHE
4// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs -x objective-c -E %s | \
5// RUN:   FileCheck -strict-whitespace %s --check-prefix=CHECK --check-prefix=OBJC
6// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs -x c++ -E -frewrite-includes %s | \
7// RUN:   FileCheck -strict-whitespace %s --check-prefix=CHECK --check-prefix=CXX
8// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs -x objective-c -E -frewrite-includes %s | \
9// RUN:   FileCheck -strict-whitespace %s --check-prefix=CHECK --check-prefix=OBJC
10#include "dummy.h"
11#include "dummy.h"
12foo bar baz
13
14// The weird {{ }} here is to prevent the -frewrite-includes test from matching its own CHECK lines.
15
16// CXX: #include{{ }}"dummy.h"
17// CXX-DASHE-SAME: /* clang -E: implicit import for module dummy */
18// CXX: #include{{ }}"dummy.h"
19// CXX-DASHE-SAME: /* clang -E: implicit import for module dummy */
20// CXX: foo bar baz
21
22// OBJC: @import{{ }}dummy; /* clang
23// OBJC: @import{{ }}dummy; /* clang
24// OBJC: foo bar baz
25