summaryrefslogtreecommitdiff
path: root/clang/test/CodeGen/call.c
blob: ef327751b3ad034dc07f768bbfd5d986a89cb90d (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// RUN: %clang %s -O0 -emit-llvm -S -o - | FileCheck %s

// This should call rb_define_global_function, not rb_f_chop.
void rb_define_global_function (const char*,void(*)(),int);
static void rb_f_chop();
void Init_String() {
  rb_define_global_function("chop", rb_f_chop, 0);
}
static void rb_f_chop() {
}

// CHECK: call{{.*}}rb_define_global_function

// PR10335
typedef   void (* JSErrorCallback)(void);
void js_GetErrorMessage(void);
void JS_ReportErrorNumber(JSErrorCallback errorCallback, ...);
void Interpret() {
  JS_ReportErrorNumber(js_GetErrorMessage, 0);
  
  // CHECK: call void ({{.*}}, ...)* @JS_ReportErrorNumber({{.*}}@js_GetErrorMessage
}




// PR10337
struct sigaction { int (*_sa_handler)(int); };
typedef int SigHandler ();
typedef struct sigaction sighandler_cxt;
SigHandler *rl_set_sighandler(ohandler)
sighandler_cxt *ohandler;  {
  return 0;
}

void rl_set_signals() {
  SigHandler *oh;
  oh = rl_set_sighandler(0);
}