From e24e08d4e2c4d8f008bdf0dd7ed91449ba3f7787 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Sun, 25 Mar 2012 13:25:51 +0000 Subject: [PATCH] re PR tree-optimization/51737 (g++ crashes (internal compiler error: Segmentation fault) when compiling quickbook) PR middle-end/51737 * g++.dg/torture/pr51737.C: New testcase From-SVN: r185776 --- gcc/testsuite/g++.dg/torture/pr51737.C | 30 ++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 gcc/testsuite/g++.dg/torture/pr51737.C diff --git a/gcc/testsuite/g++.dg/torture/pr51737.C b/gcc/testsuite/g++.dg/torture/pr51737.C new file mode 100644 index 00000000000..ff77edbf3d3 --- /dev/null +++ b/gcc/testsuite/g++.dg/torture/pr51737.C @@ -0,0 +1,30 @@ +// { dg-do compile } +template class intrusive_ptr { +public: + ~intrusive_ptr() { intrusive_ptr_release( px ); } + T * px; +}; +template struct intrusive_base { + friend void intrusive_ptr_release(T* ptr) { delete ptr; } +}; +struct section_info; +struct file_info : intrusive_base { + intrusive_ptr parent; + intrusive_ptr switched_section; +}; +struct section_info : intrusive_base { + intrusive_ptr parent; +}; +struct id_state { + void * start_file(void); +}; +void * id_state::start_file(void) { + intrusive_ptr parent; +} +struct id_generation_data : intrusive_base { + void child_length() const {} +}; +void generate_id(id_generation_data& generation_data) +{ + generation_data.child_length(); +} -- 2.30.2