PRAGMA_FORMAT_NONLITERAL_IGNORED_EXTERNAL
void Flag::print_on(outputStream* st, bool withComments) {
  // Don't print notproduct and develop flags in a product build.
  if (is_constant_in_binary()) {
    return;
  }

  st->print("%9s %-40s %c= ", _type, _name, (!is_default() ? ':' : ' '));

  if (is_bool()) {
    st->print("%-16s", get_bool() ? "true" : "false");
  }
  if (is_intx()) {
    st->print("%-16ld", get_intx());
  }
  if (is_uintx()) {
    st->print("%-16lu", get_uintx());
  }
  if (is_uint64_t()) {
    st->print("%-16lu", get_uint64_t());
  }
  if (is_double()) {
    st->print("%-16f", get_double());
  }
  if (is_ccstr()) {
    const char* cp = get_ccstr();
    if (cp != NULL) {
      const char* eol;
      while ((eol = strchr(cp, '\n')) != NULL) {
        char format_buffer[FORMAT_BUFFER_LEN];
        size_t llen = pointer_delta(eol, cp, sizeof(char));
        jio_snprintf(format_buffer, FORMAT_BUFFER_LEN,
            "%%." SIZE_FORMAT "s", llen);
PRAGMA_DIAG_PUSH
PRAGMA_FORMAT_NONLITERAL_IGNORED_INTERNAL
        st->print(format_buffer, cp);
PRAGMA_DIAG_POP
        st->cr();
        cp = eol+1;
        st->print("%5s %-35s += ", "", _name);
      }
      st->print("%-16s", cp);
    }
    else st->print("%-16s", "");
  }

  st->print("%-20s", " ");
  print_kind(st);

  if (withComments) {
#ifndef PRODUCT
    st->print("%s", _doc);
#endif
  }
  st->cr();
}
Example #2
0
void Flag::check_writable() {
  if (is_constant_in_binary()) {
    fatal("flag is constant: %s", _name);
  }
}
Example #3
0
void Flag::print_on(outputStream* st, bool withComments, bool printRanges) {
  // Don't print notproduct and develop flags in a product build.
  if (is_constant_in_binary()) {
    return;
  }

  if (!printRanges) {

    st->print("%9s %-40s %c= ", _type, _name, (!is_default() ? ':' : ' '));

    if (is_bool()) {
      st->print("%-16s", get_bool() ? "true" : "false");
    } else if (is_int()) {
      st->print("%-16d", get_int());
    } else if (is_uint()) {
      st->print("%-16u", get_uint());
    } else if (is_intx()) {
      st->print(INTX_FORMAT_W(-16), get_intx());
    } else if (is_uintx()) {
      st->print(UINTX_FORMAT_W(-16), get_uintx());
    } else if (is_uint64_t()) {
      st->print(UINT64_FORMAT_W(-16), get_uint64_t());
    } else if (is_size_t()) {
      st->print(SIZE_FORMAT_W(-16), get_size_t());
    } else if (is_double()) {
      st->print("%-16f", get_double());
    } else if (is_ccstr()) {
      const char* cp = get_ccstr();
      if (cp != NULL) {
        const char* eol;
        while ((eol = strchr(cp, '\n')) != NULL) {
          size_t llen = pointer_delta(eol, cp, sizeof(char));
          st->print("%.*s", (int)llen, cp);
          st->cr();
          cp = eol+1;
          st->print("%5s %-35s += ", "", _name);
        }
        st->print("%-16s", cp);
      }
      else st->print("%-16s", "");
    }

    st->print("%-20s", " ");
    print_kind(st);

#ifndef PRODUCT
    if (withComments) {
      st->print("%s", _doc);
    }
#endif

    st->cr();

  } else if (!is_bool() && !is_ccstr()) {

    if (printRanges) {

      st->print("%9s %-50s ", _type, _name);

      CommandLineFlagRangeList::print(_name, st, true);

      st->print(" %-20s", " ");
      print_kind(st);

#ifndef PRODUCT
      if (withComments) {
        st->print("%s", _doc);
      }
#endif

      st->cr();

    }
  }
}