• Robert Griesemer's avatar
    cmd/compile: do not export float or complex constants with -asmhdr · 33ac8544
    Robert Griesemer authored
    The -asmhdr flag is used to generate header files for assembly code
    such that that code has access to compile-time constants. During
    the build these constants end up in the (ephemeral) file go_asm.h.
    
    For historical reasons, floating-point and complex constants are
    printed with a 'p' exponent but with decimal mantissa; also, because
    of the compiler-internal precision of 512 bits, the mantissae are quite
    large (and conversions are comparatively slow).
    
    With the changes to the new Go 2 number literals, the respective
    upcoming changes to text/scanner (which in turn is used by the assembler)
    will make text/scanner newly accept hexadecimal floats; but also decimal
    floats using the incorrect 'p' exponent and report an error in that case.
    
    As a consequence, the assembler will report an error when trying to parse
    the before-mentioned decimal floating-point values which are using 'p'
    exponents. Since these constants are never needed in the assembly code,
    do not emit them in the first place.
    
    Change-Id: I06c7c96b04e8d062441120107992472f87a651b2
    Reviewed-on: https://go-review.googlesource.com/c/161904
    Run-TryBot: Robert Griesemer <gri@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
    33ac8544
export.go 5.31 KB