121ca1fdb25c2bb98721e569aacd10e8b684dd51aChris Lattner// RUN: %clang %s -O0 -emit-llvm -S -o - | FileCheck %s 2c581e6eb7fe65ec845a10e1fee8e734d058e4edeChris Lattner 321ca1fdb25c2bb98721e569aacd10e8b684dd51aChris Lattner// This should call rb_define_global_function, not rb_f_chop. 4c581e6eb7fe65ec845a10e1fee8e734d058e4edeChris Lattnervoid rb_define_global_function (const char*,void(*)(),int); 5c581e6eb7fe65ec845a10e1fee8e734d058e4edeChris Lattnerstatic void rb_f_chop(); 6c581e6eb7fe65ec845a10e1fee8e734d058e4edeChris Lattnervoid Init_String() { 7c581e6eb7fe65ec845a10e1fee8e734d058e4edeChris Lattner rb_define_global_function("chop", rb_f_chop, 0); 8c581e6eb7fe65ec845a10e1fee8e734d058e4edeChris Lattner} 9c581e6eb7fe65ec845a10e1fee8e734d058e4edeChris Lattnerstatic void rb_f_chop() { 10c581e6eb7fe65ec845a10e1fee8e734d058e4edeChris Lattner} 11c581e6eb7fe65ec845a10e1fee8e734d058e4edeChris Lattner 1221ca1fdb25c2bb98721e569aacd10e8b684dd51aChris Lattner// CHECK: call{{.*}}rb_define_global_function 1321ca1fdb25c2bb98721e569aacd10e8b684dd51aChris Lattner 1421ca1fdb25c2bb98721e569aacd10e8b684dd51aChris Lattner// PR10335 1521ca1fdb25c2bb98721e569aacd10e8b684dd51aChris Lattnertypedef void (* JSErrorCallback)(void); 1621ca1fdb25c2bb98721e569aacd10e8b684dd51aChris Lattnervoid js_GetErrorMessage(void); 1721ca1fdb25c2bb98721e569aacd10e8b684dd51aChris Lattnervoid JS_ReportErrorNumber(JSErrorCallback errorCallback, ...); 1821ca1fdb25c2bb98721e569aacd10e8b684dd51aChris Lattnervoid Interpret() { 1921ca1fdb25c2bb98721e569aacd10e8b684dd51aChris Lattner JS_ReportErrorNumber(js_GetErrorMessage, 0); 2021ca1fdb25c2bb98721e569aacd10e8b684dd51aChris Lattner 2121ca1fdb25c2bb98721e569aacd10e8b684dd51aChris Lattner // CHECK: call void ({{.*}}, ...)* @JS_ReportErrorNumber({{.*}}@js_GetErrorMessage 2221ca1fdb25c2bb98721e569aacd10e8b684dd51aChris Lattner} 2321ca1fdb25c2bb98721e569aacd10e8b684dd51aChris Lattner 246af13f3a3538d6c075a6282a7f393c26ee1563c7Chris Lattner 256af13f3a3538d6c075a6282a7f393c26ee1563c7Chris Lattner 266af13f3a3538d6c075a6282a7f393c26ee1563c7Chris Lattner 276af13f3a3538d6c075a6282a7f393c26ee1563c7Chris Lattner// PR10337 286af13f3a3538d6c075a6282a7f393c26ee1563c7Chris Lattnerstruct sigaction { int (*_sa_handler)(int); }; 296af13f3a3538d6c075a6282a7f393c26ee1563c7Chris Lattnertypedef int SigHandler (); 306af13f3a3538d6c075a6282a7f393c26ee1563c7Chris Lattnertypedef struct sigaction sighandler_cxt; 316af13f3a3538d6c075a6282a7f393c26ee1563c7Chris LattnerSigHandler *rl_set_sighandler(ohandler) 326af13f3a3538d6c075a6282a7f393c26ee1563c7Chris Lattnersighandler_cxt *ohandler; { 336af13f3a3538d6c075a6282a7f393c26ee1563c7Chris Lattner return 0; 346af13f3a3538d6c075a6282a7f393c26ee1563c7Chris Lattner} 356af13f3a3538d6c075a6282a7f393c26ee1563c7Chris Lattner 366af13f3a3538d6c075a6282a7f393c26ee1563c7Chris Lattnervoid rl_set_signals() { 376af13f3a3538d6c075a6282a7f393c26ee1563c7Chris Lattner SigHandler *oh; 386af13f3a3538d6c075a6282a7f393c26ee1563c7Chris Lattner oh = rl_set_sighandler(0); 396af13f3a3538d6c075a6282a7f393c26ee1563c7Chris Lattner} 40