Skip to content

Commit f39880d

Browse files
committed
Adopt suggestion for general case of -gheterogeneous-dwarf
1 parent ec0c675 commit f39880d

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

clang/lib/Driver/ToolChains/Clang.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4924,6 +4924,9 @@ renderDebugOptions(const ToolChain &TC, const Driver &D, const llvm::Triple &T,
49244924
if (EmitDwarfForAMDGCN)
49254925
CmdArgs.append({"-mllvm", "-amdgpu-spill-cfi-saved-regs"});
49264926
if (Arg *A = Args.getLastArg(options::OPT_gheterogeneous_dwarf_EQ)) {
4927+
if (StringRef(A->getValue()) == "diexpr")
4928+
D.Diag(clang::diag::err_drv_unsupported_opt_with_suggestion)
4929+
<< A->getAsString(Args) << "-gheterogeneous-dwarf=diexpression";
49274930
A->render(Args, CmdArgs);
49284931
} else if (EmitDwarfForAMDGCN) {
49294932
#ifndef NDEBUG

clang/test/Driver/amdgpu-debug.cl

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,15 @@
4444

4545
// Specifically, check for failure with previously-valid value diexpr
4646
// RUN: not %clang -target amdgcn-amd-amdhsa -x cl -c -nogpuinc -nogpulib -emit-llvm -g -gheterogeneous-dwarf=diexpr %s 2>&1 | FileCheck -check-prefix=CHECK-DIEXPR %s
47-
// CHECK-DIEXPR: error: invalid value
47+
// CHECK-DIEXPR: error: unsupported option '-gheterogeneous-dwarf=diexpr'; did you mean '-gheterogeneous-dwarf=diexpression'?
48+
49+
// Check that =diexpression is implied by -g + spirv
50+
// RUN: %clang -### -target spirv64-amd-amdhsa -x cl -c -nogpuinc -nogpulib -emit-llvm -g %s 2>&1 | FileCheck -check-prefix=CHECK-SPIRV %s
51+
// CHECK-SPIRV: "-cc1"
52+
// CHECK-SPIRV-DAG: "-mllvm" "-amdgpu-spill-cfi-saved-regs"
53+
// CHECK-SPIRV-DAG: "-gheterogeneous-dwarf=diexpression"
54+
// CHECK-SPIRV-DAG: "-debugger-tuning=gdb"
55+
56+
// Check that =diexpr produces an error on spirv.
57+
// RUN: not %clang -### -target spirv64-amd-amdhsa -x cl -c -nogpuinc -nogpulib -emit-llvm -g -gheterogeneous-dwarf=diexpr %s 2>&1 | FileCheck -check-prefix=CHECK-SPIRV-ERR %s
58+
// CHECK-SPIRV-ERR: error: unsupported option '-gheterogeneous-dwarf=diexpr'; did you mean '-gheterogeneous-dwarf=diexpression'?

0 commit comments

Comments
 (0)