Update halffloat.c

Corrected preprocessor form.
BUG: Boolean assignment allowed writing to 0-sized array

This was because of the assumption that broadcasting works
if the dimension is not > 1, but correct is != 1.

Adepted from a patch provided by prossahl, backports gh-3575
Merge pull request #3578 from charris/backport-gh3541

Update halffloat.c
Merge pull request #3577 from seberg/backport-issue-3458

Backport gh-3575
TST: Test for x.fill(tuple) where x is a struct array
BUG: Fix to allow x.fill(tuple) where x is a struct array
TST: Add test for reduceat ufunc regression on zero-sized array
BUG: Fix ufunc.reduceat regression with empty index (gh-2892)
TST: Change reduceat empty test to use i4 indices

On 32-bit platforms, was failing in casting the test
i8 index to i4. It may be desirable to allow this
in reduceat, but that change is independent of this pull
request.
TST: Add test for additional ufunc.reduceat empty parameter case
BUG: Fix additional zero-sized index case for ufunc.reduceat
Merge pull request #3618 from charris/backport-2893

Backport 2893
Merge pull request #3610 from charris/backport-3609

Backport 3609