compiler: fix buglet in lshift type determination
commit9c4ff2ce65bdae101233b00405f81b0c657b9a23
authorian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 9 Aug 2017 21:24:00 +0000 (9 21:24 +0000)
committerian <ian@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 9 Aug 2017 21:24:00 +0000 (9 21:24 +0000)
tree4a33dc3570b0216cf7209e5e31a7f9bdb1f8a647
parent1823d5ff98404367f5f7fd2585f0761f31f6f553
compiler: fix buglet in lshift type determination

    It's possible to construct an lshift expression using unsafe.Sizeof
    that is technically a compile-time constant but can't be evaluated
    without going through backend methods. In this case, insure that
    Type::make_non_abstract_type is called on the numeric operand of the
    shift (as opposed to leaving as abstract), to avoid an assert later on
    in the compiler flow.

    Fixes golang/go#21372.

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

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@251006 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/go/gofrontend/MERGE
gcc/go/gofrontend/expressions.cc