150
|
1 // RUN: rm -rf %t
|
|
2 // RUN: cd %S
|
|
3 // REQUIRES: x86-registered-target
|
|
4 // RUN: %clang_cc1 -fmodules -x c++ -fmodules-cache-path=%t \
|
|
5 // RUN: -iquote Inputs/merge-target-features \
|
|
6 // RUN: -fno-implicit-modules \
|
|
7 // RUN: -fmodule-map-file-home-is-cwd \
|
|
8 // RUN: -emit-module -fmodule-name=foo -o %t/foo.pcm \
|
|
9 // RUN: -triple i386-unknown-unknown \
|
|
10 // RUN: -target-cpu i386 -target-feature +sse2 \
|
|
11 // RUN: Inputs/merge-target-features/module.modulemap
|
|
12 //
|
|
13 // RUN: not %clang_cc1 -fmodules -x c++ -fmodules-cache-path=%t \
|
|
14 // RUN: -iquote Inputs/merge-target-features \
|
|
15 // RUN: -fno-implicit-modules \
|
|
16 // RUN: -fmodule-map-file-home-is-cwd \
|
|
17 // RUN: -fmodule-map-file=Inputs/merge-target-features/module.modulemap \
|
|
18 // RUN: -fmodule-file=%t/foo.pcm \
|
|
19 // RUN: -triple i386-unknown-unknown \
|
|
20 // RUN: -target-cpu i386 \
|
|
21 // RUN: -fsyntax-only merge-target-features.cpp 2>&1 \
|
|
22 // RUN: | FileCheck --check-prefix=SUBSET --implicit-check-not=error: %s
|
|
23 // SUBSET: error: AST file was compiled with the target feature '+sse2' but the current translation unit is not
|
|
24 // SUBSET: error: {{.*}} configuration mismatch
|
|
25 //
|
|
26 // RUN: %clang_cc1 -fmodules -x c++ -fmodules-cache-path=%t \
|
|
27 // RUN: -iquote Inputs/merge-target-features \
|
|
28 // RUN: -fno-implicit-modules \
|
|
29 // RUN: -fmodule-map-file-home-is-cwd \
|
|
30 // RUN: -fmodule-map-file=Inputs/merge-target-features/module.modulemap \
|
|
31 // RUN: -fmodule-file=%t/foo.pcm \
|
|
32 // RUN: -triple i386-unknown-unknown \
|
|
33 // RUN: -target-cpu i386 -target-feature +sse2 \
|
|
34 // RUN: -fsyntax-only merge-target-features.cpp 2>&1 \
|
|
35 // RUN: | FileCheck --allow-empty --check-prefix=SAME %s
|
|
36 // SAME-NOT: error:
|
|
37 //
|
|
38 // RUN: %clang_cc1 -fmodules -x c++ -fmodules-cache-path=%t \
|
|
39 // RUN: -iquote Inputs/merge-target-features \
|
|
40 // RUN: -fno-implicit-modules \
|
|
41 // RUN: -fmodule-map-file-home-is-cwd \
|
|
42 // RUN: -fmodule-map-file=Inputs/merge-target-features/module.modulemap \
|
|
43 // RUN: -fmodule-file=%t/foo.pcm \
|
|
44 // RUN: -triple i386-unknown-unknown \
|
|
45 // RUN: -target-cpu i386 -target-feature +sse2 -target-feature +sse3 \
|
|
46 // RUN: -fsyntax-only merge-target-features.cpp 2>&1 \
|
|
47 // RUN: | FileCheck --allow-empty --check-prefix=SUPERSET %s
|
|
48 // SUPERSET-NOT: error:
|
|
49 //
|
|
50 // RUN: not %clang_cc1 -fmodules -x c++ -fmodules-cache-path=%t \
|
|
51 // RUN: -iquote Inputs/merge-target-features \
|
|
52 // RUN: -fno-implicit-modules \
|
|
53 // RUN: -fmodule-map-file-home-is-cwd \
|
|
54 // RUN: -fmodule-map-file=Inputs/merge-target-features/module.modulemap \
|
|
55 // RUN: -fmodule-file=%t/foo.pcm \
|
|
56 // RUN: -triple i386-unknown-unknown \
|
|
57 // RUN: -target-cpu i386 -target-feature +cx16 \
|
|
58 // RUN: -fsyntax-only merge-target-features.cpp 2>&1 \
|
|
59 // RUN: | FileCheck --check-prefix=MISMATCH --implicit-check-not=error: %s
|
|
60 // MISMATCH: error: AST file was compiled with the target feature '+sse2' but the current translation unit is not
|
|
61 // MISMATCH: error: current translation unit is compiled with the target feature '+cx16' but the AST file was not
|
|
62 // MISMATCH: error: {{.*}} configuration mismatch
|
|
63
|
|
64 #include "foo.h"
|
|
65
|
|
66 int test(int x) {
|
|
67 return foo(x);
|
|
68 }
|