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>
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>
......
/* 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 */
......
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.
......
// 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