compiler: Flatten erroneous subtrees into errors.
authorIan Lance Taylor <ian@gcc.gnu.org>
Thu, 13 Aug 2015 01:04:42 +0000 (01:04 +0000)
committerIan Lance Taylor <ian@gcc.gnu.org>
Thu, 13 Aug 2015 01:04:42 +0000 (01:04 +0000)
commitb02520e94037d26226a0d8da3c577e6ff6d4ffb7
treea38ed0948a185084f013a359229cd87e97988d28
parent2f4fdc09b0e34c96b2283d81971983d65fa02a8f
compiler: Flatten erroneous subtrees into errors.

    Between the lowering and flattening passes of the compiler, there are
    several passes that modify the lowered Go parse tree and as errors are
    discovered, several nodes transform into error nodes.  However, for a
    higher level node such as a construction expression, the erroneous
    nodes in the subtrees might not propagate their error.  The flatten
    phase for a node now looks for errors in the subtree and flattens the
    node into an error node if any are found.

    Fixes golang/go#11559, golang/go#11536, golang/go#11558.

    Reviewed-on: https://go-review.googlesource.com/13097

From-SVN: r226845
gcc/go/gofrontend/MERGE
gcc/go/gofrontend/expressions.cc
gcc/go/gofrontend/expressions.h
gcc/go/gofrontend/statements.cc