diff options
author | Mark Mitchell <mark@codesourcery.com> | 2002-07-05 16:40:01 +0000 |
---|---|---|
committer | Mark Mitchell <mmitchel@gcc.gnu.org> | 2002-07-05 16:40:01 +0000 |
commit | 9833f6792a3fc80658167415883160d47ddd68b4 (patch) | |
tree | d2f8efa5fa2c3a5ebae7ee24ce51a1b2fad27932 /gcc/dwarfout.c | |
parent | 7dc17098a2c31f04a702967845220d5b1e4a2336 (diff) | |
download | gcc-9833f6792a3fc80658167415883160d47ddd68b4.zip gcc-9833f6792a3fc80658167415883160d47ddd68b4.tar.gz gcc-9833f6792a3fc80658167415883160d47ddd68b4.tar.bz2 |
re PR c++/6706 (ICE with variable-sized arrays and DWARF-1 output)
PR c++/6706
* dwarfout.c (output_reg_number): Fix warning message.
(output_bound_representation): Check SAVE_EXPR_RTL is not NULL
before using it.
PR c++/6706
* g++.dg/debug/debug6.C: New test.
* g++.dg/debug/debug7.C: New test.
From-SVN: r55264
Diffstat (limited to 'gcc/dwarfout.c')
-rw-r--r-- | gcc/dwarfout.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/dwarfout.c b/gcc/dwarfout.c index c26a018..d51e65f 100644 --- a/gcc/dwarfout.c +++ b/gcc/dwarfout.c @@ -2077,7 +2077,8 @@ output_reg_number (rtl) if (regno >= DWARF_FRAME_REGISTERS) { - warning_with_decl (dwarf_last_decl, "internal regno botch: regno = %d\n", + warning_with_decl (dwarf_last_decl, + "internal regno botch: `%s' has regno = %d\n", regno); regno = 0; } @@ -2294,7 +2295,8 @@ output_bound_representation (bound, dim_num, u_or_l) || TREE_CODE (bound) == CONVERT_EXPR) bound = TREE_OPERAND (bound, 0); - if (TREE_CODE (bound) == SAVE_EXPR) + if (TREE_CODE (bound) == SAVE_EXPR + && SAVE_EXPR_RTL (bound)) output_loc_descriptor (eliminate_regs (SAVE_EXPR_RTL (bound), 0, NULL_RTX)); } |