https://github.com/googlewalt updated https://github.com/llvm/llvm-project/pull/75827
>From eefa77a7cc7c671ef1551239e473f0267527dfa3 Mon Sep 17 00:00:00 2001 From: Walter Lee <wa...@google.com> Date: Mon, 18 Dec 2023 11:41:43 -0500 Subject: [PATCH 1/2] Add tests for driver to propagate module map flags when -fno-modules We rely on this behavior for layering check. Xcode 14.3.1 seems to have dropped these flags so we are creating a unit test to reproduce the issue. --- clang/test/Driver/modules.m | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/clang/test/Driver/modules.m b/clang/test/Driver/modules.m index 9eb3569805569a..7b215bb6d870d6 100644 --- a/clang/test/Driver/modules.m +++ b/clang/test/Driver/modules.m @@ -57,6 +57,14 @@ // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=foo.map" // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=bar.map" +// Verify that the driver propagates -fmodule-name and -fmodule-map-file flags even with +// -fno-modules. We rely on this behavior for layering check. +// RUN: %clang -fno-modules -fmodule-name=foo -c -### %s 2>&1 | FileCheck -check-prefix=CHECK-PROPAGATE-MODULE-NAME %s +// CHECK-PROPAGATE-MODULE-NAME: -fmodule-name=foo + +// RUN: %clang -fno-modules -fmodule-map-file=foo.map -c -### %s 2>&1 | FileCheck -check-prefix=CHECK-PROPAGATE-MODULE-MAPS %s +// CHECK-PROPAGATE-MODULE-MAPS: -fmodule-map-file=foo.map + // RUN: %clang -fmodules -fbuiltin-module-map -### %s 2>&1 | FileCheck -check-prefix=CHECK-BUILTIN-MODULE-MAP %s // CHECK-BUILTIN-MODULE-MAP: "-fmodules" // CHECK-BUILTIN-MODULE-MAP: "-fmodule-map-file={{.*}}include{{/|\\\\}}module.modulemap" >From 782b6224d6660a243c19a8c9bb58510d6578a64d Mon Sep 17 00:00:00 2001 From: Walter Lee <wa...@google.com> Date: Wed, 20 Dec 2023 08:42:49 -0500 Subject: [PATCH 2/2] Change tests to directly test for layering check --- clang/test/Driver/modules.m | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/clang/test/Driver/modules.m b/clang/test/Driver/modules.m index 7b215bb6d870d6..d1a65f5cb07133 100644 --- a/clang/test/Driver/modules.m +++ b/clang/test/Driver/modules.m @@ -57,15 +57,21 @@ // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=foo.map" // CHECK-MODULE-MAP-FILES: "-fmodule-map-file=bar.map" -// Verify that the driver propagates -fmodule-name and -fmodule-map-file flags even with -// -fno-modules. We rely on this behavior for layering check. -// RUN: %clang -fno-modules -fmodule-name=foo -c -### %s 2>&1 | FileCheck -check-prefix=CHECK-PROPAGATE-MODULE-NAME %s -// CHECK-PROPAGATE-MODULE-NAME: -fmodule-name=foo +// Verify that the driver propagates -fmodule-name and -fmodule-map-file flags when +// -fmodules-decluse or -fmodules-strict-decluse, as used for layering check. +// RUN: %clang -fmodules-decluse -fmodule-name=foo -c -### %s 2>&1 | FileCheck -check-prefix=CHECK-DECLUSE-PROPAGATE-MODULE-NAME %s +// CHECK-DECLUSE-PROPAGATE-MODULE-NAME: -fmodule-name=foo -// RUN: %clang -fno-modules -fmodule-map-file=foo.map -c -### %s 2>&1 | FileCheck -check-prefix=CHECK-PROPAGATE-MODULE-MAPS %s -// CHECK-PROPAGATE-MODULE-MAPS: -fmodule-map-file=foo.map +// RUN: %clang -fmodules-decluse -fmodule-map-file=foo.map -c -### %s 2>&1 | FileCheck -check-prefix=CHECK-DECLUSE-PROPAGATE-MODULE-MAPS %s +// CHECK-DECLUSE-PROPAGATE-MODULE-MAPS: -fmodule-map-file=foo.map -// RUN: %clang -fmodules -fbuiltin-module-map -### %s 2>&1 | FileCheck -check-prefix=CHECK-BUILTIN-MODULE-MAP %s +// RUN: %clang -fmodules-strict-decluse -fmodule-name=foo -c -### %s 2>&1 | FileCheck -check-prefix=CHECK-STRICT-DECLUSE-PROPAGATE-MODULE-NAME %s +// CHECK-STRICT-DECLUSE-PROPAGATE-MODULE-NAME: -fmodule-name=foo + +// RUN: %clang -fmodules-strict-decluse -fmodule-map-file=foo.map -c -### %s 2>&1 | FileCheck -check-prefix=CHECK-STRICT-DECLUSE-PROPAGATE-MODULE-MAPS %s +// CHECK-STRICT-DECLUSE-PROPAGATE-MODULE-MAPS: -fmodule-map-file=foo.map + + // RUN: %clang -fmodules -fbuiltin-module-map -### %s 2>&1 | FileCheck -check-prefix=CHECK-BUILTIN-MODULE-MAP %s // CHECK-BUILTIN-MODULE-MAP: "-fmodules" // CHECK-BUILTIN-MODULE-MAP: "-fmodule-map-file={{.*}}include{{/|\\\\}}module.modulemap" _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits