diff options
| author | dannysmith <dannysmith@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-09-18 21:16:02 +0000 |
|---|---|---|
| committer | dannysmith <dannysmith@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-09-18 21:16:02 +0000 |
| commit | a155f1e5cea8b0a1d58de4ff034cf3ce6b159ecb (patch) | |
| tree | 7b37f0334c64b712dec59da9e2fe7960ca5b73d5 | |
| parent | 8a94dd75400820e434541236d4eca131bb788e82 (diff) | |
| download | ppe42-gcc-a155f1e5cea8b0a1d58de4ff034cf3ce6b159ecb.tar.gz ppe42-gcc-a155f1e5cea8b0a1d58de4ff034cf3ce6b159ecb.zip | |
* config/i386/winnt.c (gen_stdcall_suffix): Quit summation of
total parm size if a parm has incomplete type.
(gen_fastcall_suffix): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@71543 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 6 | ||||
| -rw-r--r-- | 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 <dannysmith@users.sourceforge.net> + + * 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 <kenner@vlsi1.ultra.nyu.edu> * 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))); |

