| /* { dg-do run } */ |
| /* tree inline used to split the block for inlining after the call, |
| then move the call to the after-the-call block. This move |
| temporarily deletes the assignment to the result, which in turn |
| resets any debug bind stmts referencing the result. Make sure we |
| don't do that, verifying that the result is visible after the call, |
| and when passed to another inline function. */ |
| /* { dg-options "-g" } */ |
| |
| #define GUALITY_DONT_FORCE_LIVE_AFTER -1 |
| |
| #ifndef STATIC_INLINE |
| #define STATIC_INLINE /*static*/ |
| #endif |
| |
| |
| #include "guality.h" |
| |
| __attribute__ ((always_inline)) static inline int |
| t1 (int i) |
| { |
| GUALCHKVAL (i); |
| return i; |
| } |
| __attribute__ ((always_inline)) static inline int |
| t2 (int i) |
| { |
| GUALCHKVAL (i); |
| return i - 42; |
| } |
| int |
| main (int argc, char *argv[]) |
| { |
| int i = t1(42); |
| GUALCHKVAL (i); |
| return t2(i); |
| } |