From 50ca694de2a2f3ffc7583f53c6a1c1e0f40c5045 Mon Sep 17 00:00:00 2001 From: Jim Wilson Date: Tue, 25 Jul 2017 16:06:37 +0000 Subject: [PATCH] Fix i686-pc-cygwin build failure. gcc/ PR bootstrap/81521 * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS. From-SVN: r250529 --- gcc/ChangeLog | 6 ++++++ gcc/config/i386/winnt-cxx.c | 15 +++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index fa76a9b9e90..1ddf5b59339 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2017-07-25 Jim Wilson + + PR bootstrap/81521 + * config/i386/winnt-cxx.c (i386_pe_adjust_class_at_definition): Look + for FUNCTION_DECLs in TYPE_FIELDS rather than TYPE_METHODS. + 2017-07-25 Jim Wilson * config/i386/gstabs.h: Delete. diff --git a/gcc/config/i386/winnt-cxx.c b/gcc/config/i386/winnt-cxx.c index cf271d301c9..a3569fb1b56 100644 --- a/gcc/config/i386/winnt-cxx.c +++ b/gcc/config/i386/winnt-cxx.c @@ -127,7 +127,8 @@ i386_pe_adjust_class_at_definition (tree t) for (thunk = DECL_THUNKS (member); thunk; thunk = TREE_CHAIN (thunk)) maybe_add_dllexport (thunk); - } + } + /* Check vtables */ for (member = CLASSTYPE_VTABLES (t); member; member = DECL_CHAIN (member)) @@ -145,14 +146,11 @@ i386_pe_adjust_class_at_definition (tree t) That is just right since out-of class declarations can only be a definition. */ - /* Check static VAR_DECL's. */ + /* Check FUNCTION_DECL's and static VAR_DECL's. */ for (member = TYPE_FIELDS (t); member; member = DECL_CHAIN (member)) if (TREE_CODE (member) == VAR_DECL) maybe_add_dllimport (member); - - /* Check FUNCTION_DECL's. */ - for (member = TYPE_METHODS (t); member; member = DECL_CHAIN (member)) - if (TREE_CODE (member) == FUNCTION_DECL) + else if (TREE_CODE (member) == FUNCTION_DECL) { tree thunk; maybe_add_dllimport (member); @@ -161,10 +159,11 @@ i386_pe_adjust_class_at_definition (tree t) for (thunk = DECL_THUNKS (member); thunk; thunk = DECL_CHAIN (thunk)) maybe_add_dllimport (thunk); - } + } /* Check vtables */ - for (member = CLASSTYPE_VTABLES (t); member; member = DECL_CHAIN (member)) + for (member = CLASSTYPE_VTABLES (t); + member; member = DECL_CHAIN (member)) if (TREE_CODE (member) == VAR_DECL) maybe_add_dllimport (member); -- 2.30.2