1 // RUN: %clang_cc1 -fsyntax-only -verify %s
3 typedef int kern_return_t
;
6 __attribute__((mig_server_routine
)) kern_return_t var
= KERN_SUCCESS
; // expected-warning{{'mig_server_routine' attribute only applies to functions, Objective-C methods, and blocks}}
8 __attribute__((mig_server_routine
)) void foo_void(void); // expected-warning{{'mig_server_routine' attribute only applies to routines that return a kern_return_t}}
9 __attribute__((mig_server_routine
)) int foo_int(void); // expected-warning{{'mig_server_routine' attribute only applies to routines that return a kern_return_t}}
11 __attribute__((mig_server_routine
)) kern_return_t
bar_extern(void); // no-warning
12 __attribute__((mig_server_routine
)) kern_return_t
bar_forward(void); // no-warning
14 __attribute__((mig_server_routine
)) kern_return_t
bar_definition(void) { // no-warning
18 kern_return_t
bar_forward(void) { // no-warning
22 __attribute__((mig_server_routine(123))) kern_return_t
bar_with_argument(void); // expected-error{{'mig_server_routine' attribute takes no arguments}}