re PR debug/80263 (gcc's internal type "sizetype" leaks out as base type name in the DWARF info)
PR debug/80263 * dwarf2out.c (modified_type_die): Try harder not to emit internal sizetype type into debug info. * gcc.dg/debug/dwarf2/pr80263.c: New test. From-SVN: r246973
This commit is contained in:
parent
1997025337
commit
1cda61fc28
@ -1,3 +1,9 @@
|
||||
2017-04-18 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR debug/80263
|
||||
* dwarf2out.c (modified_type_die): Try harder not to emit internal
|
||||
sizetype type into debug info.
|
||||
|
||||
2017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||||
|
||||
PR target/80099
|
||||
|
@ -12464,20 +12464,29 @@ modified_type_die (tree type, int cv_quals, bool reverse,
|
||||
this type. */
|
||||
qualified_type = get_qualified_type (type, cv_quals);
|
||||
|
||||
if (qualified_type == sizetype
|
||||
&& TYPE_NAME (qualified_type)
|
||||
&& TREE_CODE (TYPE_NAME (qualified_type)) == TYPE_DECL)
|
||||
if (qualified_type == sizetype)
|
||||
{
|
||||
tree t = TREE_TYPE (TYPE_NAME (qualified_type));
|
||||
/* Try not to expose the internal sizetype type's name. */
|
||||
if (TYPE_NAME (qualified_type)
|
||||
&& TREE_CODE (TYPE_NAME (qualified_type)) == TYPE_DECL)
|
||||
{
|
||||
tree t = TREE_TYPE (TYPE_NAME (qualified_type));
|
||||
|
||||
gcc_checking_assert (TREE_CODE (t) == INTEGER_TYPE
|
||||
&& TYPE_PRECISION (t)
|
||||
== TYPE_PRECISION (qualified_type)
|
||||
&& TYPE_UNSIGNED (t)
|
||||
== TYPE_UNSIGNED (qualified_type));
|
||||
qualified_type = t;
|
||||
gcc_checking_assert (TREE_CODE (t) == INTEGER_TYPE
|
||||
&& (TYPE_PRECISION (t)
|
||||
== TYPE_PRECISION (qualified_type))
|
||||
&& (TYPE_UNSIGNED (t)
|
||||
== TYPE_UNSIGNED (qualified_type)));
|
||||
qualified_type = t;
|
||||
}
|
||||
else if (qualified_type == sizetype
|
||||
&& TREE_CODE (sizetype) == TREE_CODE (size_type_node)
|
||||
&& TYPE_PRECISION (sizetype) == TYPE_PRECISION (size_type_node)
|
||||
&& TYPE_UNSIGNED (sizetype) == TYPE_UNSIGNED (size_type_node))
|
||||
qualified_type = size_type_node;
|
||||
}
|
||||
|
||||
|
||||
/* If we do, then we can just use its DIE, if it exists. */
|
||||
if (qualified_type)
|
||||
{
|
||||
|
@ -1,3 +1,8 @@
|
||||
2017-04-18 Jakub Jelinek <jakub@redhat.com>
|
||||
|
||||
PR debug/80263
|
||||
* gcc.dg/debug/dwarf2/pr80263.c: New test.
|
||||
|
||||
2017-04-18 Michael Meissner <meissner@linux.vnet.ibm.com>
|
||||
|
||||
PR target/80099
|
||||
|
7
gcc/testsuite/gcc.dg/debug/dwarf2/pr80263.c
Normal file
7
gcc/testsuite/gcc.dg/debug/dwarf2/pr80263.c
Normal file
@ -0,0 +1,7 @@
|
||||
/* PR debug/80263 */
|
||||
/* { dg-do compile } */
|
||||
/* { dg-options "-g -dA" } */
|
||||
|
||||
char array[1];
|
||||
|
||||
/* { dg-final { scan-assembler-not {\msizetype} } } */
|
Loading…
x
Reference in New Issue
Block a user