Hi, A dllimported symbol is always external. So treat that proper in local_symbolic_operand.
ChangeLog 2013-03-22 Kai Tietz <kti...@redhat.com> * config/i386/predicates.md (local_symbolic_operand): Interprete dll-imported symbols as none-local. Tested for x86_64-w64-mingw32, i686-w64-mingw32, and upcoming x86_64-pc-cygwin. Ok for apply? Regards, Kai Index: gcc/config/i386/predicates.md =================================================================== --- gcc/config/i386/predicates.md (Revision 196898) +++ gcc/config/i386/predicates.md (Arbeitskopie) @@ -436,6 +436,9 @@ if (SYMBOL_REF_TLS_MODEL (op)) return false; + /* Dll-imported symbols are always external. */ + if (TARGET_DLLIMPORT_DECL_ATTRIBUTES && SYMBOL_REF_DLLIMPORT_P (op)) + return false; if (SYMBOL_REF_LOCAL_P (op)) return true; -- | (\_/) This is Bunny. Copy and paste | (='.'=) Bunny into your signature to help | (")_(") him gain world domination