hoy created this revision.
Herald added subscribers: modimo, wenlei.
hoy requested review of this revision.
Herald added a project: clang.
Herald added a subscriber: cfe-commits.
Turning on -funique-internal-linkage-names when -fpseudo-probe-for-profiling is
on, unless -fno-unique-internal-linkage-names is specified.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D106193
Files:
clang/lib/Driver/ToolChains/Clang.cpp
clang/test/Driver/pseudo-probe.c
Index: clang/test/Driver/pseudo-probe.c
===================================================================
--- clang/test/Driver/pseudo-probe.c
+++ clang/test/Driver/pseudo-probe.c
@@ -1,7 +1,13 @@
// RUN: %clang -### -fpseudo-probe-for-profiling %s 2>&1 | FileCheck %s
--check-prefix=YESPROBE
// RUN: %clang -### -fno-pseudo-probe-for-profiling %s 2>&1 | FileCheck %s
--check-prefix=NOPROBE
// RUN: %clang -### -fpseudo-probe-for-profiling -fdebug-info-for-profiling %s
2>&1 | FileCheck %s --check-prefix=CONFLICT
+// RUN: %clang -### -fpseudo-probe-for-profiling
-funique-internal-linkage-names %s 2>&1 | FileCheck %s --check-prefix=YESPROBE
+// RUN: %clang -### -fpseudo-probe-for-profiling
-fno-unique-internal-linkage-names %s 2>&1 | FileCheck %s --check-prefix=NONAME
// YESPROBE: -fpseudo-probe-for-profiling
+// YESPROBE: -funique-internal-linkage-names
// NOPROBE-NOT: -fpseudo-probe-for-profiling
+// NOPROBE-NOT: -funique-internal-linkage-names
+// NONAME: -fpseudo-probe-for-profiling
+// NONAME-NOT: -funique-internal-linkage-names
// CONFLICT: invalid argument
Index: clang/lib/Driver/ToolChains/Clang.cpp
===================================================================
--- clang/lib/Driver/ToolChains/Clang.cpp
+++ clang/lib/Driver/ToolChains/Clang.cpp
@@ -5972,8 +5972,14 @@
Args.AddLastArg(CmdArgs, options::OPT_fprofile_remapping_file_EQ);
if (Args.hasFlag(options::OPT_fpseudo_probe_for_profiling,
- options::OPT_fno_pseudo_probe_for_profiling, false))
+ options::OPT_fno_pseudo_probe_for_profiling, false)) {
CmdArgs.push_back("-fpseudo-probe-for-profiling");
+ // Enforce -funique-internal-linkage-names if it's not explicitly turned
+ // off.
+ if (Args.hasFlag(options::OPT_funique_internal_linkage_names,
+ options::OPT_fno_unique_internal_linkage_names, true))
+ CmdArgs.push_back("-funique-internal-linkage-names");
+ }
}
RenderBuiltinOptions(TC, RawTriple, Args, CmdArgs);
Index: clang/test/Driver/pseudo-probe.c
===================================================================
--- clang/test/Driver/pseudo-probe.c
+++ clang/test/Driver/pseudo-probe.c
@@ -1,7 +1,13 @@
// RUN: %clang -### -fpseudo-probe-for-profiling %s 2>&1 | FileCheck %s --check-prefix=YESPROBE
// RUN: %clang -### -fno-pseudo-probe-for-profiling %s 2>&1 | FileCheck %s --check-prefix=NOPROBE
// RUN: %clang -### -fpseudo-probe-for-profiling -fdebug-info-for-profiling %s 2>&1 | FileCheck %s --check-prefix=CONFLICT
+// RUN: %clang -### -fpseudo-probe-for-profiling -funique-internal-linkage-names %s 2>&1 | FileCheck %s --check-prefix=YESPROBE
+// RUN: %clang -### -fpseudo-probe-for-profiling -fno-unique-internal-linkage-names %s 2>&1 | FileCheck %s --check-prefix=NONAME
// YESPROBE: -fpseudo-probe-for-profiling
+// YESPROBE: -funique-internal-linkage-names
// NOPROBE-NOT: -fpseudo-probe-for-profiling
+// NOPROBE-NOT: -funique-internal-linkage-names
+// NONAME: -fpseudo-probe-for-profiling
+// NONAME-NOT: -funique-internal-linkage-names
// CONFLICT: invalid argument
Index: clang/lib/Driver/ToolChains/Clang.cpp
===================================================================
--- clang/lib/Driver/ToolChains/Clang.cpp
+++ clang/lib/Driver/ToolChains/Clang.cpp
@@ -5972,8 +5972,14 @@
Args.AddLastArg(CmdArgs, options::OPT_fprofile_remapping_file_EQ);
if (Args.hasFlag(options::OPT_fpseudo_probe_for_profiling,
- options::OPT_fno_pseudo_probe_for_profiling, false))
+ options::OPT_fno_pseudo_probe_for_profiling, false)) {
CmdArgs.push_back("-fpseudo-probe-for-profiling");
+ // Enforce -funique-internal-linkage-names if it's not explicitly turned
+ // off.
+ if (Args.hasFlag(options::OPT_funique_internal_linkage_names,
+ options::OPT_fno_unique_internal_linkage_names, true))
+ CmdArgs.push_back("-funique-internal-linkage-names");
+ }
}
RenderBuiltinOptions(TC, RawTriple, Args, CmdArgs);
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits