From ac156e917633afc778914af2a5e605678767fdba Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Thu, 1 Sep 2005 15:53:45 +0200 Subject: [PATCH] re PR debug/7241 (DWARF encoding for "char" incorrect in gcc) PR debug/7241 * dwarf2out.c (base_type_die): Compare char_type_node with TYPE_MAIN_VARIANT (type), not type. * gcc.dg/debug/dwarf2/dwarf-char1.c: New test. * gcc.dg/debug/dwarf2/dwarf-char2.c: New test. * gcc.dg/debug/dwarf2/dwarf-char3.c: New test. * gcc.dg/debug/dwarf2/dwarf-die1.c: Fix a typo. * gcc.dg/debug/dwarf2/dwarf-die2.c: Likewise. * gcc.dg/debug/dwarf2/dwarf-die3.c: Likewise. * gcc.dg/debug/dwarf2/dwarf-die5.c: Likewise. * gcc.dg/debug/dwarf2/dwarf-die6.c: Likewise. * gcc.dg/debug/dwarf2/dwarf-die7.c: Likewise. * gcc.dg/debug/dwarf2/dwarf-uninit.c: Likewise. * gcc.dg/debug/dwarf2/dwarf2-macro.c: Likewise. From-SVN: r103727 --- gcc/ChangeLog | 6 ++++++ gcc/dwarf2out.c | 2 +- gcc/testsuite/ChangeLog | 16 ++++++++++++++++ gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char1.c | 12 ++++++++++++ gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char2.c | 12 ++++++++++++ gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char3.c | 7 +++++++ gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die1.c | 2 +- gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die2.c | 2 +- gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die3.c | 2 +- gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die5.c | 2 +- gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die6.c | 2 +- gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die7.c | 2 +- gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-uninit.c | 2 +- gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-macro.c | 2 +- 14 files changed, 62 insertions(+), 9 deletions(-) create mode 100644 gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char1.c create mode 100644 gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char2.c create mode 100644 gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char3.c diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 62686b0d5e2..65e2a67b01e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2005-09-01 Jakub Jelinek + + PR debug/7241 + * dwarf2out.c (base_type_die): Compare char_type_node with + TYPE_MAIN_VARIANT (type), not type. + 2005-09-01 Richard Guenther PR tree-optimization/15366 diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c index 2dc03f4d0e6..a0277b2fd3c 100644 --- a/gcc/dwarf2out.c +++ b/gcc/dwarf2out.c @@ -8014,7 +8014,7 @@ base_type_die (tree type) that contain spaces; other names might occur by coincidence in other languages. */ if (! (TYPE_PRECISION (type) == CHAR_TYPE_SIZE - && (type == char_type_node + && (TYPE_MAIN_VARIANT (type) == char_type_node || ! strcmp (type_name, "signed char") || ! strcmp (type_name, "unsigned char")))) { diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 515ea5a026a..26c40aa5ad4 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,19 @@ +2005-09-01 Jakub Jelinek + + PR debug/7241 + * gcc.dg/debug/dwarf2/dwarf-char1.c: New test. + * gcc.dg/debug/dwarf2/dwarf-char2.c: New test. + * gcc.dg/debug/dwarf2/dwarf-char3.c: New test. + + * gcc.dg/debug/dwarf2/dwarf-die1.c: Fix a typo. + * gcc.dg/debug/dwarf2/dwarf-die2.c: Likewise. + * gcc.dg/debug/dwarf2/dwarf-die3.c: Likewise. + * gcc.dg/debug/dwarf2/dwarf-die5.c: Likewise. + * gcc.dg/debug/dwarf2/dwarf-die6.c: Likewise. + * gcc.dg/debug/dwarf2/dwarf-die7.c: Likewise. + * gcc.dg/debug/dwarf2/dwarf-uninit.c: Likewise. + * gcc.dg/debug/dwarf2/dwarf2-macro.c: Likewise. + 2005-08-31 Andrew Pinski PR objc/23306 diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char1.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char1.c new file mode 100644 index 00000000000..53ed91ad4d9 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char1.c @@ -0,0 +1,12 @@ +/* PR debug/7241 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -gdwarf-2 -dA" } */ +/* { dg-final { scan-assembler "0x\[68\]\[ \t\]# DW_AT_encoding" } } */ +/* { dg-final { scan-assembler-not "0x\[57\]\[ \t\]# DW_AT_encoding" } } */ + +char a; +const char b; +signed char c; +volatile signed char d; +unsigned char e; +volatile const unsigned char f; diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char2.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char2.c new file mode 100644 index 00000000000..dd3bf93de52 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char2.c @@ -0,0 +1,12 @@ +/* PR debug/7241 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -gdwarf-2 -dA" } */ +/* { dg-final { scan-assembler "0x\[68\]\[ \t\]# DW_AT_encoding" } } */ +/* { dg-final { scan-assembler-not "0x\[57\]\[ \t\]# DW_AT_encoding" } } */ + +const char a; +char b; +volatile signed char c; +signed char d; +const volatile unsigned char e; +unsigned char f; diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char3.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char3.c new file mode 100644 index 00000000000..d9e589a5627 --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char3.c @@ -0,0 +1,7 @@ +/* PR debug/7241 */ +/* { dg-do compile } */ +/* { dg-options "-O2 -gdwarf-2 -dA" } */ +/* { dg-final { scan-assembler "0x\[68\]\[ \t\]# DW_AT_encoding" } } */ +/* { dg-final { scan-assembler-not "0x\[57\]\[ \t\]# DW_AT_encoding" } } */ + +const char *p = "abc"; diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die1.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die1.c index 39f0bf2792a..fdfbf83215e 100644 --- a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die1.c +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die1.c @@ -1,5 +1,5 @@ /* Verify that inline function never actually inlined has no abstract DIE. */ -/* { dg-do compile */ +/* { dg-do compile } */ /* { dg-options "-O2 -gdwarf-2 -dA" } */ /* { dg-final { scan-assembler-not "DW_AT_inline" } } */ inline int t() diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die2.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die2.c index 48bce243d41..ac897ab78c1 100644 --- a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die2.c +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die2.c @@ -1,5 +1,5 @@ /* Verify that inline function never actually emit has no DIE. */ -/* { dg-do compile */ +/* { dg-do compile } */ /* { dg-options "-O0 -gdwarf-2 -dA" } */ /* { dg-final { scan-assembler-not "CIE Version" } } */ static inline int t() diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die3.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die3.c index 34fddfaffc0..04b2f36c3b3 100644 --- a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die3.c +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die3.c @@ -1,5 +1,5 @@ /* Verify that extern inline function never actually inlined has no abstract DIE. */ -/* { dg-do compile */ +/* { dg-do compile } */ /* { dg-options "-O0 -gdwarf-2 -dA" } */ /* { dg-final { scan-assembler-not "DW_AT_inline" } } */ extern inline int t() diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die5.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die5.c index b3a245d2b11..3fefd41ef94 100644 --- a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die5.c +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die5.c @@ -1,5 +1,5 @@ /* Inlined inline function must have abstract DIE */ -/* { dg-do compile */ +/* { dg-do compile } */ /* { dg-options "-O2 -gdwarf-2 -dA -fpreprocessed" } */ /* { dg-final { scan-assembler "3.*DW_AT_inline" } } */ #1 "test.h" diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die6.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die6.c index 40cdc8dee37..d8f477f54e8 100644 --- a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die6.c +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die6.c @@ -1,5 +1,5 @@ /* not inline inline function must not have abstract DIE */ -/* { dg-do compile */ +/* { dg-do compile } */ /* { dg-options "-O2 -fno-inline -gdwarf-2 -dA -fpreprocessed" } */ /* { dg-final { scan-assembler-not "DW_AT_inline" } } */ #1 "test.h" diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die7.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die7.c index d8d013af38c..b747076bac6 100644 --- a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die7.c +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-die7.c @@ -1,5 +1,5 @@ /* Inlined non-inline function must have abstract DIE */ -/* { dg-do compile */ +/* { dg-do compile } */ /* { dg-options "-O2 -gdwarf-2 -dA -fpreprocessed" } */ /* { dg-final { scan-assembler "1.*DW_AT_inline" } } */ #1 "test.h" diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-uninit.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-uninit.c index f0237cc823c..7bcebe355e5 100644 --- a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-uninit.c +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-uninit.c @@ -1,4 +1,4 @@ -/* { dg-do compile */ +/* { dg-do compile } */ /* { dg-options "-O2 -gdwarf-2 -dA" } */ /* { dg-final { scan-assembler "DW_TAG_variable" } } */ /* PR debug/21828 */ diff --git a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-macro.c b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-macro.c index 45e93737283..4efb25e8c22 100644 --- a/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-macro.c +++ b/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2-macro.c @@ -1,5 +1,5 @@ /* Test to make sure the mcaro info includes a start file command for the main source */ -/* { dg-do compile */ +/* { dg-do compile } */ /* { dg-options "-g3 -gdwarf-2 -dA -fverbose-asm" } */ /* { dg-final { scan-assembler "Start new file" } } */ -- 2.30.2