2013/7/29 Andreas Schwab <sch...@suse.de>:
> Alexander Ivchenko <aivch...@gmail.com> writes:
>
>> BTW: First the check was "|| context == NULL", then it was removed by
>> r149964 and then came back as "|| context != NULL" by r153768.
>
> Looks like r153734 got it wrong first.  It was supposed to revert
> r149964, but failed.  Then r153742 reverted the revertion, and when
> r153768 reintroduced it it was apparently modeled after r153734 instead
> of the state before r149964.

Sounds like a riddle :)

Anyway, if we assume that r153734 got it wrong and hence it is now
wrong in the mainline, we can pull up the r149964 state with:

       /* If not, it should be either in the global namespace, or directly
         in a local function scope.  */
       gcc_assert (context == global_namespace
-                 || context != NULL
+                 || context == NULL
                  || TREE_CODE (context) == FUNCTION_DECL);


but then we will get ICE with g++.dg/cpp0x/lambda/lambda-defarg3.C,
which would be a problem itself.


--Alexander

Reply via email to