llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang-modules @llvm/pr-subscribers-clang-codegen Author: None (dyung) <details> <summary>Changes</summary> Recently in some of our internal testing, we noticed that the compiler was sometimes generating an empty linker.options section which seems unnecessary. This proposed change causes the compiler to simply omit emitting the linker.options section if it is empty. --- Full diff: https://github.com/llvm/llvm-project/pull/139821.diff 2 Files Affected: - (modified) clang/lib/CodeGen/CodeGenModule.cpp (+5-3) - (modified) clang/test/Modules/module-impl-with-link.c (+1-1) ``````````diff diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp index 50041f883cfe5..3bf52428130f7 100644 --- a/clang/lib/CodeGen/CodeGenModule.cpp +++ b/clang/lib/CodeGen/CodeGenModule.cpp @@ -3274,9 +3274,11 @@ void CodeGenModule::EmitModuleLinkOptions() { LinkerOptionsMetadata.append(MetadataArgs.begin(), MetadataArgs.end()); // Add the linker options metadata flag. - auto *NMD = getModule().getOrInsertNamedMetadata("llvm.linker.options"); - for (auto *MD : LinkerOptionsMetadata) - NMD->addOperand(MD); + if (!LinkerOptionsMetadata.empty()) { + auto *NMD = getModule().getOrInsertNamedMetadata("llvm.linker.options"); + for (auto *MD : LinkerOptionsMetadata) + NMD->addOperand(MD); + } } void CodeGenModule::EmitDeferred() { diff --git a/clang/test/Modules/module-impl-with-link.c b/clang/test/Modules/module-impl-with-link.c index ffd388c56b90a..be2f1359b5e94 100644 --- a/clang/test/Modules/module-impl-with-link.c +++ b/clang/test/Modules/module-impl-with-link.c @@ -3,4 +3,4 @@ #include "foo.h" // Make sure we don't generate linker option for module Clib since this TU is // an implementation of Clib. -// CHECK: !llvm.linker.options = !{} +// CHECK-NOT: !llvm.linker.options = `````````` </details> https://github.com/llvm/llvm-project/pull/139821 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits