1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
// RUN: rm -rf %t
// RUN: mkdir %t
// (1) Test -Werror
// RUN: echo 'int foo() { return fn(); }' > %t/foo.h
// RUN: echo 'module foo { header "foo.h" export * }' > %t/module.modulemap
//
// RUN: not %clang_cc1 -fmodules -fimplicit-module-maps %s -fsyntax-only \
// RUN: -I%t -fmodules-cache-path=%t/cache -Rmodule-build \
// RUN: -fmodules-hash-error-diagnostics 2>%t/out
//
// RUN: %clang_cc1 -fmodules -fimplicit-module-maps %s -fsyntax-only \
// RUN: -I%t -Werror -fmodules-cache-path=%t/cache -Rmodule-build \
// RUN: -Wno-implicit-function-declaration \
// RUN: -fmodules-hash-error-diagnostics 2>>%t/out
// RUN: FileCheck --check-prefix=CHECKWERROR %s -input-file %t/out
// CHECKWERROR: remark: building module 'foo' as '[[PATH:.*]]{{/|\\}}foo-
// CHECKWERROR-NOT: remark: building module 'foo' as '[[PATH]]{{/|\\}}foo-
// (2) Test -Werror=
// RUN: rm -rf %t/out %t/cache
//
// RUN: not %clang_cc1 -fmodules -fimplicit-module-maps %s -fsyntax-only \
// RUN: -I%t -Werror -fmodules-cache-path=%t/cache -Rmodule-build \
// RUN: -fmodules-hash-error-diagnostics 2>%t/out
//
// RUN: not %clang_cc1 -fmodules -fimplicit-module-maps %s -fsyntax-only \
// RUN: -I%t -fmodules-cache-path=%t/cache -Rmodule-build \
// RUN: -Werror=implicit-function-declaration \
// RUN: -fmodules-hash-error-diagnostics 2>>%t/out
// RUN: FileCheck --check-prefix=CHECKWERROREQUALS %s -input-file %t/out
// CHECKWERROREQUALS: remark: building module 'foo' as '[[PATH:.*]]{{/|\\}}foo-
// CHECKWERROREQUALS-NOT: remark: building module 'foo' as '[[PATH]]{{/|\\}}foo-
// (3) Test -pedantic-errors
// RUN: rm -rf %t/out %t/cache
// RUN: echo '#ifdef foo' > %t/foo.h
// RUN: echo '#endif bad // extension!' >> %t/foo.h
// RUN: %clang_cc1 -fmodules -fimplicit-module-maps %s -fsyntax-only \
// RUN: -I%t -fmodules-cache-path=%t/cache -Rmodule-build -x c \
// RUN: -fmodules-hash-error-diagnostics 2>%t/out
//
// RUN: not %clang_cc1 -fmodules -fimplicit-module-maps %s -fsyntax-only \
// RUN: -I%t -pedantic-errors -fmodules-cache-path=%t/cache -Rmodule-build -x c \
// RUN: -fmodules-hash-error-diagnostics 2>>%t/out
// RUN: FileCheck --check-prefix=CHECKPEDANTICERROR %s -input-file %t/out
// CHECKPEDANTICERROR: remark: building module 'foo' as '[[PATH:.*]]{{/|\\}}foo-
// CHECKPEDANTICERROR-NOT: remark: building module 'foo' as '[[PATH]]{{/|\\}}foo-
#include "foo.h"
|