This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
+/* FIXME: Trunk is at GCC 4.8 now and the above problem still hasn't been + addressed properly. This caused PR 52640 due to O(external_decls**2) + lookups in the pending_assemble_externals queue in assemble_external. + Paper over with this pointer set. (And pending_assemble_externals even + was a TREE_LIST before?!) */ +static struct pointer_set_t *pending_assemble_externals_set;
+ #ifdef ASM_OUTPUT_EXTERNAL /* True if DECL is a function decl for which no out-of-line copy exists. It is assumed that DECL's assembler name has been set. */ @@ -2146,11 +2153,14 @@ void process_pending_assemble_externals (void) { #ifdef ASM_OUTPUT_EXTERNAL - tree list; - for (list = pending_assemble_externals; list; list = TREE_CHAIN (list)) - assemble_external_real (TREE_VALUE (list)); + size_t i; + tree decl;
- pending_assemble_externals = 0; + FOR_EACH_VEC_ELT (tree, pending_assemble_externals, i, decl) + assemble_external_real (decl); + VEC_free (tree, gc, pending_assemble_externals);
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |