blob: 94a98a5a198d04f7e594020283c5a0361a7c8f1f [file] [log] [blame]
Ben Langmuirb92de022014-04-29 16:25:26 +00001// REQUIRES: shell
2// RUN: rm -rf %t
3// RUN: rm -rf %t-saved
4// RUN: mkdir -p %t-saved
5
6// Initial module build (-Werror=header-guard)
7// RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -fdisable-module-hash \
8// RUN: -F %S/Inputs -fsyntax-only %s -verify -Wno-incomplete-umbrella \
9// RUN: -Werror=header-guard
10// RUN: cp %t/Module.pcm %t-saved/Module.pcm
11
12// Building with looser -Werror options does not rebuild
13// RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -fdisable-module-hash \
14// RUN: -F %S/Inputs -fsyntax-only %s -verify -Wno-incomplete-umbrella
15// RUN: diff %t/Module.pcm %t-saved/Module.pcm
16
17// Make the build more restricted (-Werror)
18// RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -fdisable-module-hash \
19// RUN: -F %S/Inputs -fsyntax-only %s -verify -Wno-incomplete-umbrella \
20// RUN: -Werror -Wno-incomplete-umbrella
21// RUN: not diff %t/Module.pcm %t-saved/Module.pcm
22// RUN: cp %t/Module.pcm %t-saved/Module.pcm
23
24// Ensure -Werror=header-guard is less strict than -Werror
25// RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -fdisable-module-hash \
26// RUN: -F %S/Inputs -fsyntax-only %s -verify -Wno-incomplete-umbrella \
27// RUN: -Werror=header-guard -Wno-incomplete-umbrella
28// RUN: diff %t/Module.pcm %t-saved/Module.pcm
29
30// But -Werror=unused is not, because some of its diags are DefaultIgnore
31// RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -fdisable-module-hash \
32// RUN: -F %S/Inputs -fsyntax-only %s -verify -Wno-incomplete-umbrella \
33// RUN: -Werror=unused
34// RUN: not diff %t/Module.pcm %t-saved/Module.pcm
35// RUN: cp %t/Module.pcm %t-saved/Module.pcm
36
37// RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -fdisable-module-hash \
38// RUN: -F %S/Inputs -fsyntax-only %s -verify -Wno-incomplete-umbrella \
39// RUN: -Werror -Wno-incomplete-umbrella
40
41// FIXME: when rebuilding the module, take the union of the diagnostic options
42// so that we don't need to rebuild here
43// RUN-DISABLED: diff %t/Module.pcm %t-saved/Module.pcm
44
45// -Wno-everything, -Werror
46// RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -fdisable-module-hash \
47// RUN: -F %S/Inputs -fsyntax-only %s -verify -Wno-incomplete-umbrella \
48// RUN: -Wno-everything -Wall -Werror
49// RUN: cp %t/Module.pcm %t-saved/Module.pcm
50// RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -fdisable-module-hash \
51// RUN: -F %S/Inputs -fsyntax-only %s -verify -Wno-incomplete-umbrella \
52// RUN: -Wall -Werror
53// RUN: not diff %t/Module.pcm %t-saved/Module.pcm
54
55// -pedantic, -Werror is not compatible with -Wall -Werror
56// RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -fdisable-module-hash \
57// RUN: -F %S/Inputs -fsyntax-only %s -verify -Wno-incomplete-umbrella \
58// RUN: -Werror -pedantic
59// RUN: not diff %t/Module.pcm %t-saved/Module.pcm
60// RUN: cp %t/Module.pcm %t-saved/Module.pcm
61
62// -pedantic-errors is less strict that -pedantic, -Werror
63// RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -fdisable-module-hash \
64// RUN: -F %S/Inputs -fsyntax-only %s -verify -Wno-incomplete-umbrella \
65// RUN: -pedantic-errors
66// RUN: diff %t/Module.pcm %t-saved/Module.pcm
67
68// -Wsystem-headers does not affect non-system modules
69// RUN: %clang_cc1 -fmodules -fmodules-cache-path=%t -fdisable-module-hash \
70// RUN: -F %S/Inputs -fsyntax-only %s -verify -Wno-incomplete-umbrella \
71// RUN: -pedantic-errors -Wsystem-headers
72// RUN: diff %t/Module.pcm %t-saved/Module.pcm
73
74// expected-no-diagnostics
75@import Module;