summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2002-08-27 17:52:41 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2002-08-27 17:52:41 +0000
commit564864acd2d1edace2cd4f03a68a348140cf2f0f (patch)
treef881b350b2b87827c14eb258fb857346a53c44c6
parent524cbc67523d0544b6f6a1b73ab8d0e56146db60 (diff)
downloadppe42-gcc-564864acd2d1edace2cd4f03a68a348140cf2f0f.tar.gz
ppe42-gcc-564864acd2d1edace2cd4f03a68a348140cf2f0f.zip
* i386.c (classify_argument): Handle variable sized objects.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@56609 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/config/i386/i386.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 6771a258b62..fc543fa4df2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+Tue Aug 27 19:51:05 CEST 2002 Jan Hubicka <jh@suse.cz>
+
+ * i386.c (classify_argument): Handle variable sized objects.
+
Tue Aug 27 19:18:16 CEST 2002 Jan Hubicka <jh@suse.cz>
* i386.c (ix86_expand_int_movcc): Fix RTL sharing problem
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 3da2e432f70..730bd3d78e2 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -1594,6 +1594,10 @@ classify_argument (mode, type, classes, bit_offset)
(mode == BLKmode) ? int_size_in_bytes (type) : (int) GET_MODE_SIZE (mode);
int words = (bytes + (bit_offset % 64) / 8 + UNITS_PER_WORD - 1) / UNITS_PER_WORD;
+ /* Variable sized entities are always passed/returned in memory. */
+ if (bytes < 0)
+ return 0;
+
if (type && AGGREGATE_TYPE_P (type))
{
int i;
OpenPOWER on IntegriCloud