compiler: emit underlying constant in array_type length export

In Array_type::do_export, when emitting a concrete array length,
evaluate the length expression to an integer constant and emit that
constant, instead of calling the more general method for emitting
expressions. This is to avoid the possibility that we will need
to emit a conversion, which could confuse the gccgoimporter.

Fixes golang/go#30628.

Change-Id: Idfa5057256fe6997d08f7de81d853fc873f95eb8
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/165741
Reviewed-by: Ian Lance Taylor <iant@golang.org>
1 file changed