xref: /aosp_15_r20/external/clang/test/CodeGen/disable-tail-calls.c (revision 67e74705e28f6214e480b399dd47ea732279e315)
1*67e74705SXin Li // RUN: %clang_cc1 -triple x86_64-apple-macosx10.9.0 -emit-llvm -O1 -mdisable-tail-calls -o - < %s | FileCheck %s
2*67e74705SXin Li 
3*67e74705SXin Li typedef struct List {
4*67e74705SXin Li   struct List *next;
5*67e74705SXin Li   int data;
6*67e74705SXin Li } List;
7*67e74705SXin Li 
8*67e74705SXin Li // CHECK-LABEL: define %struct.List* @find
find(List * head,int data)9*67e74705SXin Li List *find(List *head, int data) {
10*67e74705SXin Li   if (!head)
11*67e74705SXin Li     return 0;
12*67e74705SXin Li   if (head->data == data)
13*67e74705SXin Li     return head;
14*67e74705SXin Li   // CHECK: call %struct.List* @find
15*67e74705SXin Li   return find(head->next, data);
16*67e74705SXin Li }
17