[llvm-branch-commits] [clang] [clang][driver][clang-cl] Fix unused argument warning for `/std:c++20` for precompiled module inputs to `clang-cl` (PR #102438)

2024-08-08 Thread Sharadh Rajaraman via llvm-branch-commits

https://github.com/sharadhr created 
https://github.com/llvm/llvm-project/pull/102438

Manual PR to backport #99300. 

>From 5248f86c4ef2aa5ce796b6b985ab1c7bbb65d763 Mon Sep 17 00:00:00 2001
From: Sharadh Rajaraman 
Date: Sun, 14 Jul 2024 11:05:57 +0100
Subject: [PATCH 1/3] `TY_ModuleFile` should be a 'CXX' file type

---
 clang/lib/Driver/Types.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clang/lib/Driver/Types.cpp b/clang/lib/Driver/Types.cpp
index a7b6b9000e1d2b..c6a03f4491dd79 100644
--- a/clang/lib/Driver/Types.cpp
+++ b/clang/lib/Driver/Types.cpp
@@ -242,7 +242,7 @@ bool types::isCXX(ID Id) {
   case TY_CXXHUHeader:
   case TY_PP_CXXHeaderUnit:
   case TY_ObjCXXHeader: case TY_PP_ObjCXXHeader:
-  case TY_CXXModule: case TY_PP_CXXModule:
+  case TY_CXXModule: case TY_PP_CXXModule: case TY_ModuleFile:
   case TY_PP_CLCXX:
   case TY_CUDA: case TY_PP_CUDA: case TY_CUDA_DEVICE:
   case TY_HIP:

>From 1807c2031d3603872e07e70508abb2f2396655a6 Mon Sep 17 00:00:00 2001
From: Sharadh Rajaraman <3754080+shara...@users.noreply.github.com>
Date: Tue, 16 Jul 2024 20:10:12 +0100
Subject: [PATCH 2/3] Resolve `clang-format` issues

---
 clang/lib/Driver/Types.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/clang/lib/Driver/Types.cpp b/clang/lib/Driver/Types.cpp
index c6a03f4491dd79..2b9b391c19c9fd 100644
--- a/clang/lib/Driver/Types.cpp
+++ b/clang/lib/Driver/Types.cpp
@@ -242,7 +242,9 @@ bool types::isCXX(ID Id) {
   case TY_CXXHUHeader:
   case TY_PP_CXXHeaderUnit:
   case TY_ObjCXXHeader: case TY_PP_ObjCXXHeader:
-  case TY_CXXModule: case TY_PP_CXXModule: case TY_ModuleFile:
+  case TY_CXXModule:
+  case TY_PP_CXXModule:
+  case TY_ModuleFile:
   case TY_PP_CLCXX:
   case TY_CUDA: case TY_PP_CUDA: case TY_CUDA_DEVICE:
   case TY_HIP:

>From 6bdb828957cbe9910dabe1589e6c33684cb7aa89 Mon Sep 17 00:00:00 2001
From: Sharadh Rajaraman 
Date: Wed, 7 Aug 2024 20:41:39 +0100
Subject: [PATCH 3/3] Add a test to check that warning is gone

---
 clang/test/Driver/cl-cxx20-modules.cppm | 16 
 1 file changed, 16 insertions(+)
 create mode 100644 clang/test/Driver/cl-cxx20-modules.cppm

diff --git a/clang/test/Driver/cl-cxx20-modules.cppm 
b/clang/test/Driver/cl-cxx20-modules.cppm
new file mode 100644
index 00..43dbf517485a05
--- /dev/null
+++ b/clang/test/Driver/cl-cxx20-modules.cppm
@@ -0,0 +1,16 @@
+// RUN: rm -rf %t
+// RUN: split-file %s %t
+
+// RUN: %clang_cl /std:c++20 --precompile -### -- %s 2>&1 | FileCheck 
--check-prefix=PRECOMPILE %s
+// PRECOMPILE: -emit-module-interface
+
+// RUN: %clang_cl /std:c++20 --fmodule-file=Foo=Foo.pcm -### -- %s 2>&1 | 
FileCheck --check-prefix=FMODULEFILE %s
+// FMODULEFILE: -fmodule-file=Foo=Foo.pcm
+
+// RUN: %clang_cl /std:c++20 --fprebuilt-module-path=. -### -- %s 2>&1 | 
FileCheck --check-prefix=FPREBUILT %s
+// FPREBUILT: -fprebuilt-module-path=.
+
+// RUN: %clang_cl %t/test.pcm /std:c++20 -### 2>&1 | FileCheck 
--check-prefix=CPP20WARNING %t/test.pcm
+
+//--- test.pcm
+// CPP20WARNING-NOT: clang-cl: warning: argument unused during compilation: 
'/std:c++20' [-Wunused-command-line-argument]

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] [clang][driver][clang-cl] Fix unused argument warning for `/std:c++20` for precompiled module inputs to `clang-cl` (PR #102438)

2024-08-15 Thread Sharadh Rajaraman via llvm-branch-commits

sharadhr wrote:

@ChuanqiXu9, is there anything else that needs to be done here? There's a merge 
conflict; I could resolve that.

https://github.com/llvm/llvm-project/pull/102438
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] [clang][driver][clang-cl] Fix unused argument warning for `/std:c++20` for precompiled module inputs to `clang-cl` (PR #102438)

2024-08-15 Thread Sharadh Rajaraman via llvm-branch-commits

https://github.com/sharadhr updated 
https://github.com/llvm/llvm-project/pull/102438

>From 5248f86c4ef2aa5ce796b6b985ab1c7bbb65d763 Mon Sep 17 00:00:00 2001
From: Sharadh Rajaraman 
Date: Sun, 14 Jul 2024 11:05:57 +0100
Subject: [PATCH 1/3] `TY_ModuleFile` should be a 'CXX' file type

---
 clang/lib/Driver/Types.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clang/lib/Driver/Types.cpp b/clang/lib/Driver/Types.cpp
index a7b6b9000e1d2b..c6a03f4491dd79 100644
--- a/clang/lib/Driver/Types.cpp
+++ b/clang/lib/Driver/Types.cpp
@@ -242,7 +242,7 @@ bool types::isCXX(ID Id) {
   case TY_CXXHUHeader:
   case TY_PP_CXXHeaderUnit:
   case TY_ObjCXXHeader: case TY_PP_ObjCXXHeader:
-  case TY_CXXModule: case TY_PP_CXXModule:
+  case TY_CXXModule: case TY_PP_CXXModule: case TY_ModuleFile:
   case TY_PP_CLCXX:
   case TY_CUDA: case TY_PP_CUDA: case TY_CUDA_DEVICE:
   case TY_HIP:

>From 1807c2031d3603872e07e70508abb2f2396655a6 Mon Sep 17 00:00:00 2001
From: Sharadh Rajaraman <3754080+shara...@users.noreply.github.com>
Date: Tue, 16 Jul 2024 20:10:12 +0100
Subject: [PATCH 2/3] Resolve `clang-format` issues

---
 clang/lib/Driver/Types.cpp | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/clang/lib/Driver/Types.cpp b/clang/lib/Driver/Types.cpp
index c6a03f4491dd79..2b9b391c19c9fd 100644
--- a/clang/lib/Driver/Types.cpp
+++ b/clang/lib/Driver/Types.cpp
@@ -242,7 +242,9 @@ bool types::isCXX(ID Id) {
   case TY_CXXHUHeader:
   case TY_PP_CXXHeaderUnit:
   case TY_ObjCXXHeader: case TY_PP_ObjCXXHeader:
-  case TY_CXXModule: case TY_PP_CXXModule: case TY_ModuleFile:
+  case TY_CXXModule:
+  case TY_PP_CXXModule:
+  case TY_ModuleFile:
   case TY_PP_CLCXX:
   case TY_CUDA: case TY_PP_CUDA: case TY_CUDA_DEVICE:
   case TY_HIP:

>From 6bdb828957cbe9910dabe1589e6c33684cb7aa89 Mon Sep 17 00:00:00 2001
From: Sharadh Rajaraman 
Date: Wed, 7 Aug 2024 20:41:39 +0100
Subject: [PATCH 3/3] Add a test to check that warning is gone

---
 clang/test/Driver/cl-cxx20-modules.cppm | 16 
 1 file changed, 16 insertions(+)
 create mode 100644 clang/test/Driver/cl-cxx20-modules.cppm

diff --git a/clang/test/Driver/cl-cxx20-modules.cppm 
b/clang/test/Driver/cl-cxx20-modules.cppm
new file mode 100644
index 00..43dbf517485a05
--- /dev/null
+++ b/clang/test/Driver/cl-cxx20-modules.cppm
@@ -0,0 +1,16 @@
+// RUN: rm -rf %t
+// RUN: split-file %s %t
+
+// RUN: %clang_cl /std:c++20 --precompile -### -- %s 2>&1 | FileCheck 
--check-prefix=PRECOMPILE %s
+// PRECOMPILE: -emit-module-interface
+
+// RUN: %clang_cl /std:c++20 --fmodule-file=Foo=Foo.pcm -### -- %s 2>&1 | 
FileCheck --check-prefix=FMODULEFILE %s
+// FMODULEFILE: -fmodule-file=Foo=Foo.pcm
+
+// RUN: %clang_cl /std:c++20 --fprebuilt-module-path=. -### -- %s 2>&1 | 
FileCheck --check-prefix=FPREBUILT %s
+// FPREBUILT: -fprebuilt-module-path=.
+
+// RUN: %clang_cl %t/test.pcm /std:c++20 -### 2>&1 | FileCheck 
--check-prefix=CPP20WARNING %t/test.pcm
+
+//--- test.pcm
+// CPP20WARNING-NOT: clang-cl: warning: argument unused during compilation: 
'/std:c++20' [-Wunused-command-line-argument]

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] [clang][driver][clang-cl] Fix unused argument warning for `/std:c++20` for precompiled module inputs to `clang-cl` (PR #102438)

2024-08-19 Thread Sharadh Rajaraman via llvm-branch-commits

https://github.com/sharadhr updated 
https://github.com/llvm/llvm-project/pull/102438

>From 909706ce5474c40eeb6355233c891cd0fd335347 Mon Sep 17 00:00:00 2001
From: Sharadh Rajaraman 
Date: Mon, 19 Aug 2024 12:17:58 +0100
Subject: [PATCH] [clang][driver] `TY_ModuleFile` should be a 'CXX' file type

---
 clang/lib/Driver/Types.cpp  | 4 +++-
 clang/test/Driver/cl-cxx20-modules.cppm | 8 
 2 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/clang/lib/Driver/Types.cpp b/clang/lib/Driver/Types.cpp
index a7b6b9000e1d2b..2b9b391c19c9fd 100644
--- a/clang/lib/Driver/Types.cpp
+++ b/clang/lib/Driver/Types.cpp
@@ -242,7 +242,9 @@ bool types::isCXX(ID Id) {
   case TY_CXXHUHeader:
   case TY_PP_CXXHeaderUnit:
   case TY_ObjCXXHeader: case TY_PP_ObjCXXHeader:
-  case TY_CXXModule: case TY_PP_CXXModule:
+  case TY_CXXModule:
+  case TY_PP_CXXModule:
+  case TY_ModuleFile:
   case TY_PP_CLCXX:
   case TY_CUDA: case TY_PP_CUDA: case TY_CUDA_DEVICE:
   case TY_HIP:
diff --git a/clang/test/Driver/cl-cxx20-modules.cppm 
b/clang/test/Driver/cl-cxx20-modules.cppm
index 06df929c42342f..43dbf517485a05 100644
--- a/clang/test/Driver/cl-cxx20-modules.cppm
+++ b/clang/test/Driver/cl-cxx20-modules.cppm
@@ -1,3 +1,6 @@
+// RUN: rm -rf %t
+// RUN: split-file %s %t
+
 // RUN: %clang_cl /std:c++20 --precompile -### -- %s 2>&1 | FileCheck 
--check-prefix=PRECOMPILE %s
 // PRECOMPILE: -emit-module-interface
 
@@ -6,3 +9,8 @@
 
 // RUN: %clang_cl /std:c++20 --fprebuilt-module-path=. -### -- %s 2>&1 | 
FileCheck --check-prefix=FPREBUILT %s
 // FPREBUILT: -fprebuilt-module-path=.
+
+// RUN: %clang_cl %t/test.pcm /std:c++20 -### 2>&1 | FileCheck 
--check-prefix=CPP20WARNING %t/test.pcm
+
+//--- test.pcm
+// CPP20WARNING-NOT: clang-cl: warning: argument unused during compilation: 
'/std:c++20' [-Wunused-command-line-argument]

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] [clang][driver][clang-cl] Fix unused argument warning for `/std:c++20` for precompiled module inputs to `clang-cl` (PR #102438)

2024-08-19 Thread Sharadh Rajaraman via llvm-branch-commits

sharadhr wrote:

@tru, thanks for the feedback; I hope this is better. 

https://github.com/llvm/llvm-project/pull/102438
___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] Accept `cl`-style output arguments (`/Fo`, `-Fo`) for `--fmodule-output` (PR #121046)

2024-12-24 Thread Sharadh Rajaraman via llvm-branch-commits

https://github.com/sharadhr updated 
https://github.com/llvm/llvm-project/pull/121046

>From 350a5176766eb22d46d165f05e5036bdc7486696 Mon Sep 17 00:00:00 2001
From: Sharadh Rajaraman 
Date: Tue, 24 Dec 2024 09:26:42 +
Subject: [PATCH] Accept `cl`-style output arguments (`/Fo`, `-Fo`) for
 `--fmodule-output`

- Edited condition to also accept `OPT__SLASH_Fo`, and `OPT__SLASH_Fo_COLON`
---
 clang/lib/Driver/Driver.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index ecae475f75da00..b47e0443d6e9db 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -5442,7 +5442,7 @@ InputInfoList Driver::BuildJobsForAction(
   InputInfoList Result = BuildJobsForActionNoCache(
   C, A, TC, BoundArch, AtTopLevel, MultipleArchs, LinkingOutput,
   CachedResults, TargetDeviceOffloadKind);
-  CachedResults[ActionTC] = Result;
+   CachedResults[ActionTC] = Result;
   return Result;
 }
 
@@ -5890,7 +5890,7 @@ const char *Driver::GetNamedOutputPath(Compilation &C, 
const JobAction &JA,
   llvm::PrettyStackTraceString CrashInfo("Computing output path");
   // Output to a user requested destination?
   if (AtTopLevel && !isa(JA) && !isa(JA)) {
-if (Arg *FinalOutput = C.getArgs().getLastArg(options::OPT_o))
+if (Arg *FinalOutput = C.getArgs().getLastArg(options::OPT_o, 
options::OPT__SLASH_Fo, options::OPT__SLASH_Fo_COLON))
   return C.addResultFile(FinalOutput->getValue(), &JA);
   }
 

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] Accept `cl`-style output arguments (`/Fo`, `-Fo`) for `--fmodule-output` (PR #121046)

2024-12-24 Thread Sharadh Rajaraman via llvm-branch-commits

https://github.com/sharadhr created 
https://github.com/llvm/llvm-project/pull/121046

None

>From d8108f0aa7351d4ba8766e8f225ef6c117dc2f0c Mon Sep 17 00:00:00 2001
From: Sharadh Rajaraman 
Date: Tue, 24 Dec 2024 09:26:42 +
Subject: [PATCH] Accept `cl`-style output arguments (`/Fo`, `-Fo`) for
 `--fmodule-output`

- Edited condition to also accept `OPT__SLASH_Fo`, and `OPT__SLASH_Fo_COLON`
---
 clang/lib/Driver/Driver.cpp | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index ecae475f75da00..b47e0443d6e9db 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -5442,7 +5442,7 @@ InputInfoList Driver::BuildJobsForAction(
   InputInfoList Result = BuildJobsForActionNoCache(
   C, A, TC, BoundArch, AtTopLevel, MultipleArchs, LinkingOutput,
   CachedResults, TargetDeviceOffloadKind);
-  CachedResults[ActionTC] = Result;
+   CachedResults[ActionTC] = Result;
   return Result;
 }
 
@@ -5890,7 +5890,7 @@ const char *Driver::GetNamedOutputPath(Compilation &C, 
const JobAction &JA,
   llvm::PrettyStackTraceString CrashInfo("Computing output path");
   // Output to a user requested destination?
   if (AtTopLevel && !isa(JA) && !isa(JA)) {
-if (Arg *FinalOutput = C.getArgs().getLastArg(options::OPT_o))
+if (Arg *FinalOutput = C.getArgs().getLastArg(options::OPT_o, 
options::OPT__SLASH_Fo, options::OPT__SLASH_Fo_COLON))
   return C.addResultFile(FinalOutput->getValue(), &JA);
   }
 

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] Accept `cl`-style output arguments (`/Fo`, `-Fo`) for `--fmodule-output` (PR #121046)

2024-12-24 Thread Sharadh Rajaraman via llvm-branch-commits

https://github.com/sharadhr updated 
https://github.com/llvm/llvm-project/pull/121046

>From e1708dba9b2aa8001f3a432bd1be7af58a199d73 Mon Sep 17 00:00:00 2001
From: Sharadh Rajaraman 
Date: Tue, 24 Dec 2024 09:32:21 +
Subject: [PATCH] Auto stash before rebase of
 "clang-cl-accept-Fo-fmodule-output" onto "release/19.x"

---
 clang/lib/Driver/Driver.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index ecae475f75da00..22c1cbd8b4608d 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -5890,7 +5890,7 @@ const char *Driver::GetNamedOutputPath(Compilation &C, 
const JobAction &JA,
   llvm::PrettyStackTraceString CrashInfo("Computing output path");
   // Output to a user requested destination?
   if (AtTopLevel && !isa(JA) && !isa(JA)) {
-if (Arg *FinalOutput = C.getArgs().getLastArg(options::OPT_o))
+if (Arg *FinalOutput = C.getArgs().getLastArg(options::OPT_o, 
options::OPT__SLASH_Fo, options::OPT__SLASH_Fo_COLON))
   return C.addResultFile(FinalOutput->getValue(), &JA);
   }
 

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits


[llvm-branch-commits] [clang] Accept `cl`-style output arguments (`/Fo`, `-Fo`) for `--fmodule-output` (PR #121046)

2025-01-05 Thread Sharadh Rajaraman via llvm-branch-commits

https://github.com/sharadhr updated 
https://github.com/llvm/llvm-project/pull/121046

>From a9f921227abccda6c82137bed0b95041f584a147 Mon Sep 17 00:00:00 2001
From: Sharadh Rajaraman 
Date: Tue, 24 Dec 2024 09:32:21 +
Subject: [PATCH 1/2] Accept /Fo and -Fo in `-fmodule-output` when running
 under CL mode

---
 clang/lib/Driver/Driver.cpp | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index bc5ce9f14ab698..268d836841a107 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -5978,7 +5978,7 @@ const char *Driver::GetNamedOutputPath(Compilation &C, 
const JobAction &JA,
   llvm::PrettyStackTraceString CrashInfo("Computing output path");
   // Output to a user requested destination?
   if (AtTopLevel && !isa(JA) && !isa(JA)) {
-if (Arg *FinalOutput = C.getArgs().getLastArg(options::OPT_o))
+if (Arg *FinalOutput = C.getArgs().getLastArg(options::OPT_o, 
options::OPT__SLASH_Fo, options::OPT__SLASH_Fo_COLON))
   return C.addResultFile(FinalOutput->getValue(), &JA);
   }
 

>From bc9b68d11d8f4a2fe76b26b13d805126c40beafd Mon Sep 17 00:00:00 2001
From: Sharadh Rajaraman 
Date: Sun, 5 Jan 2025 14:09:24 +
Subject: [PATCH 2/2] Use `IsCLMode` to guard cl-style output argument presence

---
 clang/lib/Driver/Driver.cpp | 9 -
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 268d836841a107..9ea9ea390216f3 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -5978,8 +5978,15 @@ const char *Driver::GetNamedOutputPath(Compilation &C, 
const JobAction &JA,
   llvm::PrettyStackTraceString CrashInfo("Computing output path");
   // Output to a user requested destination?
   if (AtTopLevel && !isa(JA) && !isa(JA)) {
-if (Arg *FinalOutput = C.getArgs().getLastArg(options::OPT_o, 
options::OPT__SLASH_Fo, options::OPT__SLASH_Fo_COLON))
+Arg *FinalOutput =
+IsCLMode()
+? C.getArgs().getLastArg(options::OPT_o, options::OPT__SLASH_Fo,
+ options::OPT__SLASH_Fo_COLON)
+: C.getArgs().getLastArg(options::OPT_o);
+
+if (FinalOutput != nullptr) {
   return C.addResultFile(FinalOutput->getValue(), &JA);
+}
   }
 
   // For /P, preprocess to file named after BaseInput.

___
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits