mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-12-01 07:44:05 +08:00
re PR target/38706 (../../../../src/libstdc++-v3/src/strstream.cc:419: internal compiler error: Segmentation fault)
PR target/38706 * config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call free_after_compilation when outputting a thunk. (alpha_output_mi_thunk_osf): Assert that we are processing a thunk. Do not call free_after_compilation here. testsuite/ChangeLog: PR target/38706 * g++.dg/other/pr38706.C: New test. From-SVN: r143167
This commit is contained in:
parent
ffaf1e05dd
commit
c0f645750c
@ -1,7 +1,14 @@
|
||||
2009-01-07 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR target/38706
|
||||
* config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
|
||||
free_after_compilation when outputting a thunk.
|
||||
(alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
|
||||
Do not call free_after_compilation here.
|
||||
|
||||
2009-01-07 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
* config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
|
||||
(ix86_target_string): Ditto.
|
||||
(ix86_valid_target_attribute_inner_p): Ditto.
|
||||
|
||||
2009-01-07 Jan Sjodin <jan.sjodin@amd.com>
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* Subroutines used for code generation on the DEC Alpha.
|
||||
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
|
||||
2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
|
||||
2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
||||
Free Software Foundation, Inc.
|
||||
Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
|
||||
|
||||
This file is part of GCC.
|
||||
@ -8272,6 +8273,11 @@ alpha_end_function (FILE *file, const char *fnname, tree decl ATTRIBUTE_UNUSED)
|
||||
if (GET_CODE (insn) == CALL_INSN)
|
||||
output_asm_insn (get_insn_template (CODE_FOR_nop, NULL), NULL);
|
||||
|
||||
#if TARGET_ABI_OSF
|
||||
if (crtl->is_thunk)
|
||||
free_after_compilation (cfun);
|
||||
#endif
|
||||
|
||||
#if TARGET_ABI_OPEN_VMS
|
||||
alpha_write_linkage (file, fnname, decl);
|
||||
#endif
|
||||
@ -8311,6 +8317,8 @@ alpha_output_mi_thunk_osf (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
|
||||
HOST_WIDE_INT hi, lo;
|
||||
rtx this_rtx, insn, funexp;
|
||||
|
||||
gcc_assert (crtl->is_thunk);
|
||||
|
||||
/* We always require a valid GP. */
|
||||
emit_insn (gen_prologue_ldgp ());
|
||||
emit_note (NOTE_INSN_PROLOGUE_END);
|
||||
@ -8392,7 +8400,6 @@ alpha_output_mi_thunk_osf (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
|
||||
final_start_function (insn, file, 1);
|
||||
final (insn, file, 1);
|
||||
final_end_function ();
|
||||
free_after_compilation (cfun);
|
||||
}
|
||||
#endif /* TARGET_ABI_OSF */
|
||||
|
||||
|
@ -1,3 +1,8 @@
|
||||
2009-01-07 Uros Bizjak <ubizjak@gmail.com>
|
||||
|
||||
PR target/38706
|
||||
* g++.dg/other/pr38706.C: New test.
|
||||
|
||||
2009-01-07 Jason Merrill <jason@redhat.com>
|
||||
|
||||
* g++.dg/cpp0x/variadic92.C: New test.
|
||||
|
19
gcc/testsuite/g++.dg/other/pr38706.C
Normal file
19
gcc/testsuite/g++.dg/other/pr38706.C
Normal file
@ -0,0 +1,19 @@
|
||||
// PR target/38706
|
||||
// { dg-do compile }
|
||||
// { dg-options "-O2" }
|
||||
|
||||
class ios_base
|
||||
{
|
||||
public:
|
||||
virtual ~ios_base ();
|
||||
|
||||
};
|
||||
|
||||
class istrstream:virtual public ios_base
|
||||
{
|
||||
public:
|
||||
virtual ~istrstream ();
|
||||
|
||||
};
|
||||
|
||||
istrstream::~istrstream () {}
|
Loading…
Reference in New Issue
Block a user