Commit 29ca15bb by Ian Lance Taylor

compiler: print runtime.hex in hex

    
    The gc compiler recognizes the type runtime.hex and prints values
    in this type as hex. Do the same here. This makes debugging
    runtime crashes slightly better.
    
    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/190597

From-SVN: r274591
parent 1ccd7035
480477ca64c3001b9c7e92ef8b978dc92a5912d2 0f6d673d5b1a3474c3424cb6994ae8ff9baed255
The first line of this file holds the git revision number of the last The first line of this file holds the git revision number of the last
merge done from the gofrontend repository. merge done from the gofrontend repository.
...@@ -10294,7 +10294,13 @@ Builtin_call_expression::do_get_backend(Translate_context* context) ...@@ -10294,7 +10294,13 @@ Builtin_call_expression::do_get_backend(Translate_context* context)
{ {
Type* itype = Type::lookup_integer_type("uint64"); Type* itype = Type::lookup_integer_type("uint64");
arg = Expression::make_cast(itype, arg, location); arg = Expression::make_cast(itype, arg, location);
code = Runtime::PRINTUINT; if (gogo->compiling_runtime()
&& type->named_type() != NULL
&& gogo->unpack_hidden_name(type->named_type()->name())
== "hex")
code = Runtime::PRINTHEX;
else
code = Runtime::PRINTUINT;
} }
else if (type->integer_type() != NULL) else if (type->integer_type() != NULL)
{ {
......
...@@ -384,6 +384,9 @@ DEF_GO_RUNTIME(PRINTSTRING, "runtime.printstring", P1(STRING), R0()) ...@@ -384,6 +384,9 @@ DEF_GO_RUNTIME(PRINTSTRING, "runtime.printstring", P1(STRING), R0())
// Print a uint64 (for print/println). // Print a uint64 (for print/println).
DEF_GO_RUNTIME(PRINTUINT, "runtime.printuint", P1(UINT64), R0()) DEF_GO_RUNTIME(PRINTUINT, "runtime.printuint", P1(UINT64), R0())
// Print a uint64 in hex (for print/println, used for runtime.hex type).
DEF_GO_RUNTIME(PRINTHEX, "runtime.printhex", P1(UINT64), R0())
// Print a int64 (for print/println). // Print a int64 (for print/println).
DEF_GO_RUNTIME(PRINTINT, "runtime.printint", P1(INT64), R0()) DEF_GO_RUNTIME(PRINTINT, "runtime.printint", P1(INT64), R0())
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment