Issue 116923
Summary Goto out of __finally crashes compiler (Referring to a basic block in another function)
Labels new issue
Assignees
Reporter jaykrell
    ```
int main()
{
    int a = 10;
 __try {
        a = 20;
        *(volatile char*)0;
        a = 30;
    }
    __finally
    {
        // Next line is not needed.
        //a = _abnormal_termination() ? 40 : 50;
        
 goto A;
        
        // Similar will file separately.
 //return a;
    }

A:
    return a;
}

/*
 goto A;
        ^
Referring to a basic block in another function!
 br label %A
in function ?fin$0@0@main@@
fatal error: error in backend: Broken function found, compilation aborted!
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace, preprocessed source, and associated run script.
Stack dump:
    0. Program arguments: ...
    1. <eof> parser at end of file
    2. Code generation
    3. Running pass 'Function Pass Manager' on module '1.c'.
    4. Running pass 'Module Verifier' on function '@"?fin$0@0@main@@"'
    clang-cl: error: clang frontend command failed with exit code 70 (use -v to see invocation)
*/
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to