Fix msp430 build with gcc-5
authorAlan Modra <amodra@gmail.com>
Wed, 4 Feb 2015 22:44:56 +0000 (09:14 +1030)
committerAlan Modra <amodra@gmail.com>
Wed, 4 Feb 2015 23:14:55 +0000 (09:44 +1030)
gcc-5 correctly complains "loop exit may only be reached after
undefined behavior".  I was going to correct this by checking the
index before dereferencing the array rather than the other way around,
but then I noticed it is possible for extract_cmd to write the
terminating zero one past the end of "cmd".  Fixing that means no
index check is needed in md_assemble.

* config/tc-msp430.c (md_assemble): Correct size passed to
extract_cmd.  Remove index check.

gas/ChangeLog
gas/config/tc-msp430.c

index f216b8498c09808d14c0a78228e442a38f50cdf4..f354c229ed0733ba230cf208783115395ae0c084 100644 (file)
@@ -1,3 +1,8 @@
+2015-02-05  Alan Modra  <amodra@gmail.com>
+
+       * config/tc-msp430.c (md_assemble): Correct size passed to
+       extract_cmd.  Remove index check.
+
 2015-02-04  Matthew Wahab  <matthew.wahab@arm.com>
 
        * config/tc-aarch64.c (aarch64_cpus): Add support for Cortex-A72.
index e44e7b2602bb865034242cba145b7d1cd2753526..2891c13277ef38430174d4651431b028f6f2def9 100644 (file)
@@ -3174,9 +3174,9 @@ md_assemble (char * str)
   unsigned int i = 0;
 
   str = skip_space (str);      /* Skip leading spaces.  */
-  str = extract_cmd (str, cmd, sizeof (cmd));
+  str = extract_cmd (str, cmd, sizeof (cmd) - 1);
 
-  while (cmd[i] && i < sizeof (cmd))
+  while (cmd[i])
     {
       char a = TOLOWER (cmd[i]);
       cmd[i] = a;