Consensus on goto's into catch blocks
Timon Gehr
timon.gehr at gmx.ch
Thu Jun 13 12:43:49 PDT 2013
On 06/13/2013 08:50 PM, Brad Roberts wrote:
> On 6/13/13 10:35 AM, Iain Buclaw wrote:
>> Can someone remind me again what was last agreed when I brought this up?
>>
>> I seem to recall that this should be disallowed as is practically
>> always a bug, also, and it skips
>> any initialisation of the exception object. (See:
>> http://dlang.org/statement.html - "It is illegal
>> for a GotoStatement to be used to skip initializations.")
>>
>> Current failing test I want to have removed from the test suite.
>>
>> test/runnable/eh.d:
>> void test8()
>> {
>> int a;
>> goto L2; // gdc Error: cannot goto into catch block
>>
>> try {
>> a += 2;
>> }
>> catch (Exception e) {
>> a += 3;
>> L2: ;
>> a += 100;
>> }
>> assert(a == 100);
>> }
>>
>>
>> Thanks
>> Iain.
>
> I think it should be illegal, but not because it's a catch block but
> because of the initialization. If the catch was just "catch
> (Exception)" then it shouldn't be illegal.
+1.
More information about the Digitalmars-d
mailing list