llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-llvm-transforms Author: Orlando Cazalet-Hyams (OCHyams) <details> <summary>Changes</summary> Reverts llvm/llvm-project#<!-- -->194860 failure example: https://lab.llvm.org/buildbot/#/builders/154/builds/35126 --- Patch is 40.39 KiB, truncated to 20.00 KiB below, full version: https://github.com/llvm/llvm-project/pull/216298.diff 26 Files Affected: - (modified) clang/include/clang/Basic/CodeGenOptions.h (-3) - (modified) clang/include/clang/Basic/DebugOptions.def (-7) - (modified) clang/include/clang/Basic/DiagnosticDriverKinds.td (-5) - (modified) clang/include/clang/Basic/DiagnosticFrontendKinds.td (-6) - (modified) clang/include/clang/Basic/DiagnosticGroups.td (-2) - (modified) clang/include/clang/Options/Options.td (-18) - (modified) clang/lib/CodeGen/BackendUtil.cpp (+1-110) - (modified) clang/lib/Driver/ToolChains/Clang.cpp (+2-35) - (modified) clang/lib/Frontend/CompilerInvocation.cpp (-6) - (removed) clang/test/DebugInfo/DynamicDebugging/EndToEnd/X86/globalopt.c (-24) - (removed) clang/test/DebugInfo/DynamicDebugging/EndToEnd/X86/lit.local.cfg (-4) - (removed) clang/test/DebugInfo/DynamicDebugging/EndToEnd/X86/obj-emission-target/lit.local.cfg (-3) - (removed) clang/test/DebugInfo/DynamicDebugging/EndToEnd/X86/obj-emission-target/no-target.c (-14) - (removed) clang/test/DebugInfo/DynamicDebugging/EndToEnd/X86/section.c (-15) - (removed) clang/test/DebugInfo/DynamicDebugging/attr-outer-tail-pad.c (-10) - (removed) clang/test/DebugInfo/DynamicDebugging/attr-outer.c (-9) - (removed) clang/test/DebugInfo/DynamicDebugging/compiler-used.cpp (-37) - (removed) clang/test/DebugInfo/DynamicDebugging/embed.c (-14) - (removed) clang/test/DebugInfo/DynamicDebugging/inner-attrs.c (-27) - (removed) clang/test/DebugInfo/DynamicDebugging/profile-coverage.c (-7) - (removed) clang/test/DebugInfo/DynamicDebugging/symbols-functions.cpp (-33) - (removed) clang/test/DebugInfo/DynamicDebugging/symbols-globals.cpp (-72) - (removed) clang/test/DebugInfo/DynamicDebugging/symbols-internal-comdat.cpp (-27) - (removed) clang/test/Driver/dynamic-debugging-flags.c (-32) - (modified) llvm/include/llvm/Transforms/Utils/ModuleUtils.h (+4-8) - (modified) llvm/lib/Transforms/Utils/ModuleUtils.cpp (+4-11) ``````````diff diff --git a/clang/include/clang/Basic/CodeGenOptions.h b/clang/include/clang/Basic/CodeGenOptions.h index 82c2cb942c5ed..6e9bde32e0655 100644 --- a/clang/include/clang/Basic/CodeGenOptions.h +++ b/clang/include/clang/Basic/CodeGenOptions.h @@ -397,9 +397,6 @@ class CodeGenOptions : public CodeGenOptionsBase { /// Prefix to use for -save-temps output. std::string SaveTempsFilePrefix; - /// Prefix to use for -save-dynamic-debugging-temps output. - std::string SaveDynDbgTempsFilePrefix; - /// Name of file passed with -fcuda-include-gpubinary option to forward to /// CUDA runtime back-end for incorporating them into host-side object file. std::string CudaGpuBinaryFileName; diff --git a/clang/include/clang/Basic/DebugOptions.def b/clang/include/clang/Basic/DebugOptions.def index e496825d51274..c9dd3f726e799 100644 --- a/clang/include/clang/Basic/DebugOptions.def +++ b/clang/include/clang/Basic/DebugOptions.def @@ -62,13 +62,6 @@ ENUM_DEBUGOPT(AssignmentTrackingMode, AssignmentTrackingOpts, 2, /// Whether or not to use Key Instructions to determine breakpoint locations. DEBUGOPT(DebugKeyInstructions, 1, 0, Benign) -/// Whether or not to use the Dynamic Debugging feature. -DEBUGOPT(DynamicDebugging, 1, 0, Benign) - -/// Flag for testing: discard the dynamic debugging debug module before codegen -/// if true. -DEBUGOPT(DiscardDynamicDebuggingDebugModule, 1, 0, Benign) - DEBUGOPT(DebugColumnInfo, 1, 0, Compatible) ///< Whether or not to use column information ///< in debug info. diff --git a/clang/include/clang/Basic/DiagnosticDriverKinds.td b/clang/include/clang/Basic/DiagnosticDriverKinds.td index 929421f915a4e..91895d4957cf7 100644 --- a/clang/include/clang/Basic/DiagnosticDriverKinds.td +++ b/clang/include/clang/Basic/DiagnosticDriverKinds.td @@ -409,11 +409,6 @@ def err_drv_optimization_remark_format : Error< def err_drv_no_neon_modifier : Error<"[no]neon is not accepted as modifier, please use [no]simd instead">; def err_drv_invalid_omp_target : Error<"OpenMP target is invalid: '%0'">; def err_drv_incompatible_omp_arch : Error<"OpenMP target architecture '%0' pointer size is incompatible with host '%1'">; -def err_drv_dyndbg_lto : Error<"'-fdynamic-debugging' incompatible with '-flto'">; -def err_drv_dyndbg_incompatible : Error<"'-fdynamic-debugging' incompatible with '%0'">; -def err_drv_dyndbg_ir : Error<"'-fdynamic-debugging' incompatible with IR input">; -def warn_drv_dyndbg_req_debug : Warning<"'-fdynamic-debugging' ignored: requires debug info">, - InGroup<DynamicDebugging>; def err_drv_omp_host_target_not_supported : Error< "target '%0' is not a supported OpenMP host target">; def err_drv_expecting_fopenmp_with_fopenmp_targets : Error< diff --git a/clang/include/clang/Basic/DiagnosticFrontendKinds.td b/clang/include/clang/Basic/DiagnosticFrontendKinds.td index 051a50406812a..151de132433d1 100644 --- a/clang/include/clang/Basic/DiagnosticFrontendKinds.td +++ b/clang/include/clang/Basic/DiagnosticFrontendKinds.td @@ -550,10 +550,4 @@ def err_member_ptr_requires_complete_type : Error<"member pointer representation requires a complete class type for " "%0 to perform this expression">; -def warn_dyndbg_unable_to_create_target : Warning< - "ignoring -fdynamic-debugging: unable to create target: '%0'">, - InGroup<DynamicDebugging>; - -def err_dyndbg_no_instrumentation : Error< - "'-fdynamic-debugging' unsupported with instrumentation (PGO/code coverage)">; } diff --git a/clang/include/clang/Basic/DiagnosticGroups.td b/clang/include/clang/Basic/DiagnosticGroups.td index c147e0f58b246..ba820778b80c0 100644 --- a/clang/include/clang/Basic/DiagnosticGroups.td +++ b/clang/include/clang/Basic/DiagnosticGroups.td @@ -2021,5 +2021,3 @@ def ExperimentalOption : DiagGroup<"experimental-option">; def UnguardedBuiltinUsageAMDGPU : DiagGroup<"amdgpu-unguarded-builtin-usage">; def AvailableVisibleAMDGPU : DiagGroup<"amdgpu-av">; - -def DynamicDebugging : DiagGroup<"dynamic-debugging">; diff --git a/clang/include/clang/Options/Options.td b/clang/include/clang/Options/Options.td index c78484933b7e3..6af0f578b6d63 100644 --- a/clang/include/clang/Options/Options.td +++ b/clang/include/clang/Options/Options.td @@ -5368,24 +5368,6 @@ defm key_instructions : BoolGOption<"key-instructions", " in some debuggers. DWARF only.">, BothFlags<[], [ClangOption, CLOption, CC1Option]>>, Group<g_flags_Group>; -defm dynamic_debugging : BoolOption<"f", "dynamic-debugging", - CodeGenOpts<"DynamicDebugging">, DefaultFalse, - NegFlag<SetFalse>, PosFlag<SetTrue, [], [], - "Enable Dynamic Debugging, which allows runtime switching between" - " optimized and unoptimized code in debuggers that support it." - " Specified optimization level affects only the optimized code." - " This flag inhibits interprocedural optimizations.">, - BothFlags<[], [ClangOption, CLOption, CC1Option]>>; -def save_dynamic_debugging_temps : Flag<["--"], "save-dynamic-debugging-temps">, - Visibility<[ClangOption, CLOption, CC1Option]>, - HelpText<"Compiler-debugging/testing option to save the intermediate" - " states of dynamic debugging in the same directory as the final" - " output file">; -def discard_dynamic_debugging_debug_module : Flag<["--"], "discard-dynamic-debugging-debug-module">, - MarshallingInfoFlag<CodeGenOpts<"DiscardDynamicDebuggingDebugModule">>, - Visibility<[CC1Option]>, - HelpText<"Compiler-debugging/testing option to discard the dynamic" - " debugging debug module before Clang codegen">; def headerpad__max__install__names : Joined<["-"], "headerpad_max_install_names">; def help : Flag<["-", "--"], "help">, Visibility<[ClangOption, CC1Option, CC1AsOption, diff --git a/clang/lib/CodeGen/BackendUtil.cpp b/clang/lib/CodeGen/BackendUtil.cpp index 866e25f7b180c..0b1a4221d3351 100644 --- a/clang/lib/CodeGen/BackendUtil.cpp +++ b/clang/lib/CodeGen/BackendUtil.cpp @@ -22,7 +22,6 @@ #include "llvm/Analysis/RuntimeLibcallInfo.h" #include "llvm/Analysis/TargetLibraryInfo.h" #include "llvm/Analysis/TargetTransformInfo.h" -#include "llvm/BinaryFormat/ELF.h" #include "llvm/Bitcode/BitcodeReader.h" #include "llvm/Bitcode/BitcodeWriter.h" #include "llvm/Bitcode/BitcodeWriterPass.h" @@ -94,7 +93,6 @@ #include "llvm/Transforms/Scalar/JumpThreading.h" #include "llvm/Transforms/Utils/AssignGUID.h" #include "llvm/Transforms/Utils/Debugify.h" -#include "llvm/Transforms/Utils/DynamicDebugging.h" #include "llvm/Transforms/Utils/ModuleUtils.h" #include <limits> #include <memory> @@ -1497,89 +1495,6 @@ runThinLTOBackend(CompilerInstance &CI, ModuleSummaryIndex *CombinedIndex, } } -static void createAndEmbedModuleForDynamicDebugging( - CompilerInstance &CI, CodeGenOptions &CGOpts, llvm::Module *M, - IntrusiveRefCntPtr<llvm::vfs::FileSystem> VFS, BackendConsumer *BC) { - /// Helper for saving the module(s) at various dyndbg stages. - auto SaveModule = [&](StringRef Name, llvm::Module &M) { - if (CGOpts.SaveDynDbgTempsFilePrefix == "") - return; - std::error_code EC; - std::string Path = - Twine(CGOpts.SaveDynDbgTempsFilePrefix + "." + Name + ".ll").str(); - raw_fd_ostream OS(Path, EC, sys::fs::OpenFlags::OF_None); - if (EC) { - // Copy -save-temps behaviour: this is a debugging option so we simply - // exit if there's an issue. - errs() << "failed to open " << Path << ": " << EC.message() << '\n'; - errs().flush(); - exit(1); - } - M.print(OS, nullptr); - }; - - // Compute a hash suffix for promoting static globals (once per TU). - std::string PromotionSuffix; - { - // LLVM's hash/hash_combine is not guaranteed to be stable. - MD5 Hash; - // Include args in the hash else preprocessor definitions used to alter - // the same source file compiled twice won't generate unique hashes. - Hash.update(CGOpts.CmdArgs); - for (auto *CU : M->debug_compile_units()) { - Hash.update(CU->getDirectory()); - Hash.update(CU->getFilename()); - } - - MD5::MD5Result Result; - Hash.final(Result); - PromotionSuffix = ".dyndbg." + utohexstr(Result.low()); - } - - SaveModule("dyndbg.0.input", *M); - // Modify M as needed and create an "unoptimized" clone. - auto UnoptM = prepareForDynamicDebugging(M, PromotionSuffix); - SaveModule("dyndbg.1.inner", *UnoptM); - - if (!CGOpts.DiscardDynamicDebuggingDebugModule) { - CodeGenOptions UnoptOpts = CGOpts; - UnoptOpts.OptimizationLevel = 0; - UnoptOpts.OptimizeSize = 0; - EmitAssemblyHelper AsmHelper(CI, UnoptOpts, UnoptM.get(), VFS); - - // Create a buffer and ostream for the inner ELF. - SmallVector<char, 0> UnoptBuf; - std::unique_ptr<llvm::raw_pwrite_stream> UnoptOS = - std::make_unique<llvm::raw_svector_ostream>(UnoptBuf); - - // Always run the full codegen pipeline (Backend_EmitObj). This causes - // assertion failures if there's no registered backend which is why we - // disable the feature if that's the case (see - // warn_dyndbg_unable_to_create_target above). - AsmHelper.emitAssembly(Backend_EmitObj, std::move(UnoptOS), BC); - assert(!UnoptBuf.empty() && "Expected emitAssembly to fill UnoptBuf"); - - // Inject the inner ELF into the outer module. - StringRef SR(UnoptBuf.data(), UnoptBuf.size()); - std::unique_ptr<MemoryBuffer> Buf = - MemoryBuffer::getMemBuffer(SR, "", false); - - GlobalVariable *EmbeddedGV = - llvm::embedBufferInModule(*M, *Buf, ".debug_llvm_dyndbg", Align(8), - /*SectionExclude*/ false); - // Add ELF section properties metadata. - auto &C = M->getContext(); - auto getU32Metadata = [&C](unsigned Val) { - return ConstantAsMetadata::get(ConstantInt::get(C, APInt(32, Val))); - }; - EmbeddedGV->addMetadata( - LLVMContext::MD_elf_section_properties, - *MDTuple::get(C, {/*sh_type*/ getU32Metadata(ELF::SHT_LLVM_DYNDBG_ELF), - /*sh_entsize*/ getU32Metadata(0)})); - } - SaveModule("dyndbg.2.outer", *M); -} - void clang::emitBackendOutput(CompilerInstance &CI, CodeGenOptions &CGOpts, StringRef TDesc, llvm::Module *M, BackendAction Action, @@ -1603,7 +1518,7 @@ void clang::emitBackendOutput(CompilerInstance &CI, CodeGenOptions &CGOpts, .moveInto(CombinedIndex)) { logAllUnhandledErrors(std::move(E), errs(), "Error loading index file '" + - CGOpts.ThinLTOIndexFile + "': "); + CGOpts.ThinLTOIndexFile + "': "); return; } @@ -1629,30 +1544,6 @@ void clang::emitBackendOutput(CompilerInstance &CI, CodeGenOptions &CGOpts, } } - bool EnableDynamicDebugging = CGOpts.DynamicDebugging; - // Disable dyndbg if the target isn't available as we're compiling to the - // inner module to object regardless of other options. (This may change). - if (EnableDynamicDebugging) { - std::string Error; - const llvm::Target *TheTarget = - TargetRegistry::lookupTarget(M->getTargetTriple(), Error); - if (!TheTarget) { - Diags.Report(diag::warn_dyndbg_unable_to_create_target) << Error; - EnableDynamicDebugging = false; - } - - // Instrumentation causes issues (parts of LLVM expect certain globals to - // have initializers). Intrinsics may already have been added to IR by now, - // so we can't just turn it off for the inner module (we'd have to strip - // them out / not clone them). TODO: Support instrumentation. - if (CGOpts.getProfileInstr() != driver::ProfileInstrKind::ProfileNone) { - Diags.Report(diag::err_dyndbg_no_instrumentation); - EnableDynamicDebugging = false; - } - } - if (EnableDynamicDebugging) - createAndEmbedModuleForDynamicDebugging(CI, CGOpts, M, VFS, BC); - EmitAssemblyHelper AsmHelper(CI, CGOpts, M, VFS); AsmHelper.emitAssembly(Action, std::move(OS), BC); diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp index d2ddea2551418..19d37b2ed7017 100644 --- a/clang/lib/Driver/ToolChains/Clang.cpp +++ b/clang/lib/Driver/ToolChains/Clang.cpp @@ -4661,7 +4661,7 @@ renderDebugOptions(const ToolChain &TC, const Driver &D, const llvm::Triple &T, const ArgList &Args, types::ID InputType, ArgStringList &CmdArgs, const InputInfo &Output, llvm::codegenoptions::DebugInfoKind &DebugInfoKind, - DwarfFissionKind &DwarfFission, bool IsUsingLTO) { + DwarfFissionKind &DwarfFission) { bool IRInput = isLLVMIR(InputType); bool PlainCOrCXX = isDerivedFromC(InputType) && !isCuda(InputType) && !isHIP(InputType) && !isObjC(InputType) && @@ -4886,36 +4886,6 @@ renderDebugOptions(const ToolChain &TC, const Driver &D, const llvm::Triple &T, options::OPT_gno_structor_decl_linkage_names, true)) CmdArgs.push_back("-gno-structor-decl-linkage-names"); - if (Args.hasFlag(options::OPT_fdynamic_debugging, - options::OPT_fno_dynamic_debugging, false)) { - // As this is an experimental feature we can afford to be strict about - // supported configurations. - // NOTE on adding target support, consider adding "tail-pad-to-size" - // support in `llvm::prepareForDynamicDebugging`. - if (!TC.getTriple().isX86()) - D.Diag(diag::err_drv_unsupported_opt_for_target) - << Args.getLastArg(options::OPT_fdynamic_debugging)->getAsString(Args) - << T.getTriple(); - if (IsUsingLTO) - D.Diag(diag::err_drv_dyndbg_lto); - if (DwarfFission != DwarfFissionKind::None) - D.Diag(diag::err_drv_dyndbg_incompatible) - << Args.getLastArg(options::OPT_gsplit_dwarf)->getAsString(Args); - // There's no fundamental reason why IR input should be incompatible, but - // it would add some complexity, and reducing the test matrix is valuable. - if (IRInput) - D.Diag(diag::err_drv_dyndbg_ir); - - // Disable composition with sanitizers for now. - if (auto *San = Args.getLastArg(options::OPT_fsanitize_EQ)) - D.Diag(diag::err_drv_dyndbg_incompatible) << San->getAsString(Args); - - if (!EmitDwarf) - D.Diag(diag::warn_drv_dyndbg_req_debug); - else - CmdArgs.push_back("-fdynamic-debugging"); - } - if (EmitCodeView) { CmdArgs.push_back("-gcodeview"); @@ -5635,9 +5605,6 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, if (Args.getLastArg(options::OPT_save_temps_EQ)) Args.AddLastArg(CmdArgs, options::OPT_save_temps_EQ); - if (Args.getLastArg(options::OPT_save_dynamic_debugging_temps)) - Args.AddLastArg(CmdArgs, options::OPT_save_dynamic_debugging_temps); - auto *MemProfArg = Args.getLastArg(options::OPT_fmemory_profile, options::OPT_fmemory_profile_EQ, options::OPT_fno_memory_profile); @@ -6475,7 +6442,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, llvm::codegenoptions::NoDebugInfo; DwarfFissionKind DwarfFission = DwarfFissionKind::None; renderDebugOptions(TC, D, RawTriple, Args, InputType, CmdArgs, Output, - DebugInfoKind, DwarfFission, IsUsingLTO); + DebugInfoKind, DwarfFission); // Add the split debug info name to the command lines here so we // can propagate it to the backend. diff --git a/clang/lib/Frontend/CompilerInvocation.cpp b/clang/lib/Frontend/CompilerInvocation.cpp index 70fc346d85920..256ae636ca9e6 100644 --- a/clang/lib/Frontend/CompilerInvocation.cpp +++ b/clang/lib/Frontend/CompilerInvocation.cpp @@ -1679,9 +1679,6 @@ void CompilerInvocationBase::GenerateCodeGenArgs(const CodeGenOptions &Opts, if (Opts.SaveTempsFilePrefix == OutputFile) GenerateArg(Consumer, OPT_save_temps_EQ, "obj"); - if (!Opts.SaveDynDbgTempsFilePrefix.empty()) - GenerateArg(Consumer, OPT_save_dynamic_debugging_temps); - StringRef MemProfileBasename("memprof.profraw"); if (!Opts.MemoryProfileOutput.empty()) { if (Opts.MemoryProfileOutput == MemProfileBasename) { @@ -2016,9 +2013,6 @@ bool CompilerInvocation::ParseCodeGenArgs(CodeGenOptions &Opts, ArgList &Args, .Case("obj", OutputFile) .Default(llvm::sys::path::filename(OutputFile).str()); - if (Args.getLastArg(OPT_save_dynamic_debugging_temps)) - Opts.SaveDynDbgTempsFilePrefix = OutputFile; - // The memory profile runtime appends the pid to make this name more unique. const char *MemProfileBasename = "memprof.profraw"; if (Args.hasArg(OPT_fmemory_profile_EQ)) { diff --git a/clang/test/DebugInfo/DynamicDebugging/EndToEnd/X86/globalopt.c b/clang/test/DebugInfo/DynamicDebugging/EndToEnd/X86/globalopt.c deleted file mode 100644 index 3cd4c630fb861..0000000000000 --- a/clang/test/DebugInfo/DynamicDebugging/EndToEnd/X86/globalopt.c +++ /dev/null @@ -1,24 +0,0 @@ -// Check `a` and `d` have aliases while keeping their original symbols. -// GlobalOpt would usually replace these internal-linkage functions with -// their external-linkage aliases. That's currently prevented as a side effect -// of adding discardable functions to the compiler-used global. - -// RUN: %clang -cc1 %s -emit-obj -O3 -debug-info-kind=limited -fdynamic-debugging -o - -triple x86_64-unknown-unknown | llvm-nm - | FileCheck %s -// CHECK: t a -// CHECK: T a.dyndbg.[[hash:[A-F0-9]+]] -// CHECK: T b -// CHECK: U c -// CHECK: t d -// CHECK: T d.dyndbg.[[hash]] -// CHECK: B g - -int g; -int c(); - -__attribute__((always_inline)) -static inline int d() { return c(); } - -__attribute__((always_inline)) -static int a() { return g; } - -int b() { return a() + d() ;} diff --git a/clang/test/DebugInfo/DynamicDebugging/EndToEnd/X86/lit.local.cfg b/clang/test/DebugInfo/DynamicDebugging/EndToEnd/X86/lit.local.cfg deleted file mode 100644 index bf8bd32700a9d..0000000000000 --- a/clang/test/DebugInfo/DynamicDebugging/EndToEnd/X86/lit.local.cfg +++ /dev/null @@ -1,4 +0,0 @@ -# These tests require x86 in order to inspect the inner object. -# FIXME: These tests are quite broad. -if "x86-registered-target" not in config.available_features: - config.unsupported = True diff --git a/clang/test/DebugInfo/DynamicDebugging/EndToEnd/X86/obj-emission-target/lit.local.cfg b/clang/test/DebugInfo/DynamicDebugging/EndToEnd/X86/obj-emission-target/lit.local.cfg deleted file mode 100644 index d36760917851d..0000000000000 --- a/clang/test/DebugInfo/DynamicDebugging/EndToEnd/X86/obj-emission-target/lit.local.cfg +++ /dev/null @@ -1,3 +0,0 @@ -# This test wants X86 support without aarch64 support. -if "x86-registered-target" not in config.available_features or "aarch64-registered-target" in config.available_features: - config.unsupported = True diff --git a/clang/test/DebugInfo/DynamicDebugging/EndToEnd/X86/obj-emission-target/no-target.c b/clang/test/DebugInfo/DynamicDebugging/EndToEnd/X86/obj-emission-target/no-target.c deleted file mode 100644 index b5af3a3b7ac9c..0000000000000 --- a/clang/test/DebugInfo/DynamicDebugging/EndToEnd/X86/obj-emission-target/no-target.c +++ /dev/null @@ -1,14 +0,0 @@ -// Check we get a warning if -fdynamic-debugging is specified for an -// unsupported target. Dynamic debugging currently emits the inner module as -// an object regardless of output flags (e.g. -emit-llvm). - -// RUN: %clang -cc1 %s -emit-llvm -debug-info-kind=limited -fdynamic-debugging -o - -triple aarch64-unknown-unknown 2>&1 | FileCheck %s --check-prefix=WITHOUT_TARGET -// WITHOUT_TARGET: warning: ignoring -fdynamic-debugging: unable to create target: 'No available targets are compatible with triple "aarch64-unknown-unknown"' -// WITHOUT_TARGET-NOT: .debug_llvm_dyndbg - -// Prevent rotten green test by checking we do see .debug_llvm_dyndbg otherwise. -// RUN: %clang -cc1 %s -emit-obj -debug-info-kind=limited -fdynamic-debugging -o - -triple x86_64-unknown-unknown 2>&1 | FileCheck %s --check-prefix=WITH_TARGET -// WITH_TARGET-NOT: ignoring -fdynamic-debugging: -// WITH_TARGET: .debug_llvm_dyndbg - -int g; diff --git a/clang/test/DebugInfo/DynamicDebugging/EndToEnd/X86/section.c b/clang/test/DebugInfo/DynamicDebugging/EndToEnd/X86/section.c deleted file mode 100644 index 10e1a6ef05da9..0000000000000 --... [truncated] `````````` </details> https://github.com/llvm/llvm-project/pull/216298 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
