mirror of
https://github.com/intel/llvm.git
synced 2026-02-04 03:26:06 +08:00
[AArch64] Disallow the MachO specific .loh directive for windows
Also add a test for it being unsupported for linux. Differential Revision: https://reviews.llvm.org/D49929 llvm-svn: 338493
This commit is contained in:
@@ -4859,7 +4859,6 @@ bool AArch64AsmParser::ParseDirective(AsmToken DirectiveID) {
|
||||
const MCObjectFileInfo::Environment Format =
|
||||
getContext().getObjectFileInfo()->getObjectFileType();
|
||||
bool IsMachO = Format == MCObjectFileInfo::IsMachO;
|
||||
bool IsCOFF = Format == MCObjectFileInfo::IsCOFF;
|
||||
|
||||
StringRef IDVal = DirectiveID.getIdentifier();
|
||||
SMLoc Loc = DirectiveID.getLoc();
|
||||
@@ -4875,11 +4874,12 @@ bool AArch64AsmParser::ParseDirective(AsmToken DirectiveID) {
|
||||
parseDirectiveUnreq(Loc);
|
||||
else if (IDVal == ".inst")
|
||||
parseDirectiveInst(Loc);
|
||||
else if (!IsMachO && !IsCOFF)
|
||||
return true;
|
||||
else if (IDVal == MCLOHDirectiveName())
|
||||
parseDirectiveLOH(IDVal, Loc);
|
||||
else
|
||||
else if (IsMachO) {
|
||||
if (IDVal == MCLOHDirectiveName())
|
||||
parseDirectiveLOH(IDVal, Loc);
|
||||
else
|
||||
return true;
|
||||
} else
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
# RUN: not llvm-mc -triple arm64-apple-darwin < %s 2> %t | FileCheck %s
|
||||
# RUN: FileCheck --check-prefix=CHECK-ERRORS < %t %s
|
||||
# RUN: not llvm-mc -triple aarch64-linux-gnu < %s 2>&1 | FileCheck --check-prefix=UNKNOWN %s
|
||||
# RUN: not llvm-mc -triple aarch64-win32-gnu < %s 2>&1 | FileCheck --check-prefix=UNKNOWN %s
|
||||
|
||||
.globl _fct1
|
||||
_fct1:
|
||||
@@ -15,6 +17,8 @@ _fct1:
|
||||
|
||||
# CHECK: .loh AdrpAdrp L1, L2
|
||||
# CHECK: .loh AdrpAdrp L1, L2
|
||||
# UNKNOWN: error: unknown directive
|
||||
# UNKNOWN-NEXT: .loh AdrpAdrp L1, L2
|
||||
.loh AdrpAdrp L1, L2
|
||||
.loh 1 L1, L2
|
||||
|
||||
|
||||
Reference in New Issue
Block a user