From 6cdd696f3e0d0e0243bf2362a74c691285caadd5 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 10 Jul 2018 22:44:30 +0000 Subject: [PATCH] PR debug/86459 - Fix -gsplit-dwarf -g3 gcc_assert There was a typo in the output_macinfo_op gcc_assert. The function is called dwarf_FORM, not dwarf_form. Add the provided testcase from the bug to test -gsplit-dwarf -g3. gcc/ChangeLog: PR debug/86459 * dwarf2out.c (output_macinfo_op): Fix dwarf_FORM typo in gcc_assert. gcc/testsuite/ChangeLog: PR debug/86459 * gcc.dg/pr86459.c: New test. From-SVN: r262545 --- gcc/ChangeLog | 5 +++++ gcc/dwarf2out.c | 2 +- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/gcc.dg/pr86459.c | 19 +++++++++++++++++++ 4 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.dg/pr86459.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f8717804b2a..a333a523b8e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2018-07-10 Mark Wielaard + + PR debug/86459 + * dwarf2out.c (output_macinfo_op): Fix dwarf_FORM typo in gcc_assert. + 2018-07-10 Richard Biener * hash-map.h (hash_map::iterator::operator*): Return diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 95232177d83..4640a22e14a 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -28066,7 +28066,7 @@ output_macinfo_op (macinfo_entry *ref) node = find_AT_string (ref->info); gcc_assert (node && (node->form == DW_FORM_strp - || node->form == dwarf_form (DW_FORM_strx))); + || node->form == dwarf_FORM (DW_FORM_strx))); dw2_asm_output_data (1, ref->code, ref->code == DW_MACRO_define_strp ? "Define macro strp" diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 8d27cdb3206..fa1b01acadf 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2018-07-10 Mark Wielaard + + PR debug/86459 + * gcc.dg/pr86459.c: New test. + 2018-07-10 Martin Sebor PR testsuite/86461 diff --git a/gcc/testsuite/gcc.dg/pr86459.c b/gcc/testsuite/gcc.dg/pr86459.c new file mode 100644 index 00000000000..7856a372dcc --- /dev/null +++ b/gcc/testsuite/gcc.dg/pr86459.c @@ -0,0 +1,19 @@ +/* { dg-do compile } */ +/* { dg-options "-g -O2 -fno-var-tracking-assignments -gsplit-dwarf -g3" } */ + +/* Same as pr86064.c but compiled with -g3 it showed an issue in + output_macinfo_op because of a typo in an assert. */ + +int a; +__attribute__((__cold__)) void b(); + +void e(int *); +int f(); + +void c() { + int d; + e(&d); + a = d; + if (f()) + b(); +} -- 2.30.2