Hi, the attached Ada testcase triggers an assertion in the RTL expander for the address operator because the operator has been applied to a non-byte-aligned record field. The problematic ADDR_EXPR is built by ipa_modify_call_arguments which has a hole when get_addr_base_and_unit_offset returns NULL_TREE: the variable offset case is handled but not the non-byte-aligned case, which can rountinely happen in Ada, hence the proposed fix. Tested on x86_64-suse-linux, OK for the mainline? 2014-11-28 Eric Botcazou * ipa-prop.c (ipa_modify_call_arguments): Properly deal with unaligned aggregate parameters passed by value. 2014-11-28 Eric Botcazou * gnat.dg/specs/pack12.ads: New test. -- Eric Botcazou