// RUN: rm -rf %t // RUN: rm -rf %t-saved // RUN: mkdir -p %t-saved // Initial module build (-Werror=header-guard) // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash \ // RUN: -F %S/Inputs -fsyntax-only %s -verify -Wno-incomplete-umbrella \ // RUN: -Werror=header-guard // RUN: cp %t/Module.pcm %t-saved/Module.pcm // Building with looser -Werror options does not rebuild // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash \ // RUN: -F %S/Inputs -fsyntax-only %s -verify -Wno-incomplete-umbrella // RUN: diff %t/Module.pcm %t-saved/Module.pcm // Make the build more restricted (-Werror) // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash \ // RUN: -F %S/Inputs -fsyntax-only %s -verify -Wno-incomplete-umbrella \ // RUN: -Werror -Wno-incomplete-umbrella // RUN: not diff %t/Module.pcm %t-saved/Module.pcm // RUN: cp %t/Module.pcm %t-saved/Module.pcm // Ensure -Werror=header-guard is less strict than -Werror // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash \ // RUN: -F %S/Inputs -fsyntax-only %s -verify -Wno-incomplete-umbrella \ // RUN: -Werror=header-guard -Wno-incomplete-umbrella // RUN: diff %t/Module.pcm %t-saved/Module.pcm // But -Werror=unused is not, because some of its diags are DefaultIgnore // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash \ // RUN: -F %S/Inputs -fsyntax-only %s -verify -Wno-incomplete-umbrella \ // RUN: -Werror=unused // RUN: not diff %t/Module.pcm %t-saved/Module.pcm // RUN: cp %t/Module.pcm %t-saved/Module.pcm // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash \ // RUN: -F %S/Inputs -fsyntax-only %s -verify -Wno-incomplete-umbrella \ // RUN: -Werror -Wno-incomplete-umbrella // FIXME: when rebuilding the module, take the union of the diagnostic options // so that we don't need to rebuild here // RUN-DISABLED: diff %t/Module.pcm %t-saved/Module.pcm // -Wno-everything, -Werror // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash \ // RUN: -F %S/Inputs -fsyntax-only %s -verify -Wno-incomplete-umbrella \ // RUN: -Wno-everything -Wall -Werror // RUN: cp %t/Module.pcm %t-saved/Module.pcm // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash \ // RUN: -F %S/Inputs -fsyntax-only %s -verify -Wno-incomplete-umbrella \ // RUN: -Wall -Werror // RUN: not diff %t/Module.pcm %t-saved/Module.pcm // -pedantic, -Werror is not compatible with -Wall -Werror // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash \ // RUN: -F %S/Inputs -fsyntax-only %s -verify -Wno-incomplete-umbrella \ // RUN: -Werror -pedantic // RUN: not diff %t/Module.pcm %t-saved/Module.pcm // RUN: cp %t/Module.pcm %t-saved/Module.pcm // -pedantic-errors is less strict that -pedantic, -Werror // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash \ // RUN: -F %S/Inputs -fsyntax-only %s -verify -Wno-incomplete-umbrella \ // RUN: -pedantic-errors // RUN: diff %t/Module.pcm %t-saved/Module.pcm // -Wsystem-headers does not affect non-system modules // RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -fdisable-module-hash \ // RUN: -F %S/Inputs -fsyntax-only %s -verify -Wno-incomplete-umbrella \ // RUN: -pedantic-errors -Wsystem-headers // RUN: diff %t/Module.pcm %t-saved/Module.pcm // expected-no-diagnostics @import Module;