uweigand wrote:

> Two crash fixes added (follow-up to 
> [c4b3d1d](https://github.com/llvm/llvm-project/commit/c4b3d1d51da2570de41fbfab9784ca31558641a8))
> 
> Found when running with WYVERN_DEFAULT_TARGET_TRIPLE=s390x-ibm-zos:
> 
> SystemZMCTargetDesc.cpp — createNullTargetStreamer was returning the base 
> SystemZTargetStreamer whose createWordDiffExpr() returns nullptr. The new 
> PPA1 prolog-length fields pass that directly to emitValue(), causing a 
> SIGSEGV. Fix: return SystemZTargetGOFFStreamer for z/OS, same as 
> createObjectTargetStreamer already does.

This looks fine, but really should go into a separate PR, it has nothing to do 
with the ABI.
 
> SystemZHLASMAsmStreamer.cpp — finishImpl() unconditionally calls 
> getADA()->getParent() for any ESD_EXE_DATA symbol, but common/BSS globals get 
> ESD_EXE_DATA set via MCSA_ELF_TypeObject without ever having their ADA 
> assigned. Fix: guard with && Sym.getADA().

This doesn't look right to be - my understanding is that we *need* the ADA as 
we cannot use `EXTRN` for data symbols.  The ADA should have been set wherever 
the symbol was marked as data.  If that's not happening, we may need to fix it 
there.  In any case, that's also a separate PR.


https://github.com/llvm/llvm-project/pull/206833
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to