------- Comment #1 from rguenth at gcc dot gnu dot org 2007-06-26 10:32 ------- The types do not match at gimplification time:
(gdb) call debug_tree (x) <integer_type 0x2b07ce1fb540 int public SI size <integer_cst 0x2b07ce1e8a50 type <integer_type 0x2b07ce1fb0c0 bit_size_type> constant invariant 32> unit size <integer_cst 0x2b07ce1e86c0 type <integer_type 0x2b07ce1fb000 long unsigned int> constant invariant 4> align 32 symtab 0 alias set -1 canonical type 0x2b07ce1fb540 precision 32 min <integer_cst 0x2b07ce1e89c0 -2147483648> max <integer_cst 0x2b07ce1e89f0 2147483647> pointer_to_this <pointer_type 0x2b07ce20d9c0>> (gdb) call debug_tree (y) <integer_type 0x2b07ce1fb300 char public string-flag QI size <integer_cst 0x2b07ce1e87b0 type <integer_type 0x2b07ce1fb0c0 bit_size_type> constant invariant 8> unit size <integer_cst 0x2b07ce1e87e0 type <integer_type 0x2b07ce1fb000 long unsigned int> constant invariant 1> align 8 symtab 0 alias set -1 canonical type 0x2b07ce1fb300 precision 8 min <integer_cst 0x2b07ce1e8750 -128> max <integer_cst 0x2b07ce1e88a0 127> pointer_to_this <pointer_type 0x2b07ce211cc0>> TYPE_ARG_TYPES says we want a char, but the call expression has an int. I would say this is a C++ frontend bug? Or is this somehow expected and we need to "deal" with this mismatch? Mark? Jason? This works with the C frontend. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |rguenth at gcc dot gnu dot | |org, mmitchel at gcc dot gnu | |dot org, jason at gcc dot | |gnu dot org Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 Keywords| |rejects-valid Last reconfirmed|0000-00-00 00:00:00 |2007-06-26 10:32:10 date| | Summary|attribute always_inline -> |[4.3 Regression] attribute |sorry, unimplemented: |always_inline -> sorry, |recursive inlining |unimplemented: recursive | |inlining http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32492