https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102196

--- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
tc-microblaze.c case:

      if (exp.X_op != O_constant)
        as_warn (_("Symbol used as immediate for shift instruction"));
      else
        {
          output = frag_more (isize);
          immed = exp.X_add_number;
        }

      if (immed != (immed % 32))
        {
          as_warn (_("Shift value > 32. using <value %% 32>"));
          immed = immed % 32;
        }


Maybe we could print out the pathes which set it but I don't think that is
useful. Especially in this case it where it is just set a few lines above.



The next one there is the same:
      if (exp.X_op != O_constant) {
        as_warn(_("Symbol used as immediate for mbar instruction"));
      } else {
        output = frag_more (isize);
        immed = exp.X_add_number;
      }
      if (immed != (immed % 32)) {
        as_warn(_("Immediate value for mbar > 32. using <value %% 32>"));
        immed = immed % 32;
      }


config/tc-mcore.c is much more complex, there is a switch table and on some
pathes output variable is not set.

Showing the path in the case of tc-mcore.c is going to be problemantic and
might not actually show the correct thing always.

Note I do think you should file a binutils bug since those obvious bugs there.

Reply via email to