Commit 4398467a by Jakub Jelinek Committed by Jakub Jelinek

re PR debug/43290 (ICE in dwarf2out_frame_debug_expr)

	PR debug/43290
	* config/i386/i386.c (ix86_get_drap_rtx): Don't set
	RTX_FRAME_RELATED_P.

	* g++.dg/eh/unwind2.C: New test.

From-SVN: r157313
parent 8302950d
2010-03-09 Jakub Jelinek <jakub@redhat.com>
PR debug/43290
* config/i386/i386.c (ix86_get_drap_rtx): Don't set
RTX_FRAME_RELATED_P.
2010-03-09 Jie Zhang <jie@codesourcery.com>
* config/arm/arm.md (thumb_mulsi3_v6): Remove trailing
......
......@@ -8319,7 +8319,7 @@ ix86_get_drap_rtx (void)
unsigned int regno = find_drap_reg ();
rtx drap_vreg;
rtx arg_ptr;
rtx seq, insn;
rtx seq;
arg_ptr = gen_rtx_REG (Pmode, regno);
crtl->drap_reg = arg_ptr;
......@@ -8328,9 +8328,8 @@ ix86_get_drap_rtx (void)
drap_vreg = copy_to_reg (arg_ptr);
seq = get_insns ();
end_sequence ();
insn = emit_insn_before (seq, NEXT_INSN (entry_of_function ()));
RTX_FRAME_RELATED_P (insn) = 1;
emit_insn_before (seq, NEXT_INSN (entry_of_function ()));
return drap_vreg;
}
else
......
2010-03-09 Jakub Jelinek <jakub@redhat.com>
PR debug/43290
* g++.dg/eh/unwind2.C: New test.
2010-03-05 Sebastian Pop <sebastian.pop@amd.com>
Reza Yazdani <reza.yazdani@amd.com>
......
// PR debug/43290
// { dg-do compile }
// { dg-options "-O2" }
// { dg-options "-O3 -mavx -fPIC -mtune=core2" { target { { i?86-*-* x86_64-*-* } && { ilp32 && fpic } } } }
namespace std
{
template <class> struct char_traits;
}
typedef struct { union { char __wchb[4]; }; } mbstate_t;
namespace std
{
template <typename _StateT> struct fpos
{
long long _M_off;
_StateT _M_state;
fpos (long long):_M_off (), _M_state () { }
_StateT state () { return _M_state; }
};
typedef fpos <mbstate_t> streampos;
}
namespace std
{
template <> struct char_traits <char>
{
typedef streampos pos_type;
typedef long long off_type;
typedef mbstate_t state_type;
};
}
struct pthread_mutex_t;
namespace
{
enum _Ios_Openmode { _S_in = 3, _S_out };
enum _Ios_Seekdir { _S_beg };
struct ios_base
{
typedef _Ios_Openmode openmode;
static const openmode in = _S_in;
static const openmode out = _S_out;
typedef _Ios_Seekdir seekdir;
static const seekdir beg = _S_beg;
};
template < typename _CharT, typename > struct basic_streambuf
{
typedef _CharT char_type;
char_type * _M_in_beg;
char_type *eback () { return _M_in_beg; }
char_type *gptr () {}
};
}
namespace std
{
typedef struct pthread_mutex_t __c_lock;
template <typename> class __basic_file;
template <> struct __basic_file <char>
{
__basic_file (__c_lock * = 0);
bool is_open ();
};
template <typename _CharT, typename _Traits> struct basic_filebuf : public basic_streambuf <_CharT, _Traits>
{
typedef _CharT char_type;
typedef _Traits traits_type;
typedef typename traits_type::pos_type pos_type;
typedef typename traits_type::off_type off_type;
typedef __basic_file < char >__file_type;
typedef typename traits_type::state_type __state_type;
__file_type _M_file;
char_type *_M_pback_cur_save;
bool _M_pback_init;
void _M_destroy_pback () throw ()
{
_M_pback_cur_save += this->gptr () != this->eback ();
_M_pback_init = false;
}
bool is_open () throw () { return _M_file.is_open (); }
pos_type seekpos (pos_type, ios_base::openmode = ios_base::in | ios_base::out);
pos_type _M_seek (off_type, ios_base::seekdir, __state_type);
};
template <typename _CharT, typename _Traits>
typename basic_filebuf <_CharT, _Traits>::pos_type
basic_filebuf <_CharT, _Traits>::seekpos (pos_type __pos, ios_base::openmode)
{
pos_type __ret = (off_type ());
if (this->is_open ())
{
_M_destroy_pback ();
__ret = _M_seek (off_type (), ios_base::beg, __pos.state ());
}
return __ret;
}
template class basic_filebuf <char, char_traits <char> >;
}
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