Commit c0f64575 by Uros Bizjak Committed by Uros Bizjak

re PR target/38706 (../../../../src/libstdc++-v3/src/strstream.cc:419: internal…

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
parent ffaf1e05
2009-01-07 Uros Bizjak <ubizjak@gmail.com> 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. * config/i386/i386.c (ix86_target_string): Use ARRAY_SIZE.
(ix86_target_string): Ditto.
(ix86_valid_target_attribute_inner_p): Ditto. (ix86_valid_target_attribute_inner_p): Ditto.
2009-01-07 Jan Sjodin <jan.sjodin@amd.com> 2009-01-07 Jan Sjodin <jan.sjodin@amd.com>
......
/* Subroutines used for code generation on the DEC Alpha. /* Subroutines used for code generation on the DEC Alpha.
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 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) Contributed by Richard Kenner (kenner@vlsi1.ultra.nyu.edu)
This file is part of GCC. This file is part of GCC.
...@@ -8272,6 +8273,11 @@ alpha_end_function (FILE *file, const char *fnname, tree decl ATTRIBUTE_UNUSED) ...@@ -8272,6 +8273,11 @@ alpha_end_function (FILE *file, const char *fnname, tree decl ATTRIBUTE_UNUSED)
if (GET_CODE (insn) == CALL_INSN) if (GET_CODE (insn) == CALL_INSN)
output_asm_insn (get_insn_template (CODE_FOR_nop, NULL), NULL); 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 #if TARGET_ABI_OPEN_VMS
alpha_write_linkage (file, fnname, decl); alpha_write_linkage (file, fnname, decl);
#endif #endif
...@@ -8311,6 +8317,8 @@ alpha_output_mi_thunk_osf (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, ...@@ -8311,6 +8317,8 @@ alpha_output_mi_thunk_osf (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
HOST_WIDE_INT hi, lo; HOST_WIDE_INT hi, lo;
rtx this_rtx, insn, funexp; rtx this_rtx, insn, funexp;
gcc_assert (crtl->is_thunk);
/* We always require a valid GP. */ /* We always require a valid GP. */
emit_insn (gen_prologue_ldgp ()); emit_insn (gen_prologue_ldgp ());
emit_note (NOTE_INSN_PROLOGUE_END); emit_note (NOTE_INSN_PROLOGUE_END);
...@@ -8392,7 +8400,6 @@ alpha_output_mi_thunk_osf (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED, ...@@ -8392,7 +8400,6 @@ alpha_output_mi_thunk_osf (FILE *file, tree thunk_fndecl ATTRIBUTE_UNUSED,
final_start_function (insn, file, 1); final_start_function (insn, file, 1);
final (insn, file, 1); final (insn, file, 1);
final_end_function (); final_end_function ();
free_after_compilation (cfun);
} }
#endif /* TARGET_ABI_OSF */ #endif /* TARGET_ABI_OSF */
......
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> 2009-01-07 Jason Merrill <jason@redhat.com>
* g++.dg/cpp0x/variadic92.C: New test. * g++.dg/cpp0x/variadic92.C: New test.
......
// 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 () {}
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