From 7229527c2c6859c3e172b1a2d9ab16a144c93a91 Mon Sep 17 00:00:00 2001 From: Danny Smith Date: Thu, 18 Sep 2003 21:16:02 +0000 Subject: [PATCH] winnt.c (gen_stdcall_suffix): Quit summation of total parm size if a parm has incomplete type. * config/i386/winnt.c (gen_stdcall_suffix): Quit summation of total parm size if a parm has incomplete type. (gen_fastcall_suffix): Likewise. From-SVN: r71543 --- gcc/ChangeLog | 6 ++++++ gcc/config/i386/winnt.c | 10 ++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b8d779dd9c1..4166ead77a7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2003-09-18 Danny Smith + + * config/i386/winnt.c (gen_stdcall_suffix): Quit summation of + total parm size if a parm has incomplete type. + (gen_fastcall_suffix): Likewise. + 2003-09-18 Richard Kenner * except.c (output_function_exception_table): Adjust last change diff --git a/gcc/config/i386/winnt.c b/gcc/config/i386/winnt.c index 076a2934a78..11a93a42ff1 100644 --- a/gcc/config/i386/winnt.c +++ b/gcc/config/i386/winnt.c @@ -420,7 +420,10 @@ gen_fastcall_suffix (tree decl) { tree formal_type = TYPE_ARG_TYPES (TREE_TYPE (decl)); - while (TREE_VALUE (formal_type) != void_type_node) + /* Quit if we hit an incomplete type. Error is reported + by convert_arguments in c-typeck.c or cp/typeck.c. */ + while (TREE_VALUE (formal_type) != void_type_node + && COMPLETE_TYPE_P (TREE_VALUE (formal_type))) { int parm_size = TREE_INT_CST_LOW (TYPE_SIZE (TREE_VALUE (formal_type))); @@ -458,7 +461,10 @@ gen_stdcall_suffix (tree decl) { tree formal_type = TYPE_ARG_TYPES (TREE_TYPE (decl)); - while (TREE_VALUE (formal_type) != void_type_node) + /* Quit if we hit an incomplete type. Error is reported + by convert_arguments in c-typeck.c or cp/typeck.c. */ + while (TREE_VALUE (formal_type) != void_type_node + && COMPLETE_TYPE_P (TREE_VALUE (formal_type))) { int parm_size = TREE_INT_CST_LOW (TYPE_SIZE (TREE_VALUE (formal_type))); -- 2.30.2