This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug ada/21937] Member record alignment triggering an ICE


------- Additional Comments From ebotcazou at gcc dot gnu dot org  2005-06-07 12:16 -------
This worked in 3.4.x because we added a conversion operator:

tree_transform <N_Return_Statement>:

	  expand_return (build_binary_op (MODIFY_EXPR, NULL_TREE,
					  DECL_RESULT (current_function_decl),
					  gnu_ret_val));


In 4.x we directly build a MODIFY_EXPR:

gnat_to_gnu <N_Return_Statement>:

	if (gnu_ret_val)
	  gnu_result = build2 (MODIFY_EXPR, TREE_TYPE (gnu_ret_val),
			       gnu_lhs, gnu_ret_val);

Reinstating build_binary_op yields an ICE in the gimplifier instead, so either
build_binary_op or the gimplifier would probably need to be tweaked a bit.
 

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=21937


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]