Commit ac156e91 by Jakub Jelinek Committed by Jakub Jelinek

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
parent 355866de
2005-09-01 Jakub Jelinek <jakub@redhat.com>
PR debug/7241
* dwarf2out.c (base_type_die): Compare char_type_node with
TYPE_MAIN_VARIANT (type), not type.
2005-09-01 Richard Guenther <rguenther@suse.de>
PR tree-optimization/15366
......
......@@ -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"))))
{
......
2005-09-01 Jakub Jelinek <jakub@redhat.com>
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 <pinskia@physics.uc.edu>
PR objc/23306
/* 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;
/* 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;
/* 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";
/* 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()
......
/* 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()
......
/* 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()
......
/* 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"
......
/* 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"
......
/* 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"
......
/* { dg-do compile */
/* { dg-do compile } */
/* { dg-options "-O2 -gdwarf-2 -dA" } */
/* { dg-final { scan-assembler "DW_TAG_variable" } } */
/* PR debug/21828 */
......
/* 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" } } */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment