[SystemZ][z/OS] Stricter condition for HLASM class instantiation

- A lot of lit tests simply specify the arch minus the triple. On z/OS, this could result in a scenario of some-other-triple-unknown-ibm-zos. This points to an incorrect triple + arch combo.
- To prevent this, isOSzOS change is switched in favour of isOSBinFormatGOFF.
- This is because, the GOFF format is set only if the triple is systemz and if the operating system is GOFF. And currently, there are no other architectures/os's using the GOFF file format.
- An argument could be made that the problematic tests be fixed to explicitly specify the arch-vendor-triple string, but there's a large number of these tests, and adding this stricter scope ensures that we aren't instantiating the incorrect instance of the AsmParser for other platforms when run on z/OS.

Reviewed By: uweigand

Differential Revision: https://reviews.llvm.org/D103343
This commit is contained in:
Anirudh Prasad 2021-06-01 15:55:34 -04:00
parent c138f3ce5c
commit e52007cac4
1 changed files with 1 additions and 1 deletions

View File

@ -6374,7 +6374,7 @@ bool parseAssignmentExpression(StringRef Name, bool allow_redef,
MCAsmParser *llvm::createMCAsmParser(SourceMgr &SM, MCContext &C,
MCStreamer &Out, const MCAsmInfo &MAI,
unsigned CB) {
if (C.getTargetTriple().isOSzOS())
if (C.getTargetTriple().isSystemZ() && C.getTargetTriple().isOSzOS())
return new HLASMAsmParser(SM, C, Out, MAI, CB);
return new AsmParser(SM, C, Out, MAI, CB);