+2019-12-18  Tom Tromey  <tromey@adacore.com>
+
+       PR build/25250:
+       * ui-out.c (ui_out::vmessage): Update.
+       * ui-out.h (enum class field_kind) <FIELD_STRING, FIELD_SIGNED>:
+       Rename.
+       (string_field): Update.
+       (signed_field): Update.
+
 2019-12-18  Simon Marchi  <simon.marchi@efficios.com>
 
        * top.c (print_gdb_configuration): Adjust indentation.
 
                base_field_s *bf = va_arg (args, base_field_s *);
                switch (bf->kind)
                  {
-                 case field_kind::SIGNED:
+                 case field_kind::FIELD_SIGNED:
                    {
                      auto *f = (signed_field_s *) bf;
                      field_signed (f->name, f->val);
                    }
                    break;
-                 case field_kind::STRING:
+                 case field_kind::FIELD_STRING:
                    {
                      auto *f = (string_field_s *) bf;
                      field_string (f->name, f->str);
 
 /* The possible kinds of fields.  */
 enum class field_kind
   {
-    SIGNED,
-    STRING,
+    /* "FIELD_STRING" needs has a funny name to avoid clashes with
+       tokens named "STRING".  See PR build/25250.  FIELD_SIGNED is
+       given a similar name for consistency.  */
+    FIELD_SIGNED,
+    FIELD_STRING,
   };
 
 /* The base type of all fields that can be emitted using %pF.  */
              signed_field_s &&tmp = {})
 {
   tmp.name = name;
-  tmp.kind = field_kind::SIGNED;
+  tmp.kind = field_kind::FIELD_SIGNED;
   tmp.val = val;
   return &tmp;
 }
              string_field_s &&tmp = {})
 {
   tmp.name = name;
-  tmp.kind = field_kind::STRING;
+  tmp.kind = field_kind::FIELD_STRING;
   tmp.str = str;
   return &tmp;
 }