2001-02-13 H.J. Lu <hjl@gnu.org>
[deliverable/binutils-gdb.git] / ld / ldexp.c
index cc3427434ce1fe4aa770b424f04e4a3c052fc4b9..2b757fec90c8643e0dc8fa970c1e1fec688c2e05 100644 (file)
@@ -593,10 +593,11 @@ exp_fold_tree (tree, current_section, allocation_done, dot, dotp)
 
     case etree_assign:
     case etree_provide:
+    case etree_provided:
       if (tree->assign.dst[0] == '.' && tree->assign.dst[1] == 0)
        {
          /* Assignment to dot can only be done during allocation */
-         if (tree->type.node_class == etree_provide)
+         if (tree->type.node_class != etree_assign)
            einfo (_("%F%S can not PROVIDE assignment to location counter\n"));
          if (allocation_done == lang_allocating_phase_enum
              || (allocation_done == lang_final_phase_enum
@@ -666,6 +667,8 @@ exp_fold_tree (tree, current_section, allocation_done, dot, dotp)
                  h->type = bfd_link_hash_defined;
                  h->u.def.value = result.value;
                  h->u.def.section = result.section->bfd_section;
+                 if (tree->type.node_class == etree_provide)
+                   tree->type.node_class = etree_provided;
                }
            }
        }
@@ -880,6 +883,7 @@ exp_print_tree (tree)
       exp_print_tree (tree->assign.src);
       break;
     case etree_provide:
+    case etree_provided:
       fprintf (config.map_file, "PROVIDE (%s, ", tree->assign.dst);
       exp_print_tree (tree->assign.src);
       fprintf (config.map_file, ")");
This page took 0.023866 seconds and 4 git commands to generate.