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