From e9339a68d32b2cbc6bc67a529cef40a4f2eca022 Mon Sep 17 00:00:00 2001 From: Jason Merrill <jason@redhat.com> Date: Fri, 17 Feb 2012 03:36:53 -0500 Subject: [PATCH] re PR c++/52248 (timevar ICE) PR c++/52248 * decl.c (define_label): Use timevar_cond_start/stop. From-SVN: r184329 --- gcc/cp/ChangeLog | 5 +++++ gcc/cp/decl.c | 4 ++-- gcc/testsuite/ChangeLog | 5 +++++ gcc/testsuite/g++.dg/ext/timevar1.C | 12 ++++++++++++ 4 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/g++.dg/ext/timevar1.C diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index c6bf817c5fd1..faa85939428a 100644 --- a/gcc/cp/ChangeLog +++ b/gcc/cp/ChangeLog @@ -1,3 +1,8 @@ +2012-02-16 Jason Merrill <jason@redhat.com> + + PR c++/52248 + * decl.c (define_label): Use timevar_cond_start/stop. + 2012-02-16 Fabien Chêne <fabien@gcc.gnu.org> PR c++/52126 diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c index 90746a5c9fed..2a6a5160fb6b 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -2947,9 +2947,9 @@ tree define_label (location_t location, tree name) { tree ret; - timevar_start (TV_NAME_LOOKUP); + bool running = timevar_cond_start (TV_NAME_LOOKUP); ret = define_label_1 (location, name); - timevar_stop (TV_NAME_LOOKUP); + timevar_cond_stop (TV_NAME_LOOKUP, running); return ret; } diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index 72f9f745d744..2f5544b17226 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,8 @@ +2012-02-16 Jason Merrill <jason@redhat.com> + + PR c++/52248 + * g++.dg/ext/timevar1.C: New. + 2012-02-16 Fabien Chêne <fabien@gcc.gnu.org> PR c++/52126 diff --git a/gcc/testsuite/g++.dg/ext/timevar1.C b/gcc/testsuite/g++.dg/ext/timevar1.C new file mode 100644 index 000000000000..0d2d3f5f31da --- /dev/null +++ b/gcc/testsuite/g++.dg/ext/timevar1.C @@ -0,0 +1,12 @@ +// PR c++/52248 +// { dg-options "-ftime-report" } +// { dg-prune-output "wall" } +// { dg-prune-output "times" } +// { dg-prune-output "TOTAL" } +// { dg-prune-output "checks" } + +void +foo () +{ + goto lab; // { dg-error "not defined" } +} -- GitLab