llvm-project/llvm/test/tools/llvm-ml/extern_errors.asm
Alan Zhao 82c5e302f9 [llvm-ml] Implement support for MASM's extern directive
The EXTERN keyword defines external symbols in MASM.

Credit goes to epastor@ for implementing most of the logic; I (ayzhao@)
added some bugfixes and tests.

[0]: https://docs.microsoft.com/en-us/cpp/assembler/masm/extern-masm?view=msvc-170

Reviewed By: epastor

Submitted By: epastor

Differential Revision: https://reviews.llvm.org/D125273
2022-05-10 14:36:06 -04:00

23 lines
587 B
NASM

; RUN: not llvm-ml -filetype=s %s /Fo /dev/null 2>&1 | FileCheck %s --implicit-check-not=error:
; CHECK: :[[# @LINE + 1]]:8: error: expected name in directive 'extern'
extern 123
; CHECK: :[[# @LINE + 1]]:14: error: expected type in directive 'extern'
extern foo0 :
; CHECK: :[[# @LINE + 1]]:15: error: unrecognized type in directive 'extern'
extern bar0 : typedoesnotexist
extern foo1 : dword, bar1 : word
.code
; CHECK: :[[# @LINE + 1]]:1: error: invalid operand for instruction
mov bx, foo1
; CHECK: :[[# @LINE + 1]]:1: error: invalid operand for instruction
mov bl, bar1
END