From: Jakub Jelinek Date: Fri, 30 Aug 2019 11:24:34 +0000 (+0200) Subject: backport: re PR debug/88644 (Unexpected pub type info eliminated after r246973 (cause... X-Git-Tag: releases/gcc-7.5.0~278 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c14f4d769a5482ad206e998c0e7c3d4aaca5781e;p=thirdparty%2Fgcc.git backport: re PR debug/88644 (Unexpected pub type info eliminated after r246973 (causes pubtypes-*.c to regress).) Backported from mainline 2019-01-03 Jakub Jelinek PR debug/88644 * dwarf2out.c (modified_type_die): If type is equal to sizetype, change it to qualified_type. * gcc.dg/debug/dwarf2/pr88644.c: New test. 2019-01-03 Iain Sandoe * gcc.dg/pubtypes-2.c: Adjust expected pubtypes length. * gcc.dg/pubtypes-3.c: Likewise. * gcc.dg/pubtypes-4.c: Likewise. From-SVN: r275083 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 12bac130d614..7c3d589b6260 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,6 +1,12 @@ 2019-08-30 Jakub Jelinek Backported from mainline + 2019-01-03 Jakub Jelinek + + PR debug/88644 + * dwarf2out.c (modified_type_die): If type is equal to sizetype, + change it to qualified_type. + 2018-12-21 Jakub Jelinek PR middle-end/85594 diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 5223e3b2fb43..2069051cd0dc 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -12495,6 +12495,8 @@ modified_type_die (tree type, int cv_quals, bool reverse, && TYPE_PRECISION (sizetype) == TYPE_PRECISION (size_type_node) && TYPE_UNSIGNED (sizetype) == TYPE_UNSIGNED (size_type_node)) qualified_type = size_type_node; + if (type == sizetype) + type = qualified_type; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 41349ce89531..021f53c43f99 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,6 +1,17 @@ 2019-08-30 Jakub Jelinek Backported from mainline + 2019-01-03 Jakub Jelinek + + PR debug/88644 + * gcc.dg/debug/dwarf2/pr88644.c: New test. + + 2019-01-03 Iain Sandoe + + * gcc.dg/pubtypes-2.c: Adjust expected pubtypes length. + * gcc.dg/pubtypes-3.c: Likewise. + * gcc.dg/pubtypes-4.c: Likewise. + 2018-12-21 Jakub Jelinek PR middle-end/85594 diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/pr88644.c b/gcc/testsuite/gcc.dg/debug/dwarf2/pr88644.c new file mode 100644 index 000000000000..1b166277debb --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/pr88644.c @@ -0,0 +1,7 @@ +/* PR debug/88644 */ +/* { dg-do compile } */ +/* { dg-options "-gdwarf-4 -dA -gpubnames" } */ + +char array[1]; + +/* { dg-final { scan-assembler-not {\msizetype} } } */ diff --git a/gcc/testsuite/gcc.dg/pubtypes-2.c b/gcc/testsuite/gcc.dg/pubtypes-2.c index b4ba8712c5ef..6f319ffa0336 100644 --- a/gcc/testsuite/gcc.dg/pubtypes-2.c +++ b/gcc/testsuite/gcc.dg/pubtypes-2.c @@ -2,7 +2,7 @@ /* { dg-options "-O0 -gdwarf-2 -dA" } */ /* { dg-skip-if "Unmatchable assembly" { mmix-*-* } { "*" } { "" } } */ /* { dg-final { scan-assembler "__debug_pubtypes" } } */ -/* { dg-final { scan-assembler "long+\[ \t\]+0x13b+\[ \t\]+\[#;]+\[ \t\]+Pub Info Length" } } */ +/* { dg-final { scan-assembler "long+\[ \t\]+0x12e+\[ \t\]+\[#;]+\[ \t\]+Pub Info Length" } } */ /* { dg-final { scan-assembler "used_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */ /* { dg-final { scan-assembler-not "unused_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */ diff --git a/gcc/testsuite/gcc.dg/pubtypes-3.c b/gcc/testsuite/gcc.dg/pubtypes-3.c index cd495352a9d0..999276756d43 100644 --- a/gcc/testsuite/gcc.dg/pubtypes-3.c +++ b/gcc/testsuite/gcc.dg/pubtypes-3.c @@ -2,7 +2,7 @@ /* { dg-options "-O0 -gdwarf-2 -dA" } */ /* { dg-skip-if "Unmatchable assembly" { mmix-*-* } { "*" } { "" } } */ /* { dg-final { scan-assembler "__debug_pubtypes" } } */ -/* { dg-final { scan-assembler "long+\[ \t\]+0x13b+\[ \t\]+\[#;]+\[ \t\]+Pub Info Length" } } */ +/* { dg-final { scan-assembler "long+\[ \t\]+0x12e+\[ \t\]+\[#;]+\[ \t\]+Pub Info Length" } } */ /* { dg-final { scan-assembler "used_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */ /* { dg-final { scan-assembler-not "unused_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */ /* { dg-final { scan-assembler-not "\"list_name_type\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */ diff --git a/gcc/testsuite/gcc.dg/pubtypes-4.c b/gcc/testsuite/gcc.dg/pubtypes-4.c index 85e2b5be2af5..6941f17d8725 100644 --- a/gcc/testsuite/gcc.dg/pubtypes-4.c +++ b/gcc/testsuite/gcc.dg/pubtypes-4.c @@ -2,7 +2,7 @@ /* { dg-options "-O0 -gdwarf-2 -dA" } */ /* { dg-skip-if "Unmatchable assembly" { mmix-*-* } { "*" } { "" } } */ /* { dg-final { scan-assembler "__debug_pubtypes" } } */ -/* { dg-final { scan-assembler "long+\[ \t\]+0x172+\[ \t\]+\[#;]+\[ \t\]+Pub Info Length" } } */ +/* { dg-final { scan-assembler "long+\[ \t\]+0x165+\[ \t\]+\[#;]+\[ \t\]+Pub Info Length" } } */ /* { dg-final { scan-assembler "used_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */ /* { dg-final { scan-assembler-not "unused_struct\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */ /* { dg-final { scan-assembler "\"list_name_type\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */