* gimple-ssa-store-merging.c (struct store_immediate_info): Add
[official-gcc.git] / gcc / testsuite / g++.dg / pr49718.C
blobb1cc5deb7ac60c2c5e4d19583bf65fb2de68c7f3
1 /* { dg-do compile } */
2 /* { dg-options "-O2 -finstrument-functions" } */
3 /* { dg-additional-options "-mno-explicit-relocs" { target alpha*-*-* } } */
4 /* { dg-additional-options "-mno-relax-pic-calls" { target mips*-*-* } } */
5 /* { dg-final { scan-assembler-times "__cyg_profile_func_enter" 1 { target { ! { hppa*-*-hpux* } } } } } */
6 /* { dg-final { scan-assembler-times "__cyg_profile_func_enter,%r" 1 { target hppa*-*-hpux* } } } */
8 #define NOINSTR __attribute__((no_instrument_function))
10 struct t
12    public:
13        /* Function code should be instrumented */
14        __attribute__((noinline)) t() {}
16        /* Function t::a() should not be instrumented */
17        NOINSTR void a(){
18        }
19        /* Function t::b() should not be instrumented */
20        void NOINSTR b(){
21        }
22        /* Function t::c() should not be instrumented */
23        void c() NOINSTR {
24        }
25        /* Function t::d() should not be instrumented */
26        void d() NOINSTR;
29 void t::d()
33 /* Function call_all_functions() should not be instrumented */
34 struct t call_all_functions() __attribute__((no_instrument_function));
35 struct t call_all_functions()
37        struct t a;     /* Constructor not inlined */
38        a.a();          /* Inlined t::a() should not be instrumented */
39        a.b();          /* Inlined t::b() should not be instrumented */
40        a.c();          /* Inlined t::c() should not be instrumented */
41        a.d();          /* Inlined t::d() should not be instrumented */
42        return a;