From 0b87dda7f297f6ebd65eef8828710c05a1dd9543 Mon Sep 17 00:00:00 2001 From: jakub Date: Thu, 19 May 2011 13:13:57 +0000 Subject: [PATCH] PR c++/49043 * decl.c (check_omp_return): Stop searching on sk_function_parms. * testsuite/libgomp.c++/pr49043.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@173908 138bc75d-0d04-0410-961f-82ee72b054a4 index 74bae0b..81d5db3 100644 --- a/gcc/cp/decl.c +++ b/gcc/cp/decl.c @@ -2807,6 +2807,8 @@ check_omp_return (void) error ("invalid exit from OpenMP structured block"); return false; } + else if (b->kind == sk_function_parms) + break; return true; } new file mode 100644 index 0000000..604cfc3 --- /dev/null +++ b/libgomp/testsuite/libgomp.c++/pr49043.C @@ -0,0 +1,19 @@ +// PR c++/49043 +// { dg-options "-std=c++0x" } +// { dg-do run } + +extern "C" void abort (); + +int +main () +{ + int r = 0; + #pragma omp parallel for reduction (+:r) + for (int a = 0; a < 10; ++a) + { + auto func = [=] () { return a; }; + r += func (); + } + if (r != 45) + abort (); +} -- 1.7.0.4