d: Fix small struct literals that have non-deterministic hash values
Same issue as the initial commit that addressed PR96153, only this time to fix
it also for structs that are not returned in memory. Tests have been added
that triggered an assertion on x86_64, however the original test was failing
on SPARC 64-bit targets.
gcc/d/ChangeLog:
PR d/96153
* d-codegen.cc (build_address): Create a temporary for CALL_EXPRs
returning trivial aggregates, pre-filling it with zeroes.
(build_memset_call): Use build_zero_cst if setting the entire object.
gcc/testsuite/ChangeLog:
PR d/96153
* gdc.dg/pr96153.d: Add new tests.