From: Akim Demaille Date: Thu, 25 Jul 2013 15:45:19 +0000 (+0200) Subject: tests: fix invalid assignment when using variants in C++11 X-Git-Tag: v3.0~3 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=afcc58c63eaf2444396c7089797db056f6db4b22;p=platform%2Fupstream%2Fbison.git tests: fix invalid assignment when using variants in C++11 * tests/c++.at (Exception safety): In variant mode $$ is an instance of Object. Assigning YY_NULL in C++98 is incorrect, but behaves ok, as it assigns YY_NULL=0 using Object::operator= (char v). It is wrong in C++11 as there is operator for "$$ = nullptr". --- diff --git a/tests/c++.at b/tests/c++.at index 103a3f0..96f2ac1 100644 --- a/tests/c++.at +++ b/tests/c++.at @@ -795,11 +795,11 @@ item: // Not just 'E', otherwise we reduce when 'E' is the lookahead, and // then the stack is emptied, defeating the point of the test. | 'E' 'a' { YYUSE($][1); $][$ = $][2; } -| 'R' { $][$ = YY_NULL; ]AT_VARIANT_IF([], [delete $][1]; )[YYERROR; } +| 'R' { ]AT_VARIANT_IF([], [$][$ = YY_NULL; delete $][1]; )[YYERROR; } | 'p' { $][$ = $][1; } | 's' { $][$ = $][1; throw std::runtime_error ("reduction"); } -| 'T' { $][$ = YY_NULL; ]AT_VARIANT_IF([], [delete $][1]; )[YYABORT; } -| error { $][$ = YY_NULL; yyerrok; } +| 'T' { ]AT_VARIANT_IF([], [$][$ = YY_NULL; delete $][1]; )[YYABORT; } +| error { ]AT_VARIANT_IF([], [$][$ = YY_NULL; ])[yyerrok; } ; %%