Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/gcc.dg/plugin/diagnostic-test-inlining-2.c @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | |
children |
line wrap: on
line source
/* { dg-do compile } */ /* { dg-options "-Wno-attributes -fdiagnostics-show-caret" } */ extern void __emit_warning (const char *message); #define INNER_WARNING(MSG) __emit_warning (MSG) #define OUTER_WARNING(MSG) INNER_WARNING (MSG) __attribute__((always_inline)) static void foo (void) { OUTER_WARNING ("message"); } __attribute__((always_inline)) static void bar (void) { foo (); } int main() { bar (); return 0; } /* Verify that the diagnostic subsytem describes both the chains of inlining and of macro expansion when reporting the warning. */ /* { dg-regexp "In function 'foo'," "" } */ /* { dg-regexp " inlined from 'bar' at .+/diagnostic-test-inlining-2.c:19:3," "" } */ /* { dg-regexp " inlined from 'main' at .+/diagnostic-test-inlining-2.c:24:3:" "" } */ /* { dg-warning "28: message" "" { target c } 6 } */ /* { dg-begin-multiline-output "" } #define INNER_WARNING(MSG) __emit_warning (MSG) ^~~~~~~~~~~~~~~~~~~~ { dg-end-multiline-output "" } */ /* { dg-message "28: in expansion of macro 'INNER_WARNING'" "" { target c } 8 } */ /* { dg-begin-multiline-output "" } #define OUTER_WARNING(MSG) INNER_WARNING (MSG) ^~~~~~~~~~~~~ { dg-end-multiline-output "" } */ /* { dg-message "3: in expansion of macro 'OUTER_WARNING'" "" { target c } 13 } */ /* { dg-begin-multiline-output "" } OUTER_WARNING ("message"); ^~~~~~~~~~~~~ { dg-end-multiline-output "" } */