[MC][PowerPC] Replace MCContext::reportFatalError calls with reportError

User errors should use reportError. reportError allows us to continue parsing
the file and collect more diagnostics.

While here, make the diagnostic follow convention, merge tests, and test
line/column numbers.
This commit is contained in:
Fangrui Song 2022-01-15 00:01:36 -08:00
parent 122cab9b05
commit 1ae1dd16cf
3 changed files with 10 additions and 18 deletions

View File

@ -271,14 +271,14 @@ private:
MCAssembler &MCA = getStreamer().getAssembler(); MCAssembler &MCA = getStreamer().getAssembler();
int64_t Offset; int64_t Offset;
if (!LocalOffset->evaluateAsAbsolute(Offset, MCA)) if (!LocalOffset->evaluateAsAbsolute(Offset, MCA))
MCA.getContext().reportFatalError( MCA.getContext().reportError(LocalOffset->getLoc(),
LocalOffset->getLoc(), ".localentry expression must be absolute."); ".localentry expression must be absolute");
switch (Offset) { switch (Offset) {
default: default:
MCA.getContext().reportFatalError( MCA.getContext().reportError(
LocalOffset->getLoc(), LocalOffset->getLoc(), ".localentry expression must be a power of 2");
".localentry expression is not a valid power of 2."); return 0;
case 0: case 0:
return 0; return 0;
case 1: case 1:

View File

@ -4,8 +4,12 @@
# RUN: not llvm-mc -triple powerpc64le-unknown-unknown -filetype=obj < %s 2> %t # RUN: not llvm-mc -triple powerpc64le-unknown-unknown -filetype=obj < %s 2> %t
# RUN: FileCheck < %t %s # RUN: FileCheck < %t %s
.globl remote_sym
sym: sym:
# CHECK: :0: error: .localentry expression must be a power of 2
.localentry sym, 123 .localentry sym, 123
# CHECK: error: .localentry expression is not a valid power of 2. # CHECK: :[[#@LINE+1]]:19: error: .localentry expression must be absolute
.localentry sym, remote_sym

View File

@ -1,12 +0,0 @@
# RUN: not llvm-mc -triple powerpc64-unknown-unknown -filetype=obj < %s 2> %t
# RUN: FileCheck < %t %s
# RUN: not llvm-mc -triple powerpc64le-unknown-unknown -filetype=obj < %s 2> %t
# RUN: FileCheck < %t %s
.globl remote_sym
sym:
.localentry sym, remote_sym
# CHECK: error: .localentry expression must be absolute.