ld.texi: Move -z unique-symbol after -z undefs.
[deliverable/binutils-gdb.git] / ld / deffilep.y
index 1aebdf65a6ae20884bbb35c5a2e11eb57b87d65e..e58d0e0bcb5b855471d7349af7d5fdafd5f8ebb9 100644 (file)
@@ -1,6 +1,6 @@
 %{ /* deffilep.y - parser for .def files */
 
-/*   Copyright (C) 1995-2018 Free Software Foundation, Inc.
+/*   Copyright (C) 1995-2021 Free Software Foundation, Inc.
 
      This file is part of GNU Binutils.
 
@@ -23,6 +23,7 @@
 #include "libiberty.h"
 #include "safe-ctype.h"
 #include "bfd.h"
+#include "bfdlink.h"
 #include "ld.h"
 #include "ldmisc.h"
 #include "deffile.h"
@@ -121,7 +122,7 @@ static const char *lex_parse_string_end = 0;
 %token NAME LIBRARY DESCRIPTION STACKSIZE_K HEAPSIZE CODE DATAU DATAL
 %token SECTIONS EXPORTS IMPORTS VERSIONK BASE CONSTANTU CONSTANTL
 %token PRIVATEU PRIVATEL ALIGNCOMM
-%token READ WRITE EXECUTE SHARED NONAMEU NONAMEL DIRECTIVE EQUAL
+%token READ WRITE EXECUTE SHARED_K NONAMEU NONAMEL DIRECTIVE EQUAL
 %token <id> ID
 %token <digits> DIGITS
 %type  <number> NUMBER
@@ -234,7 +235,7 @@ attr:
                READ    { $$ = 1;}
        |       WRITE   { $$ = 2;}
        |       EXECUTE { $$=4;}
-       |       SHARED  { $$=8;}
+       |       SHARED_K { $$=8;}
        ;
 
 
@@ -262,7 +263,7 @@ keyword_as_name: BASE { $$ = "BASE"; }
         | PRIVATEU { $$ = "PRIVATE"; }
         | PRIVATEL { $$ = "private"; }
         | READ { $$ = "READ"; }
-        | SHARED  { $$ = "SHARED"; }
+        | SHARED_K  { $$ = "SHARED"; }
         | STACKSIZE_K { $$ = "STACKSIZE"; }
         | VERSIONK { $$ = "VERSION"; }
         | WRITE { $$ = "WRITE"; }
@@ -433,19 +434,15 @@ def_file_free (def_file *fdef)
 
   if (!fdef)
     return;
-  if (fdef->name)
-    free (fdef->name);
-  if (fdef->description)
-    free (fdef->description);
+  free (fdef->name);
+  free (fdef->description);
 
   if (fdef->section_defs)
     {
       for (i = 0; i < fdef->num_section_defs; i++)
        {
-         if (fdef->section_defs[i].name)
-           free (fdef->section_defs[i].name);
-         if (fdef->section_defs[i].class)
-           free (fdef->section_defs[i].class);
+         free (fdef->section_defs[i].name);
+         free (fdef->section_defs[i].class);
        }
       free (fdef->section_defs);
     }
@@ -454,13 +451,10 @@ def_file_free (def_file *fdef)
     {
       for (i = 0; i < fdef->num_exports; i++)
        {
-         if (fdef->exports[i].internal_name
-             && fdef->exports[i].internal_name != fdef->exports[i].name)
+         if (fdef->exports[i].internal_name != fdef->exports[i].name)
            free (fdef->exports[i].internal_name);
-         if (fdef->exports[i].name)
-           free (fdef->exports[i].name);
-         if (fdef->exports[i].its_name)
-           free (fdef->exports[i].its_name);
+         free (fdef->exports[i].name);
+         free (fdef->exports[i].its_name);
        }
       free (fdef->exports);
     }
@@ -469,13 +463,10 @@ def_file_free (def_file *fdef)
     {
       for (i = 0; i < fdef->num_imports; i++)
        {
-         if (fdef->imports[i].internal_name
-             && fdef->imports[i].internal_name != fdef->imports[i].name)
+         if (fdef->imports[i].internal_name != fdef->imports[i].name)
            free (fdef->imports[i].internal_name);
-         if (fdef->imports[i].name)
-           free (fdef->imports[i].name);
-         if (fdef->imports[i].its_name)
-           free (fdef->imports[i].its_name);
+         free (fdef->imports[i].name);
+         free (fdef->imports[i].its_name);
        }
       free (fdef->imports);
     }
@@ -1048,8 +1039,7 @@ def_image_name (const char *name, bfd_vma base, int is_dll)
        einfo ("%s:%d: Warning: path components stripped from %s, '%s'\n",
               def_filename, linenumber, is_dll ? "LIBRARY" : "NAME",
               name);
-      if (def->name)
-       free (def->name);
+      free (def->name);
       /* Append the default suffix, if none specified.  */
       if (strchr (image_name, '.') == 0)
        {
@@ -1333,7 +1323,7 @@ tokens[] =
   { "READ", READ },
   { "SECTIONS", SECTIONS },
   { "SEGMENTS", SECTIONS },
-  { "SHARED", SHARED },
+  { "SHARED", SHARED_K },
   { "STACKSIZE", STACKSIZE_K },
   { "VERSION", VERSIONK },
   { "WRITE", WRITE },
This page took 0.026488 seconds and 4 git commands to generate.