xref: /aosp_15_r20/external/clang/test/CodeGen/unreachable.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -emit-llvm -o - %s | FileCheck %s
2*67e74705SXin Li // CHECK-NOT: @unreachable
3*67e74705SXin Li 
4*67e74705SXin Li extern void abort() __attribute__((noreturn));
5*67e74705SXin Li extern int unreachable();
6*67e74705SXin Li 
f0()7*67e74705SXin Li int f0() {
8*67e74705SXin Li   return 0;
9*67e74705SXin Li   unreachable();
10*67e74705SXin Li }
11*67e74705SXin Li 
f1(int i)12*67e74705SXin Li int f1(int i) {
13*67e74705SXin Li   goto L0;
14*67e74705SXin Li   int a = unreachable();
15*67e74705SXin Li  L0:
16*67e74705SXin Li   return 0;
17*67e74705SXin Li }
18*67e74705SXin Li 
f2(int i)19*67e74705SXin Li int f2(int i) {
20*67e74705SXin Li   goto L0;
21*67e74705SXin Li   unreachable();
22*67e74705SXin Li   int a;
23*67e74705SXin Li   unreachable();
24*67e74705SXin Li  L0:
25*67e74705SXin Li   a = i + 1;
26*67e74705SXin Li   return a;
27*67e74705SXin Li }
28*67e74705SXin Li 
f3(int i)29*67e74705SXin Li int f3(int i) {
30*67e74705SXin Li   if (i) {
31*67e74705SXin Li     return 0;
32*67e74705SXin Li   } else {
33*67e74705SXin Li     abort();
34*67e74705SXin Li   }
35*67e74705SXin Li   unreachable();
36*67e74705SXin Li   return 3;
37*67e74705SXin Li }
38