diff options
author | Jim Grosbach <grosbach@apple.com> | 2012-05-01 18:38:27 +0000 |
---|---|---|
committer | Jim Grosbach <grosbach@apple.com> | 2012-05-01 18:38:27 +0000 |
commit | 686c01854e49748ef2e23851bd0abfa8b9b414f3 (patch) | |
tree | 979815b709c06aee9b0bcf7c61199494f3080976 | |
parent | 25c7b6e0df86d75bd7b0b92060a9fc37786e397c (diff) | |
download | llvm-686c01854e49748ef2e23851bd0abfa8b9b414f3.tar.gz llvm-686c01854e49748ef2e23851bd0abfa8b9b414f3.tar.bz2 llvm-686c01854e49748ef2e23851bd0abfa8b9b414f3.tar.xz |
MC: Unknown assembler directives are now hard errors.
Previously, an unsupported/unknown assembler directive issued a warning.
That's generally unsafe, and inconsistent with the behaviour of pretty
much every system assembler. Now that the MC assemblers are mature
enough to be the default on multiple targets, it's reasonable to
issue errors for these.
For target or platform directives that need to stay warnings, we
should add explicit handlers for them in, e.g., ELFAsmParser.cpp,
DarwinAsmParser.cpp, et. al., and issue the warning there.
rdar://9246275
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155926 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/MC/MCParser/AsmParser.cpp | 2 | ||||
-rw-r--r-- | test/MC/AsmParser/macros-parsing.s | 2 | ||||
-rw-r--r-- | test/MC/AsmParser/macros.s | 4 |
3 files changed, 4 insertions, 4 deletions
diff --git a/lib/MC/MCParser/AsmParser.cpp b/lib/MC/MCParser/AsmParser.cpp index ec137e2891..25419916c7 100644 --- a/lib/MC/MCParser/AsmParser.cpp +++ b/lib/MC/MCParser/AsmParser.cpp @@ -1238,7 +1238,7 @@ bool AsmParser::ParseStatement() { if (!getTargetParser().ParseDirective(ID)) return false; - return Warning(IDLoc, "ignoring directive for now"); + return Error(IDLoc, "unknown directive"); } CheckForValidSection(); diff --git a/test/MC/AsmParser/macros-parsing.s b/test/MC/AsmParser/macros-parsing.s index 65f64546cc..75aaac036e 100644 --- a/test/MC/AsmParser/macros-parsing.s +++ b/test/MC/AsmParser/macros-parsing.s @@ -5,7 +5,7 @@ .endmacro .macros_off -// CHECK-ERRORS: 9:1: warning: ignoring directive for now +// CHECK-ERRORS: 9:1: error: unknown directive .test0 .macros_on diff --git a/test/MC/AsmParser/macros.s b/test/MC/AsmParser/macros.s index 214274d9aa..2957592992 100644 --- a/test/MC/AsmParser/macros.s +++ b/test/MC/AsmParser/macros.s @@ -1,4 +1,4 @@ -// RUN: llvm-mc -triple x86_64-apple-darwin10 %s 2> %t.err | FileCheck %s +// RUN: not llvm-mc -triple x86_64-apple-darwin10 %s 2> %t.err | FileCheck %s // RUN: FileCheck --check-prefix=CHECK-ERRORS %s < %t.err .macro .test0 @@ -9,7 +9,7 @@ .endmacro .test1 -// CHECK-ERRORS: <instantiation>:1:1: warning: ignoring directive for now +// CHECK-ERRORS: <instantiation>:1:1: error: unknown directive // CHECK-ERRORS-NEXT: macrobody0 // CHECK-ERRORS-NEXT: ^ // CHECK-ERRORS: <instantiation>:1:1: note: while in macro instantiation |