54 lines · 1.5 KB · C
RawDownload
 #define GOT(f) \    __attribute__((weak)) void f(void); \    printf("%d %s\n", !!f, #f); int printf(const char*, ...); void check_exports(){    // 0    GOT(inline_inline_2decl_only)    GOT(inline_inline_undeclared)    GOT(inline_inline_predeclared)    GOT(inline_inline_postdeclared)    GOT(inline_inline_prepostdeclared)    GOT(inline_inline_undeclared2)    GOT(inline_inline_predeclared2)    GOT(inline_inline_postdeclared2)    GOT(inline_inline_prepostdeclared2)     // 1    GOT(extern_extern_postdeclared)    GOT(extern_extern_postdeclared2)    GOT(extern_extern_predeclared)    GOT(extern_extern_predeclared2)    GOT(extern_extern_prepostdeclared)    GOT(extern_extern_prepostdeclared2)    GOT(extern_extern_undeclared)    GOT(extern_extern_undeclared2)    GOT(extern_postdeclared)    GOT(extern_postdeclared2)    GOT(extern_predeclared)    GOT(extern_predeclared2)    GOT(extern_prepostdeclared)    GOT(extern_undeclared)    GOT(extern_undeclared2)    GOT(inst2_extern_inline_postdeclared)    GOT(inst2_extern_inline_predeclared)    GOT(inst3_extern_inline_predeclared)    GOT(inst_extern_inline_postdeclared)    GOT(inst_extern_inline_predeclared)    GOT(main)    GOT(noinst_extern_inline_func)    GOT(noinst_extern_inline_postdeclared)    GOT(noinst_extern_inline_postdeclared2)    GOT(noinst_extern_inline_undeclared)     // 0    GOT(noinst_static_inline_postdeclared)    GOT(noinst2_static_inline_postdeclared)    GOT(noinst_static_inline_predeclared)    GOT(noinst2_static_inline_predeclared)    GOT(static_func)}