compiler: resolve importing ambiguity for more complex function calls
authorIan Lance Taylor <ian@gcc.gnu.org>
Sat, 28 Sep 2019 00:16:57 +0000 (00:16 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Sat, 28 Sep 2019 00:16:57 +0000 (00:16 +0000)
commit6e81d34ea2d144cf48ec89cc9df8c4a479d675ec
tree2c71cfb349624a0f9729cc90aedcf9dd028b30d6
parent222e8cb6ca0110e4311be640459d4cb790a6b83d
compiler: resolve importing ambiguity for more complex function calls

    Tweak the exporter for inlinable function bodies to work around a
    problem with importing of function calls whose function expressions
    are not simple function names. In the bug in question, the function
    body exporter was writing out a function call of the form

           (*(*FuncTyp)(var))(arg)

    which produced an export data representation of

           *$convert(<type 5>, var)(x)

    which is hard to parse unambiguously. Fix: change the export data
    emitter to introduce parens around the function expression for more
    complex calls.

    Testcase for this bug is in CL 197217.

    Fixes golang/go#34503.

    Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/197122

From-SVN: r276228
gcc/go/gofrontend/MERGE
gcc/go/gofrontend/expressions.cc