📄 kext11.c
字号:
/* APPLE LOCAL file ptmf casts --bowdidge *//* In gcc-4.0 and beyond, kexts are not permitted to cast pointer-to-member- functions into pointer-to-functions. These casts should be flagged as a hard error if -fapple-kext is an option for the compile. -fpermissive shouldn't permit this, either. This checks for OSMemberFunctionCast in the error message because the error advises developers to use that function to replace these casts. Radar 4025923, gcc-4.0 should ban kexts from doing ptmf to ptf conversions without OSMemberFunctionCast*//* { dg-do compile { target powerpc*-apple-darwin* } } *//* { dg-options "-S -static -fapple-kext -fpermissive -fno-exceptions" } */typedef int(*INT_FUNC_INT)(int);class Superclass {public: /* In 3.3, this would get the foo function for the class of "this". In 4.0, it gets the foo function for Superclass. */ virtual int init(void) {_myFunc = (INT_FUNC_INT)&Superclass::foo;}; /* { dg-error "OSMemberFunctionCast" } */ INT_FUNC_INT _myFunc; virtual int foo(int i) { return 2;};};class Subclass : public Superclass { public: virtual int foo(int) { return 1;};};main(int argc, char **argv) { Superclass sup; Subclass sub; sup.init(); sup.foo(1); sub.init(); sub.foo(1);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -