[cfe-dev] terminate called without an active exception

Scott Parlane scott at scottnz.com
Fri May 8 21:01:48 PDT 2009


Hi,

Given the following (invalid, type_5 is not defined) code.

// BEGIN
typedef enum { type_1 , type_2 , type_3 , type_4 } types;

_Bool testfunc(types t){
        switch(t)
        {
                case type_1:
                case type_2:
                case type_5:{
                        return true;
                } break;
                default: {
                        return false;
                }
        }
}
// END

clang called as follows
 # clang -c -emit-llvm test.c -o test.bc

results in

> test.c:8:8: error: use of undeclared identifier 'type_5'
>                 case type_5:{
>                      ^
> test.c:9:11: error: use of undeclared identifier 'true'
>                         return true;
>                                ^
> test.c:12:11: error: use of undeclared identifier 'false'
>                         return false;
>                                ^
> pure virtual method called
> terminate called without an active exception
> 0   clang-cc        0x000000000120a0a4
> 1   clang-cc        0x000000000120a585
> 2   libpthread.so.0 0x00007f3f226bda00
> 3   libc.so.6       0x00007f3f217cd1e5 gsignal + 53
> 4   libc.so.6       0x00007f3f217ce703 abort + 387
> 5   libstdc++.so.6  0x00007f3f22051e44 __gnu_cxx::__verbose_terminate_handler() + 276
> 6   libstdc++.so.6  0x00007f3f22050246
> 7   libstdc++.so.6  0x00007f3f22050273
> 8   libstdc++.so.6  0x00007f3f22050b1f
> 9   clang-cc        0x000000000045fc50
> 10  clang-cc        0x0000000000679792
> 11  clang-cc        0x00000000007a61b0
> 12  clang-cc        0x00000000007a4341
> 13  clang-cc        0x00000000007a78b0
> 14  clang-cc        0x00000000007a7e48
> 15  clang-cc        0x0000000000779833
> 16  clang-cc        0x000000000077a379
> 17  clang-cc        0x000000000077a934
> 18  clang-cc        0x000000000077a9e5
> 19  clang-cc        0x00000000005e2fd6
> 20  clang-cc        0x00000000004896cd
> 21  clang-cc        0x000000000048ab28 main + 2154
> 22  libc.so.6       0x00007f3f217b95c6 __libc_start_main + 230
> 23  clang-cc        0x000000000042d269
> Stack dump:
> 0.	Program arguments: /home/scott/software2/bin/../libexec/clang-cc -triple x86_64-unknown-linux-gnu -emit-llvm-bc -disable-free -main-file-name test.c --relocation-model static --disable-fp-elim --unwind-tables=1 --mcpu=x86-64 --fmath-errno=1 -fdiagnostics-show-option -o test.bc -x c test.c 
> 1.	test.c:15:1: current parser token '}'
> 2.	test.c:3:24: parsing function body 'testfunc'
> 3.	test.c:3:24: in compound statement ('{}')

Regards,

Scott




More information about the cfe-dev mailing list