2013-09-04 Muhammad Bilal <mbilal@codesourcery.com>
authorMuhammad Bilal <mbilal@sourceware.org>
Wed, 4 Sep 2013 06:17:08 +0000 (06:17 +0000)
committerMuhammad Bilal <mbilal@sourceware.org>
Wed, 4 Sep 2013 06:17:08 +0000 (06:17 +0000)
            Pedro Alves  <palves@redhat.com>

* symfile.c (add_symbol_file_command): Error out on unknown
        option.  Handle EXPECTING_SEC_ADDR/EXPECTING_SEC_NAME before '-'
        options and collapse into single conditional branch.
2013-09-13  Muhammad Bilal  <mbilal@codesourcery.com>
            Pedro Alves  <palves@redhat.com>

* gdb.base/relocate.exp: Check that invalid options are
rejected.

gdb/ChangeLog
gdb/symfile.c
gdb/testsuite/ChangeLog
gdb/testsuite/gdb.base/relocate.exp

index caecc8d40ac4d3142ed7ce7978148f9cfc20b292..de171119e54625060faaa34d98939d36c0ccf05e 100644 (file)
@@ -1,3 +1,10 @@
+2013-09-04  Muhammad Bilal  <mbilal@codesourcery.com>
+            Pedro Alves  <palves@redhat.com>
+
+       * symfile.c (add_symbol_file_command): Error out on unknown
+        option.  Handle EXPECTING_SEC_ADDR/EXPECTING_SEC_NAME before '-'
+        options and collapse into single conditional branch.
+
 2013-09-03  Luis Machado  <lgustavo@codesourcery.com>
 
        * inf-child.c (inf_child_follow_fork) New parameter
index b95721eae48b8d06965aceac2b04f2001894dc69..67206cdf239782f563fcfb049c4a7018b179191d 100644 (file)
@@ -2214,63 +2214,55 @@ add_symbol_file_command (char *args, int from_tty)
          filename = tilde_expand (arg);
          make_cleanup (xfree, filename);
        }
+      else if (argcnt == 1)
+       {
+         /* The second argument is always the text address at which
+            to load the program.  */
+         sect_opts[section_index].name = ".text";
+         sect_opts[section_index].value = arg;
+         if (++section_index >= num_sect_opts)
+           {
+             num_sect_opts *= 2;
+             sect_opts = ((struct sect_opt *)
+                          xrealloc (sect_opts,
+                                    num_sect_opts
+                                    * sizeof (struct sect_opt)));
+           }
+       }
       else
-       if (argcnt == 1)
-         {
-           /* The second argument is always the text address at which
-               to load the program.  */
-           sect_opts[section_index].name = ".text";
-           sect_opts[section_index].value = arg;
-           if (++section_index >= num_sect_opts)
-             {
-               num_sect_opts *= 2;
-               sect_opts = ((struct sect_opt *)
-                            xrealloc (sect_opts,
-                                      num_sect_opts
-                                      * sizeof (struct sect_opt)));
-             }
-         }
-       else
-         {
-           /* It's an option (starting with '-') or it's an argument
-              to an option.  */
-
-           if (*arg == '-')
-             {
-               if (strcmp (arg, "-readnow") == 0)
-                 flags |= OBJF_READNOW;
-               else if (strcmp (arg, "-s") == 0)
-                 {
-                   expecting_sec_name = 1;
-                   expecting_sec_addr = 1;
-                 }
-             }
-           else
-             {
-               if (expecting_sec_name)
-                 {
-                   sect_opts[section_index].name = arg;
-                   expecting_sec_name = 0;
-                 }
-               else
-                 if (expecting_sec_addr)
-                   {
-                     sect_opts[section_index].value = arg;
-                     expecting_sec_addr = 0;
-                     if (++section_index >= num_sect_opts)
-                       {
-                         num_sect_opts *= 2;
-                         sect_opts = ((struct sect_opt *)
-                                      xrealloc (sect_opts,
-                                                num_sect_opts
-                                                * sizeof (struct sect_opt)));
-                       }
-                   }
-                 else
-                   error (_("USAGE: add-symbol-file <filename> <textaddress>"
-                            " [-readnow] [-s <secname> <addr>]*"));
-             }
-         }
+       {
+         /* It's an option (starting with '-') or it's an argument
+            to an option.  */
+           
+         if (expecting_sec_name)
+           {
+             sect_opts[section_index].name = arg;
+             expecting_sec_name = 0;
+           }
+         else if (expecting_sec_addr)
+           {
+             sect_opts[section_index].value = arg;
+             expecting_sec_addr = 0;
+             if (++section_index >= num_sect_opts)
+               {
+                 num_sect_opts *= 2;
+                 sect_opts = ((struct sect_opt *)
+                              xrealloc (sect_opts,
+                                        num_sect_opts
+                                        * sizeof (struct sect_opt)));
+               }
+           }
+         else if (strcmp (arg, "-readnow") == 0)
+           flags |= OBJF_READNOW;
+         else if (strcmp (arg, "-s") == 0)
+           {
+             expecting_sec_name = 1;
+             expecting_sec_addr = 1;
+           }
+         else
+           error (_("USAGE: add-symbol-file <filename> <textaddress>"
+                    " [-readnow] [-s <secname> <addr>]*"));
+       }
     }
 
   /* This command takes at least two arguments.  The first one is a
index 0710472547fee7b560e3154edf2bcd03fe1896fb..62d26d2c6107c8a96e180975797dbaa02bec6932 100644 (file)
@@ -1,3 +1,9 @@
+2013-09-13  Muhammad Bilal  <mbilal@codesourcery.com>
+            Pedro Alves  <palves@redhat.com>
+
+       * gdb.base/relocate.exp: Check that invalid options are
+       rejected.
+
 2013-08-30  Andrew Burgess  <aburgess@broadcom.com>
 
        * gdb.base/code_elim1.c (my_bss_symbol): New variable added.
index d69bca1947c88e2e1410aca8ba21599448ff515a..99ce83bc594cfd9b414a2bbdea16e748fcd4be41 100644 (file)
@@ -52,6 +52,13 @@ gdb_exit
 gdb_start
 gdb_reinitialize_dir $srcdir/$subdir
 
+#Check that invalid options are rejected.
+foreach x {"-raednow" "readnow" "foo" "-readnow s"} {
+    gdb_test "add-symbol-file ${binfile} 0 $x" \
+       "USAGE: add-symbol-file <filename> <textaddress>.*-readnow.*-s <secname> <addr>.*" \
+       "add-symbol-file: unknown option $x"
+}
+
 # Load the object file.
 gdb_test "add-symbol-file ${binfile} 0" \
        "Reading symbols from .*${testfile}\\.o\\.\\.\\.done\\.(|\r\nUsing host libthread_db library .*libthread_db.so.*\\.)" \