pubtypes.c
来自「用于进行gcc测试」· C语言 代码 · 共 65 行
C
65 行
/* { dg-do compile { target *-*-darwin* } } *//* { dg-options "-O0 -gdwarf-2 -dA -fno-eliminate-unused-debug-types" } *//* { dg-final { scan-assembler "__debug_pubtypes" } } *//* { dg-final { scan-assembler "long+\[ \t\]+0x24+\[ \t\]+\[#;]+\[ \t\]+Length of Public Type Names Info" } } *//* { dg-final { scan-assembler "\"empty\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } *//* { dg-final { scan-assembler "\"A\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } *//* { dg-final { scan-assembler "\"B\\\\0\"+\[ \t\]+\[#;]+\[ \t\]+external name" } } */struct A{ virtual ~A (); int a1;};A::~A(){ a1 = 800;}struct B : public A{ virtual ~B (); int b1; int b2;};B::~B(){ a1 = 900; b1 = 901; b2 = 902;}// Stop the compiler from optimizing away data.void refer (A *){ ;}struct empty {};// Stop the compiler from optimizing away data.void refer (empty *){ ;}int main (void){ A alpha, *aap, *abp; B beta, *bbp; empty e; alpha.a1 = 100; beta.a1 = 200; beta.b1 = 201; beta.b2 = 202; aap = α refer (aap); abp = β refer (abp); bbp = β refer (bbp); refer (&e); return 0; // marker return 0} // marker close brace
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?