Home | History | Annotate | Download | only in Modules
      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