From cfbe7fcefe38f201d1a1439e161ca5d892b975e4 Mon Sep 17 00:00:00 2001 From: Sourabh Singh Tomar Date: Fri, 12 Mar 2021 11:30:57 +0530 Subject: [PATCH] [DebugInfo] -gpubnames option support in Driver This option controls the production of .debug_names section (in DWARFv5) and .debug_pubnames section (in DWARFv4). Flang side support is provided in flang-compiler/flang#934 --- clang/lib/Driver/ToolChains/ClassicFlang.cpp | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/clang/lib/Driver/ToolChains/ClassicFlang.cpp b/clang/lib/Driver/ToolChains/ClassicFlang.cpp index 1d482edbbfbc..e775709cbd2a 100644 --- a/clang/lib/Driver/ToolChains/ClassicFlang.cpp +++ b/clang/lib/Driver/ToolChains/ClassicFlang.cpp @@ -329,16 +329,16 @@ void ClassicFlang::ConstructJob(Compilation &C, const JobAction &JA, // Last argument of -g/-gdwarfX should be taken. Arg *GArg = Args.getLastArg(options::OPT_g_Flag); - Arg *GDwarfArg = Args.getLastArg(options::OPT_gdwarf_2, - options::OPT_gdwarf_3, - options::OPT_gdwarf_4, - options::OPT_gdwarf_5); + Arg *GDwarfArg = Args.getLastArg(options::OPT_gdwarf_2, options::OPT_gdwarf_3, + options::OPT_gdwarf_4, options::OPT_gdwarf_5, + options::OPT_gpubnames); if (GArg || GDwarfArg) { - for (auto Arg : Args.filtered(options::OPT_g_Flag, options::OPT_gdwarf_2, - options::OPT_gdwarf_3, options::OPT_gdwarf_4, - options::OPT_gdwarf_5)) { + for (auto Arg : + Args.filtered(options::OPT_g_Flag, options::OPT_gdwarf_2, + options::OPT_gdwarf_3, options::OPT_gdwarf_4, + options::OPT_gdwarf_5, options::OPT_gpubnames)) { Arg->claim(); } @@ -355,6 +355,9 @@ void ClassicFlang::ConstructJob(Compilation &C, const JobAction &JA, CommonCmdArgs.push_back("0x1000000"); else if (GDwarfArg->getOption().matches(options::OPT_gdwarf_5)) // -gdwarf-5 CommonCmdArgs.push_back("0x2000000"); + else if (GDwarfArg->getOption().matches( + options::OPT_gpubnames)) // -gpubnames + CommonCmdArgs.push_back("0x40000000"); } // -Mipa has no effect