From 783b008c606ae86ca76a703e3e3491bdc956be6a Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Mon, 8 Feb 2010 16:49:30 +0100 Subject: [PATCH] re PR tree-optimization/42890 (Crash in type_like_member_ptr_p in ipa-prop.c:382) PR tree-optimization/42890 * g++.dg/torture/pr42890.C: New test. From-SVN: r156604 --- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/torture/pr42890.C | 25 +++++++++++++++++++++++++ 2 files changed, 30 insertions(+) create mode 100644 gcc/testsuite/g++.dg/torture/pr42890.C diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index ced96b7f01b..040b2a26018 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2010-02-08 Jakub Jelinek + + PR tree-optimization/42890 + * g++.dg/torture/pr42890.C: New test. + 2010-02-08 Richard Guenther PR middle-end/42995 diff --git a/gcc/testsuite/g++.dg/torture/pr42890.C b/gcc/testsuite/g++.dg/torture/pr42890.C new file mode 100644 index 00000000000..937367665dc --- /dev/null +++ b/gcc/testsuite/g++.dg/torture/pr42890.C @@ -0,0 +1,25 @@ +// PR tree-optimization/42890 +// { dg-do compile } + +extern "C" int puts (const char *) throw (); + +struct S +{ + const char *a; + const char **b; + S (const char *s) { a = s; b = &a; } + ~S () { puts (a); } +}; + +void +foo (int (*fn) (const char *)) +{ + S a ("foo"); + fn ("bar"); +} + +int +main () +{ + foo (puts); +} -- 2.30.2