When I compile op.c with the following command on x86_64 I get a segfault: gcc -O1 -c op.c In file included from /home/gebner/tmp/qemu/target-i386/op.c:28: /home/gebner/tmp/qemu/target-i386/exec.h:312: warning: conflicting types for built-in function 'lrintl' /home/gebner/tmp/qemu/target-i386/op.c: In function `op_divw_AX_T0': /home/gebner/tmp/qemu/target-i386/op.c:307: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://bugs.gentoo.org/> for instructions. Preprocessed source stored into /tmp/ccHiWGfS.out file, please attach this to your bugreport. The segfault happens with all of the -O? options, except -O0. If I substitute -O? with the options that are enabled by that according to the man page, gcc doesn't segfault: gcc -c op.c -fdefer-pop -fmerge-constants -fthread-jumps -floop-optimize -fif-conversion -fif-conversion2 -fdelayed-branch -fguess-branch-probability -fcprop-registers -fomit-frame-pointer op.c:1: warning: this target machine does not have delayed branches In file included from /home/gebner/tmp/qemu/target-i386/op.c:28: /home/gebner/tmp/qemu/target-i386/exec.h:312: warning: conflicting types for built-in function 'lrintl' In file included from /home/gebner/tmp/qemu/target-i386/op.c:400: /home/gebner/tmp/qemu/target-i386/ops_mem.h: In function `op_ldub_raw_T0_A0': /home/gebner/tmp/qemu/target-i386/ops_mem.h:3: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_mem.h: In function `op_ldsb_raw_T0_A0': /home/gebner/tmp/qemu/target-i386/ops_mem.h:8: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_mem.h: In function `op_lduw_raw_T0_A0': /home/gebner/tmp/qemu/target-i386/ops_mem.h:13: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_mem.h: In function `op_ldsw_raw_T0_A0': /home/gebner/tmp/qemu/target-i386/ops_mem.h:18: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_mem.h: In function `op_ldl_raw_T0_A0': /home/gebner/tmp/qemu/target-i386/ops_mem.h:23: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_mem.h: In function `op_ldub_raw_T1_A0': /home/gebner/tmp/qemu/target-i386/ops_mem.h:28: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_mem.h: In function `op_ldsb_raw_T1_A0': /home/gebner/tmp/qemu/target-i386/ops_mem.h:33: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_mem.h: In function `op_lduw_raw_T1_A0': /home/gebner/tmp/qemu/target-i386/ops_mem.h:38: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_mem.h: In function `op_ldsw_raw_T1_A0': /home/gebner/tmp/qemu/target-i386/ops_mem.h:43: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_mem.h: In function `op_ldl_raw_T1_A0': /home/gebner/tmp/qemu/target-i386/ops_mem.h:48: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_mem.h: In function `op_stb_raw_T0_A0': /home/gebner/tmp/qemu/target-i386/ops_mem.h:53: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_mem.h: In function `op_stw_raw_T0_A0': /home/gebner/tmp/qemu/target-i386/ops_mem.h:58: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_mem.h: In function `op_stl_raw_T0_A0': /home/gebner/tmp/qemu/target-i386/ops_mem.h:63: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_mem.h: In function `op_stw_raw_T1_A0': /home/gebner/tmp/qemu/target-i386/ops_mem.h:75: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_mem.h: In function `op_stl_raw_T1_A0': /home/gebner/tmp/qemu/target-i386/ops_mem.h:80: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_boundw': /home/gebner/tmp/qemu/target-i386/op.c:513: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c:514: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_boundl': /home/gebner/tmp/qemu/target-i386/op.c:526: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c:527: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_jmp': /home/gebner/tmp/qemu/target-i386/op.c:543: warning: cast to pointer from integer of different size In file included from /home/gebner/tmp/qemu/target-i386/op.c:561: /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_jb_subb': /home/gebner/tmp/qemu/target-i386/ops_template.h:264: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h:266: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_jz_subb': /home/gebner/tmp/qemu/target-i386/ops_template.h:273: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h:275: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_jbe_subb': /home/gebner/tmp/qemu/target-i386/ops_template.h:286: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h:288: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_js_subb': /home/gebner/tmp/qemu/target-i386/ops_template.h:295: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h:297: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_jl_subb': /home/gebner/tmp/qemu/target-i386/ops_template.h:308: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h:310: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_jle_subb': /home/gebner/tmp/qemu/target-i386/ops_template.h:321: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h:323: warning: cast to pointer from integer of different size In file included from /home/gebner/tmp/qemu/target-i386/ops_template.h:462, from /home/gebner/tmp/qemu/target-i386/op.c:561: /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_rolb_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:74: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_rorb_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:96: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_rolb_raw_T0_T1': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:117: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_rorb_raw_T0_T1': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:131: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_rclb_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:157: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_rcrb_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:187: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_shlb_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:205: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_shrb_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:223: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_sarb_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:241: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_adcb_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:417: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_sbbb_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:430: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_cmpxchgb_raw_T0_T1_EAX_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:446: warning: cast to pointer from integer of different size In file included from /home/gebner/tmp/qemu/target-i386/op.c:561: /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_string_jz_subb': /home/gebner/tmp/qemu/target-i386/ops_template.h:561: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_string_jnz_subb': /home/gebner/tmp/qemu/target-i386/ops_template.h:568: warning: cast to pointer from integer of different size In file included from /home/gebner/tmp/qemu/target-i386/op.c:565: /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_jb_subw': /home/gebner/tmp/qemu/target-i386/ops_template.h:264: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h:266: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_jz_subw': /home/gebner/tmp/qemu/target-i386/ops_template.h:273: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h:275: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_jbe_subw': /home/gebner/tmp/qemu/target-i386/ops_template.h:286: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h:288: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_js_subw': /home/gebner/tmp/qemu/target-i386/ops_template.h:295: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h:297: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_jl_subw': /home/gebner/tmp/qemu/target-i386/ops_template.h:308: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h:310: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_jle_subw': /home/gebner/tmp/qemu/target-i386/ops_template.h:321: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h:323: warning: cast to pointer from integer of different size In file included from /home/gebner/tmp/qemu/target-i386/ops_template.h:462, from /home/gebner/tmp/qemu/target-i386/op.c:565: /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_rolw_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:74: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_rorw_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:96: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_rolw_raw_T0_T1': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:117: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_rorw_raw_T0_T1': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:131: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_rclw_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:157: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_rcrw_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:187: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_shlw_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:205: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_shrw_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:223: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_sarw_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:241: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_shldw_raw_T0_T1_im_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:265: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_shldw_raw_T0_T1_ECX_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:285: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_shrdw_raw_T0_T1_im_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:307: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_shrdw_raw_T0_T1_ECX_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:328: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_adcw_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:417: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_sbbw_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:430: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_cmpxchgw_raw_T0_T1_EAX_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:446: warning: cast to pointer from integer of different size In file included from /home/gebner/tmp/qemu/target-i386/op.c:565: /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_string_jz_subw': /home/gebner/tmp/qemu/target-i386/ops_template.h:561: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_string_jnz_subw': /home/gebner/tmp/qemu/target-i386/ops_template.h:568: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_jz_ecxw': /home/gebner/tmp/qemu/target-i386/ops_template.h:602: warning: cast to pointer from integer of different size In file included from /home/gebner/tmp/qemu/target-i386/op.c:569: /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_jb_subl': /home/gebner/tmp/qemu/target-i386/ops_template.h:264: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h:266: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_jz_subl': /home/gebner/tmp/qemu/target-i386/ops_template.h:273: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h:275: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_jbe_subl': /home/gebner/tmp/qemu/target-i386/ops_template.h:286: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h:288: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_js_subl': /home/gebner/tmp/qemu/target-i386/ops_template.h:295: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h:297: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_jl_subl': /home/gebner/tmp/qemu/target-i386/ops_template.h:308: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h:310: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_jle_subl': /home/gebner/tmp/qemu/target-i386/ops_template.h:321: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h:323: warning: cast to pointer from integer of different size In file included from /home/gebner/tmp/qemu/target-i386/ops_template.h:462, from /home/gebner/tmp/qemu/target-i386/op.c:569: /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_roll_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:74: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_rorl_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:96: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_roll_raw_T0_T1': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:117: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_rorl_raw_T0_T1': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:131: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_rcll_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:157: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_rcrl_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:187: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_shll_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:205: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_shrl_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:223: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_sarl_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:241: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_shldl_raw_T0_T1_im_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:348: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_shldl_raw_T0_T1_ECX_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:364: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_shrdl_raw_T0_T1_im_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:382: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_shrdl_raw_T0_T1_ECX_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:399: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_adcl_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:417: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_sbbl_raw_T0_T1_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:430: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template_mem.h: In function `op_cmpxchgl_raw_T0_T1_EAX_cc': /home/gebner/tmp/qemu/target-i386/ops_template_mem.h:446: warning: cast to pointer from integer of different size In file included from /home/gebner/tmp/qemu/target-i386/op.c:569: /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_string_jz_subl': /home/gebner/tmp/qemu/target-i386/ops_template.h:561: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_string_jnz_subl': /home/gebner/tmp/qemu/target-i386/ops_template.h:568: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/ops_template.h: In function `op_jz_ecxl': /home/gebner/tmp/qemu/target-i386/ops_template.h:602: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_movl_seg_T0_vm': /home/gebner/tmp/qemu/target-i386/op.c:861: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_jcc': /home/gebner/tmp/qemu/target-i386/op.c:1012: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c:1014: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_flds_FT0_A0': /home/gebner/tmp/qemu/target-i386/op.c:1325: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_fldl_FT0_A0': /home/gebner/tmp/qemu/target-i386/op.c:1335: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_fild_FT0_A0': /home/gebner/tmp/qemu/target-i386/op.c:1380: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_fildl_FT0_A0': /home/gebner/tmp/qemu/target-i386/op.c:1390: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_fildll_FT0_A0': /home/gebner/tmp/qemu/target-i386/op.c:1400: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_flds_ST0_A0': /home/gebner/tmp/qemu/target-i386/op.c:1415: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_fldl_ST0_A0': /home/gebner/tmp/qemu/target-i386/op.c:1429: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_fild_ST0_A0': /home/gebner/tmp/qemu/target-i386/op.c:1495: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_fildl_ST0_A0': /home/gebner/tmp/qemu/target-i386/op.c:1509: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_fildll_ST0_A0': /home/gebner/tmp/qemu/target-i386/op.c:1523: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_fsts_ST0_A0': /home/gebner/tmp/qemu/target-i386/op.c:1539: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_fstl_ST0_A0': /home/gebner/tmp/qemu/target-i386/op.c:1545: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_fist_ST0_A0': /home/gebner/tmp/qemu/target-i386/op.c:1566: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_fistl_ST0_A0': /home/gebner/tmp/qemu/target-i386/op.c:1580: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_fistll_ST0_A0': /home/gebner/tmp/qemu/target-i386/op.c:1594: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_fnstsw_A0': /home/gebner/tmp/qemu/target-i386/op.c:1921: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_fnstcw_A0': /home/gebner/tmp/qemu/target-i386/op.c:1933: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_fldcw_A0': /home/gebner/tmp/qemu/target-i386/op.c:1939: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_fnstenv_A0': /home/gebner/tmp/qemu/target-i386/op.c:2007: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_fldenv_A0': /home/gebner/tmp/qemu/target-i386/op.c:2012: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_fnsave_A0': /home/gebner/tmp/qemu/target-i386/op.c:2017: warning: cast to pointer from integer of different size /home/gebner/tmp/qemu/target-i386/op.c: In function `op_frstor_A0': /home/gebner/tmp/qemu/target-i386/op.c:2022: warning: cast to pointer from integer of different size
Created attachment 6822 [details] op.c (already preprocessed)
Created attachment 6823 [details] helper.c (already preprocessed) Gives errors like op.c (segfault with -O?, no segfault with substitutions)
small testcase, use "-O1": ------------------------------------------------------------------------------ register unsigned int EAX asm ("r14"); void foo (unsigned int num) { EAX = (EAX & 0xffff0000) | (num & 0xffff); } ------------------------------------------------------------------------------ Program received signal SIGSEGV, Segmentation fault. reg_bitfield_target_p (x=0xb7aeb840, body=0xb7b4cf18) at ../../gcc/gcc/combine.c:12342 12342 if (GET_CODE (target) == SUBREG) (gdb) where #0 reg_bitfield_target_p (x=0xb7aeb840, body=0xb7b4cf18) at ../../gcc/gcc/combine.c:12342 #1 0x08395b0e in distribute_notes (notes=0xb7b4cbdc, from_insn=0xb7ba8230, i3=0xb7ba8280, i2=0x0) at ../../gcc/gcc/combine.c:12815 #2 0x0838037f in try_combine (i3=0xb7ba8280, i2=0xb7ba8230, i1=0x0, new_direct_jump_p=0xbfffede4) at ../../gcc/gcc/combine.c:2632 #3 0x0837cb34 in combine_instructions (f=0xb7b93420, nregs=62) at ../../gcc/gcc/combine.c:633 #4 0x08317055 in rest_of_handle_combine (decl=0xb7aeb8b0, insns=0xb7b93420) at ../../gcc/gcc/toplev.c:2798 #5 0x08317f2f in rest_of_compilation (decl=0xb7af4cb0) at ../../gcc/gcc/toplev.c:3377 #6 0x0836b6e4 in tree_rest_of_compilation (fndecl=0xb7af4cb0, nested_p=false) at ../../gcc/gcc/tree-optimize.c:168 #7 0x0806b559 in c_expand_body_1 (fndecl=0xb7af4cb0, nested_p=0) at ../../gcc/gcc/c-decl.c:6158 #8 0x0806b74d in c_expand_body (fndecl=0xb7af4cb0) at ../../gcc/gcc/c-decl.c:6190 #9 0x0836dbaf in cgraph_expand_function (node=0xb7af4e0c) at ../../gcc/gcc/cgraphunit.c:538 #10 0x0836cfb3 in cgraph_assemble_pending_functions () at ../../gcc/gcc/cgraphunit.c:144 #11 0x0836d0d4 in cgraph_finalize_function (decl=0xb7af4cb0, nested=false) at ../../gcc/gcc/cgraphunit.c:225 #12 0x0806b441 in finish_function () at ../../gcc/gcc/c-decl.c:6115 #13 0x0804a806 in yyparse () at c-parse.y:385 #14 0x08052870 in c_parse_file () at c-parse.y:3029 #15 0x0809d38a in c_common_parse_file (set_yydebug=-1213286224) at ../../gcc/gcc/c-opts.c:1237 #16 0x08315452 in compile_file () at ../../gcc/gcc/toplev.c:1822 #17 0x08319bbe in do_compile () at ../../gcc/gcc/toplev.c:4651 #18 0x08319c53 in toplev_main (argc=3081681072, argv=0xbffff914) at ../../gcc/gcc/toplev.c:4691 #19 0x080bc83c in main (argc=-1213286224, argv=0xb7aeb8b0) at ../../gcc/gcc/main.c:35 Confirmed.
*** Bug 21153 has been marked as a duplicate of this bug. ***
Is this a regression?
(In reply to comment #5) > Is this a regression? Yes.
Postponed untill GCC 3.4.6 (this bug has been there for more than a year and there does not seem to be excitment about it)
won't fix for 3.4.6.