| /* { dg-do compile } */ |
| /* { dg-options "-O2" } */ |
| |
| extern int dbg_cnt (void); |
| |
| struct function |
| { |
| unsigned int calls_setjmp:1; |
| }; |
| extern struct function *cfun; |
| unsigned char |
| gate_rtl_cprop (void) |
| { |
| return !(cfun + 0)->calls_setjmp && dbg_cnt (); |
| } |
| |
| /* This should be implementable without performing a bitmask as we can |
| just use a test imm,mem. So instructions which load the object from |
| memory and mask off bits are unnecessary. In theory we can just count |
| the move-with-extension, and and testb instructions. There should be |
| only one. */ |
| /* { dg-final { scan-assembler-times "movzbl|and|testb" 1 } } */ |