diff options
-rw-r--r-- | gcc/ChangeLog | 6 | ||||
-rw-r--r-- | gcc/function.c | 2 |
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5bb88ea..4324742 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2013-08-27 Yufeng Zhang <yufeng.zhang@arm.com> + + * function.c (assign_parm_find_data_types): Set passed_mode and + nominal_mode to the TYPE_MODE of nominal_type for the built + pointer type in case of the struct-pass-by-reference. + 2013-08-26 Joern Rennecke <joern.rennecke@embecosm.com> * config/avr/avr-stdint.h (INT16_TYPE): Change default to "int". diff --git a/gcc/function.c b/gcc/function.c index 4685cb0..c1550a2 100644 --- a/gcc/function.c +++ b/gcc/function.c @@ -2386,7 +2386,7 @@ assign_parm_find_data_types (struct assign_parm_data_all *all, tree parm, { passed_type = nominal_type = build_pointer_type (passed_type); data->passed_pointer = true; - passed_mode = nominal_mode = Pmode; + passed_mode = nominal_mode = TYPE_MODE (nominal_type); } /* Find mode as it is passed by the ABI. */ |