OSDN Git Service

PR 4782
authoramodra <amodra>
Thu, 12 Jul 2007 01:40:25 +0000 (01:40 +0000)
committeramodra <amodra>
Thu, 12 Jul 2007 01:40:25 +0000 (01:40 +0000)
* ldlang.c (lang_size_sections_1 <output_section_statement>): Only
use expld.result when valid.

ld/ChangeLog
ld/ldlang.c

index bf73bb4..0d1bcc7 100644 (file)
@@ -1,5 +1,11 @@
 2007-07-12  Alan Modra  <amodra@bigpond.net.au>
 
+       PR 4782
+       * ldlang.c (lang_size_sections_1 <output_section_statement>): Only
+       use expld.result when valid.
+
+2007-07-12  Alan Modra  <amodra@bigpond.net.au>
+
        * emultempl/spuelf.em (embedded_spu_file): Test for NULL path
        before calling base_name, not after.
 
index e1c02cc..56edee8 100644 (file)
@@ -4242,13 +4242,12 @@ lang_size_sections_1
                os->processed_vma = FALSE;
                exp_fold_tree (os->addr_tree, bfd_abs_section_ptr, &dot);
 
-               if (!expld.result.valid_p
-                   && expld.phase != lang_mark_phase_enum)
+               if (expld.result.valid_p)
+                 dot = expld.result.value + expld.result.section->vma;
+               else if (expld.phase != lang_mark_phase_enum)
                  einfo (_("%F%S: non constant or forward reference"
                           " address expression for section %s\n"),
                         os->name);
-
-               dot = expld.result.value + expld.result.section->vma;
              }
 
            if (os->bfd_section == NULL)