August 01, 2019
https://issues.dlang.org/show_bug.cgi?id=20096

          Issue ID: 20096
           Summary: error message 'cannot goto into try block' is followed
                    by seg fault
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody@puremagic.com
          Reporter: bugzilla@digitalmars.com

Code:

  void test()
  {
    int x;

    try {
      L2:
        goto L1;

        try
        {
          L1:
            ++x;
            goto L2;
        }
        finally
        {
            ++x;
        }
    } finally {}
  }

Compiling gives:

  test.d(12): Error: cannot goto into try block

  object.Error@(0): Access Violation
  ----------------
  0x00541490 in insertFinallyBlockCalls at C:\cbx\mars\.\s2ir.d(1669)
  0x0054168E in insertFinallyBlockGotos at C:\cbx\mars\.\s2ir.d(1762)
  0x00534ED2 in FuncDeclaration_toObjFile at C:\cbx\mars\.\glue.d(1182)
  0x00541F09 in toObjFile at C:\cbx\mars\.\toobj.d(312)
  0x004B3449 in FuncDeclaration at C:\cbx\mars\.\func.d(2403)
  0x00541E96 in toObjFile at C:\cbx\mars\.\toobj.d(1016)
  0x0053282B in genObjFile at C:\cbx\mars\.\glue.d(409)

--