------- Comment #1 from rguenth at gcc dot gnu dot org 2010-01-26 22:32 ------- We can't inline it. The sorry() is from #0 sorry ( gmsgid=0x8be6a24 "function %q+F can never be copied because it uses variable sized variables") at /home/richard/src/trunk/gcc/diagnostic.c:639 #1 0x087dde5e in tree_inlinable_function_p (fn=0xb77a6e00) at /home/richard/src/trunk/gcc/tree-inline.c:3041 #2 0x087a2dc6 in compute_inline_parameters (node=0xb773b2e0) at /home/richard/src/trunk/gcc/ipa-inline.c:1865 #3 0x087a2ec0 in compute_inline_parameters_for_current () at /home/richard/src/trunk/gcc/ipa-inline.c:1882 #4 0x0842644f in execute_one_pass (pass=0x8d22d80) at /home/richard/src/trunk/gcc/passes.c:1561 just drop the always_inline attribute. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- Component|c |middle-end Keywords| |rejects-valid Summary|Error on correct code: |[4.5 Regression] Error on |sorry, unimplemented: |correct code: sorry, |function ‘foo’ can never be |unimplemented: function |copied because it uses |‘foo’ can never be copied | |because it uses Target Milestone|--- |4.5.0 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42874