From: Eric Christopher Date: Mon, 28 Dec 2015 19:58:44 +0000 (+0000) Subject: We check for dwarf 5 in the backend, so go ahead and pass it along via X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ef1c7e3faf0dbe3fc079c3b48dfd5c934bb348a7;p=clang We check for dwarf 5 in the backend, so go ahead and pass it along via the front end as well. Note that DWARF5 isn't finalized and any feature support is subject to change and accepting of the option doesn't mean we're supporting the full range of the current standard. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@256516 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td index 337a16702d..3dbe43f107 100644 --- a/include/clang/Driver/Options.td +++ b/include/clang/Driver/Options.td @@ -1164,6 +1164,8 @@ def gdwarf_3 : Flag<["-"], "gdwarf-3">, Group, HelpText<"Generate source-level debug information with dwarf version 3">; def gdwarf_4 : Flag<["-"], "gdwarf-4">, Group, HelpText<"Generate source-level debug information with dwarf version 4">; +def gdwarf_5 : Flag<["-"], "gdwarf-5">, Group, + HelpText<"Generate source-level debug information with dwarf version 5">; def gcodeview : Flag<["-"], "gcodeview">, HelpText<"Generate CodeView debug information">, Flags<[CC1Option, CC1AsOption, CoreOption]>; diff --git a/lib/Driver/Tools.cpp b/lib/Driver/Tools.cpp index d28825152e..5835cdba1d 100644 --- a/lib/Driver/Tools.cpp +++ b/lib/Driver/Tools.cpp @@ -2505,6 +2505,7 @@ static unsigned DwarfVersionNum(StringRef ArgValue) { .Case("-gdwarf-2", 2) .Case("-gdwarf-3", 3) .Case("-gdwarf-4", 4) + .Case("-gdwarf-5", 5) .Default(0); } @@ -4098,7 +4099,7 @@ void Clang::ConstructJob(Compilation &C, const JobAction &JA, // If a -gdwarf argument appeared, remember it. if (Arg *A = Args.getLastArg(options::OPT_gdwarf_2, options::OPT_gdwarf_3, - options::OPT_gdwarf_4)) + options::OPT_gdwarf_4, options::OPT_gdwarf_5)) DwarfVersion = DwarfVersionNum(A->getSpelling()); // Forward -gcodeview. diff --git a/test/CodeGen/dwarf-version.c b/test/CodeGen/dwarf-version.c index eadce21515..2171ed6ad9 100644 --- a/test/CodeGen/dwarf-version.c +++ b/test/CodeGen/dwarf-version.c @@ -1,6 +1,7 @@ // RUN: %clang -target x86_64-linux-gnu -gdwarf-2 -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER2 // RUN: %clang -target x86_64-linux-gnu -gdwarf-3 -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER3 // RUN: %clang -target x86_64-linux-gnu -gdwarf-4 -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER4 +// RUN: %clang -target x86_64-linux-gnu -gdwarf-5 -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER5 // RUN: %clang -target x86_64-linux-gnu -g -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER4 // RUN: %clang -target x86_64-linux-gnu -gdwarf -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER4 // RUN: %clang -target x86_64-apple-darwin -g -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER2 @@ -18,6 +19,7 @@ int main (void) { // VER2: !{i32 2, !"Dwarf Version", i32 2} // VER3: !{i32 2, !"Dwarf Version", i32 3} // VER4: !{i32 2, !"Dwarf Version", i32 4} +// VER5: !{i32 2, !"Dwarf Version", i32 5} // NODWARF-NOT: !"Dwarf Version" // CODEVIEW: !{i32 2, !"CodeView", i32 1}