Imported Upstream version 6.10.0.49

Former-commit-id: 1d6753294b2993e1fbf92de9366bb9544db4189b
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2020-01-16 16:38:04 +00:00
parent d94e79959b
commit 468663ddbb
48518 changed files with 2789335 additions and 61176 deletions

View File

@ -0,0 +1,258 @@
// RUN: not llvm-mc -triple aarch64-none-eabi %s 2>&1 | FileCheck %s
// RUN: not llvm-mc -triple aarch64-none-eabi %s 2>&1 | grep "error:" | count 60
// CHECK: [[@LINE+1]]:19: error: unexpected token in '.equ' directive
.equ ident1, 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.equ ident1, 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:19: error: unexpected token in '.equiv' directive
.equiv ident2, 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.equiv ident2, 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:19: error: unexpected token in '.set' directive
.set ident3, 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.set ident3, 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:20: error: unexpected token in '.ascii' directive
.ascii "string1" $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.ascii "string1" // EOL COMMENT
// CHECK: [[@LINE+1]]:20: error: unexpected token in '.asciz' directive
.asciz "string2" $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.asciz "string2" // EOL COMMENT
// CHECK: [[@LINE+1]]:20: error: unexpected token in '.string' directive
.string "string3" $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.string "string3" // EOL COMMENT
// CHECK: [[@LINE+1]]:10: error: unexpected token in '.byte' directive
.byte 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.byte 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:10: error: unexpected token in '.dc.b' directive
.dc.b 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.dc.b 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:8: error: unexpected token in '.dc' directive
.dc 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.dc.b 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:10: error: unexpected token in '.dc.w' directive
.dc.w 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.dc.w 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:11: error: unexpected token in '.short' directive
.short 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.short 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:11: error: unexpected token in '.value' directive
.value 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.value 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:11: error: unexpected token in '.2byte' directive
.2byte 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.2byte 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:10: error: unexpected token in '.long' directive
.long 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.long 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:10: error: unexpected token in '.int' directive
.int 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.int 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:11: error: unexpected token in '.4byte' directive
.4byte 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.4byte 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:10: error: unexpected token in '.dc.l' directive
.dc.l 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.dc.l 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:10: error: unexpected token in '.quad' directive
.quad 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.quad 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:11: error: unexpected token in '.8byte' directive
.8byte 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.8byte 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:10: error: unexpected token in '.dc.a' directive
.dc.a 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.dc.a 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:10: error: unexpected token in '.octa' directive
.octa 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.octa 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:12: error: unexpected token in '.single' directive
.single 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.single 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:11: error: unexpected token in '.float' directive
.float 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.float 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:10: error: unexpected token in '.dc.s' directive
.dc.s 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.dc.s 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:12: error: unexpected token in '.double' directive
.double 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.double 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:10: error: unexpected token in '.dc.d' directive
.dc.d 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.dc.d 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:13: error: unexpected token in '.fill' directive
.fill 1, 1 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.fill 1, 1 // EOL COMMENT
// CHECK: [[@LINE+1]]:17: error: unexpected token in '.fill' directive
.fill 1, 1, 10 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.fill 1, 1, 10 // EOL COMMENT
// CHECK: [[@LINE+1]]:16: error: unexpected token in '.org' directive
.org 1 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.org 1 // EOL COMMENT
// CHECK: [[@LINE+1]]:11: error: unexpected token in directive
.align 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.align 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:13: error: unexpected token in directive
.align32 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.align32 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:12: error: unexpected token in directive
.balign 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.balign 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:13: error: unexpected token in directive
.balignw 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.balignw 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:13: error: unexpected token in directive
.balignl 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.balignl 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:13: error: unexpected token in directive
.p2align 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.p2align 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:14: error: unexpected token in directive
.p2alignw 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.p2alignw 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:14: error: unexpected token in directive
.p2alignl 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.p2alignl 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:8: error: unexpected token in '.line' directive
.line $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.line // EOL COMMENT
// CHECK: [[@LINE+1]]:10: error: unexpected token in '.line' directive
.line 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.line 0 // EOL COMMENT
.file 1 "hello"
// CHECK: [[@LINE+1]]:16: error: unexpected token in '.loc' directive
.loc 1 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.loc 1 // EOL COMMENT
// CHECK: [[@LINE+1]]:21: error: unexpected token in '.cv_file' directive
.cv_file 1 "hello" $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.cv_file 1 "hello" // EOL COMMENT
.cv_func_id 1
// CHECK: [[@LINE+1]]:14: error: unexpected token in '.cv_loc' directive
.cv_loc 1 1 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.cv_loc 1 1 // EOL COMMENT
// CHECK: [[@LINE+1]]:28: error: unexpected token after '.bundle_lock' directive option
.bundle_lock align_to_end $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.bundle_lock align_to_end // EOL COMMENT
// CHECK: [[@LINE+1]]:11: error: invalid token in expression in directive
.sleb128 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.sleb128 // EOL COMMENT
// CHECK: [[@LINE+1]]:13: error: unexpected token in directive
.sleb128 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.sleb128 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:11: error: invalid token in expression in directive
.uleb128 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.uleb128 // EOL COMMENT
// CHECK: [[@LINE+1]]:13: error: unexpected token in directive
.uleb128 0 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.uleb128 0 // EOL COMMENT
// CHECK: [[@LINE+1]]:31: error: unexpected token
.globl a1 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.globl a1 // EOL COMMENT
// CHECK: [[@LINE+1]]:31: error: unexpected token in directive
.global a2 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.global a2 // EOL COMMENT
// CHECK: [[@LINE+1]]:31: error: unexpected token in directive
.lazy_reference a3 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.lazy_reference a3 // EOL COMMENT
// CHECK: [[@LINE+1]]:31: error: unexpected token in directive
.symbol_resolver a4 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.symbol_resolver a4 // EOL COMMENT
// CHECK: [[@LINE+1]]:31: error: unexpected token in directive
.private_extern a5 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.private_extern a5 // EOL COMMENT
// CHECK: [[@LINE+1]]:31: error: unexpected token in directive
.reference a6 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.reference a6 // EOL COMMENT
// CHECK: [[@LINE+1]]:31: error: unexpected token in directive
.weak_definition a7 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.weak_definition a7 // EOL COMMENT
// CHECK: [[@LINE+1]]:31: error: unexpected token in directive
.weak_reference a8 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.weak_reference a8 // EOL COMMENT
// CHECK: [[@LINE+1]]:31: error: unexpected token in directive
.weak_def_can_be_hidden a9 $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.weak_def_can_be_hidden a9 // EOL COMMENT
// CHECK: [[@LINE+1]]:12: error: .warning argument must be a string
.warning $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.warning // EOL COMMENT
// CHECK: [[@LINE+1]]:21: error: expected end of statement in '.warning' directive
.warning "warning" $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.warning "warning" // EOL COMMENT
// CHECK: [[@LINE+1]]:17: error: unexpected token in '.cfi_startproc' directive
.cfi_startproc $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.cfi_startproc // EOL COMMENT
.cfi_endproc
// CHECK: [[@LINE+1]]:24: error: unexpected token in '.cfi_startproc' directive
.cfi_startproc simple $
// CHECK-NOT: [[@LINE+1]]:{{[0-9]+}}: error:
.cfi_startproc simple // EOL COMMENT
.cfi_endproc
// CHECK-NOT: error:

View File

@ -0,0 +1,2 @@
if 'AArch64' not in config.root.targets:
config.unsupported = True

View File

@ -0,0 +1,3 @@
FUNCTION = 1

View File

@ -0,0 +1,3 @@
MODULE = 1

View File

@ -0,0 +1,10 @@
# 0b<EFBFBD>
# 0x<EFBFBD>
# .<EFBFBD>4
# .X<EFBFBD>
# .1<EFBFBD>
# .1e<EFBFBD>
# 0x.<EFBFBD>
# 0x0p<EFBFBD>
.intel_syntax
# 1<EFBFBD>

View File

@ -0,0 +1 @@
.section .<EFBFBD>

View File

@ -0,0 +1,10 @@
# RUN: not llvm-mc -triple i386-linux-gnu < %s 2>&1 | FileCheck %s -check-prefix=ELF
# RUN: not llvm-mc -triple i386-apple-darwin < %s 2>&1 | FileCheck %s -check-prefix=DARWIN
.align 3
# ELF: error: alignment must be a power of 2
# DARWIN-NOT: error
.align 32
# ELF-NOT: error
# DARWIN: error: invalid alignment value

View File

@ -0,0 +1,65 @@
# RUN: llvm-mc -triple i386-linux-gnu %s | FileCheck %s
# Checking that the '%' was evaluated as a string first
# In a fail scenario: The asmprint will print: addl $%(1+4), %eax
# CHECK: addl $5, %eax
.altmacro
.macro percent_expr arg
addl $\arg, %eax
.endm
percent_expr %(1+4)
# Checking that the second '%' acts as modulo operator
# The altmacro percent '%' must be located before the first argument
# If a percent is located in the middle of the estimated argument without any
# '%' in the beginning , error will be generated.
# The second percent '%' after the first altmacro percent '%' is a regular operator.
# CHECK: addl $1, %eax
.macro inner_percent arg
addl $\arg, %eax
.endm
inner_percent %(1%4)
# Checking for nested macro
# The first argument use is for the calling function and the second use is for the evaluation.
# CHECK: addl $1, %eax
.macro macro_call_0 number
addl $\number, %eax
.endm
.macro macro_call_1 number
macro_call_\number %(\number + 1)
.endm
macro_call_1 %(1-1)
# Checking the ability to pass a number of arguments.
# The arguments can be separated by ',' or not.
# CHECK: label013:
# CHECK: addl $0, %eax
# CHECK: addl $1, %eax
# CHECK: addl $3, %eax
# CHECK: label014:
# CHECK: addl $0, %eax
# CHECK: addl $1, %eax
# CHECK: addl $4, %eax
.macro multi_args_macro arg1 arg2 arg3
label\arg1\arg2\arg3:
addl $\arg1, %eax
addl $\arg2, %eax
addl $\arg3, %eax
.endm
multi_args_macro %(1+4-5) 1 %2+1
multi_args_macro %(1+4-5),1,%4%10

View File

@ -0,0 +1,73 @@
# RUN: llvm-mc -triple i386-linux-gnu %s| FileCheck %s
# This test checks the altmacro string delimiter '<' and '>'.
.altmacro
# Test #1:
# You can delimit strings with matching angle brackets '<' '>'.
# If an argument begins with '<' and ends with '>'.
# The argument is considered as a string.
# CHECK: simpleCheck:
.macro simple_check_0 name
\name:
addl $5,%eax
.endm
simple_check_0 <simpleCheck>
# Test #2:
# Except adding new string marks '<..>', a regular macro behavior is expected.
# CHECK: simpleCheck0:
# CHECK: addl $0, %eax
.macro concat string1 string2 string3
\string1\string2\string3:
addl $\string3, %eax
.endm
concat <simple>,<Check>,<0>
# Test #3:
# The altmacro cannot affect the regular less/greater behavior.
# CHECK: addl $1, %eax
# CHECK: addl $0, %eax
.macro fun3 arg1 arg2
addl $\arg1,%eax
addl $\arg2,%eax
.endm
fun3 5<6 , 5>8
# Test #4:
# If a comma is present inside an angle brackets,
# the comma considered as a character and not as a separator.
# This check checks the ability to split the string to different
# arguments according to the use of the comma.
# Fun2 sees the comma as a character.
# Fun3 sees the comma as a separator.
# CHECK: addl $5, %eax
# CHECK: addl $6, %eax
.macro fun2 arg
fun3 \arg
.endm
fun2 <5,6>
# Test #5:
# If argument begin with '<' and there is no '>' to close it.
# A regular macro behavior is expected.
# CHECK: addl $4, %eax
.macro fun4 arg1 arg2
.if \arg2\arg1
addl $\arg2,%eax
.endif
.endm
fun4 <5,4
.noaltmacro

View File

@ -0,0 +1,29 @@
# RUN: llvm-mc -triple i386-linux-gnu %s| FileCheck %s
.altmacro
# single-character string escape
# To include any single character literally in a string
# (even if the character would otherwise have some special meaning),
# you can prefix the character with `!'.
# For example, you can write `<4.3 !> 5.4!!>' to get the literal text `4.3 > 5.4!'.
# CHECK: workForFun:
.macro fun1 number
.if \number=5
lableNotWork:
.else
workForFun:
.endif
.endm
# CHECK: workForFun2:
.macro fun2 string
.if \string
workForFun2:
.else
notworkForFun2:
.endif
.endm
fun1 <5!!>
fun2 <5!>4>

View File

@ -0,0 +1,11 @@
# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
# CHECK: TEST0:
# CHECK: a = 0
TEST0:
a = 0
# CHECK: .globl _f1
# CHECK: _f1 = 0
.globl _f1
_f1 = 0

View File

@ -0,0 +1,23 @@
# RUN: not llvm-mc -triple i386-unknown-unknown < %s 2>&1 | FileCheck %s
add $1\@, %eax
# CHECK: :[[@LINE-1]]:8: error: unexpected token in argument list
.macro A @
mov %eax, %eax
.endm
# CHECK: :[[@LINE-3]]:10: error: expected identifier in '.macro' directive
.rept 2
addi $8, $8, \@
.endr
# CHECK: error: unknown token in expression
# CHECK: :[[@LINE-4]]:1: note: while in macro instantiation
# CHECK-NEXT: .rept 2
.rep 3
addi $9, $9, \@
.endr
# CHECK: error: unknown token in expression
# CHECK: :[[@LINE-4]]:1: note: while in macro instantiation
# CHECK-NEXT: .rep 3

View File

@ -0,0 +1,64 @@
# RUN: llvm-mc -triple i386-unknown-unknown %s | FileCheck %s
.macro A
add $1\@, %eax
.endm
.macro B
sub $1\@, %eax
.endm
A
# CHECK: addl $10, %eax
A
# CHECK: addl $11, %eax
B
# CHECK: subl $12, %eax
B
# CHECK: subl $13, %eax
# The following uses of \@ are undocumented, but valid:
.irpc foo,234
add $\foo\@, %eax
.endr
# CHECK: addl $24, %eax
# CHECK: addl $34, %eax
# CHECK: addl $44, %eax
.irp reg,%eax,%ebx
sub $2\@, \reg
.endr
# CHECK: subl $24, %eax
# CHECK: subl $24, %ebx
# Test that .irp(c) and .rep(t) do not increase \@.
# Only the use of A should increase \@, so we can test that it increases by 1
# each time.
.irpc foo,123
sub $\foo, %eax
.endr
A
# CHECK: addl $14, %eax
.irp reg,%eax,%ebx
sub $4, \reg
.endr
A
# CHECK: addl $15, %eax
.rept 2
sub $5, %eax
.endr
A
# CHECK: addl $16, %eax
.rep 3
sub $6, %eax
.endr
A
# CHECK: addl $17, %eax

View File

@ -0,0 +1,9 @@
// RUN: not llvm-mc -triple x86_64-apple-darwin10 %s 2>&1 | FileCheck %s
.macro 23
// CHECK: expected identifier in '.macro' directive
.macro abc 33
// CHECK: expected identifier in '.macro' directive

View File

@ -0,0 +1,5 @@
// RUN: not llvm-mc -filetype=asm -triple x86_64-pc-linux-gnu %s -o %t 2>%t.out
// RUN: FileCheck -input-file=%t.out %s
.cfi_startproc
// CHECK: Unfinished frame

View File

@ -0,0 +1,7 @@
// RUN: llvm-mc -filetype=asm -triple x86_64-pc-linux-gnu %s 2>&1 | FileCheck %s
.cfi_sections .debug_frame
.cfi_startproc
.cfi_rel_offset 99, 0
// CHECK: .cfi_rel_offset 99, 0
.cfi_endproc

View File

@ -0,0 +1,15 @@
# RUN: llvm-mc -filetype=asm -triple x86_64-pc-linux-gnu <%s | FileCheck %s
# Should use SPARC as the target to test this. However, SPARC does not support
# asm parsing yet.
# CHECK: .cfi_window_save
f:
.cfi_startproc
nop
.cfi_window_save
nop
.cfi_endproc

View File

@ -0,0 +1,14 @@
// RUN: llvm-mc -triple x86_64-apple-darwin %s 2>&1 | FileCheck %s
# ensure that single '#' comments are worink as expected on x86 darwin
.p2align 3 # test single hash after align
// CHECK: .p2align 3
foo: # single hash should be ignored as comment
// CHECK-LABEL: foo:
movl %esp, %ebp # same after an instruction
// CHECK: movl %esp, %ebp
# movl %esp, %ebp ## start of the line
// CHECK-NOT: movl %esp, %ebp
# movl %esp, %ebp ## not quite start of the line
// CHECK-NOT: movl %esp, %ebp
bar:
// CHECK-LABEL: bar:

View File

@ -0,0 +1,81 @@
# RUN: llvm-mc -triple i386-unknown-unknown %s -I %p | FileCheck %s
# CHECK: .byte 2
.if 1+2
.if 1-1
.byte 1
.elseif 2+2
.byte 1+1
.else
.byte 0
.endif
.endif
# CHECK: .byte 0
# CHECK-NOT: .byte 1
.ifeq 32 - 32
.byte 0
.else
.byte 1
.endif
# CHECK: .byte 0
# CHECK: .byte 1
# CHECK-NOT: .byte 2
.ifge 32 - 31
.byte 0
.endif
.ifge 32 - 32
.byte 1
.endif
.ifge 32 - 33
.byte 2
.endif
# CHECK: .byte 0
# CHECK-NOT: .byte 1
# CHECK-NOT: .byte 2
.ifgt 32 - 31
.byte 0
.endif
.ifgt 32 - 32
.byte 1
.endif
.ifgt 32 - 33
.byte 2
.endif
# CHECK-NOT: .byte 0
# CHECK: .byte 1
# CHECK: .byte 2
.ifle 32 - 31
.byte 0
.endif
.ifle 32 - 32
.byte 1
.endif
.ifle 32 - 33
.byte 2
.endif
# CHECK-NOT: .byte 0
# CHECK-NOT: .byte 1
# CHECK: .byte 2
.iflt 32 - 31
.byte 0
.endif
.iflt 32 - 32
.byte 1
.endif
.iflt 32 - 33
.byte 2
.endif
# CHECK: .byte 1
# CHECK-NOT: .byte 0
.ifne 32 - 32
.byte 0
.else
.byte 1
.endif

View File

@ -0,0 +1,7 @@
// RUN: not llvm-mc -n -triple i386-unknown-unknown %s 2> %t
// RUN: FileCheck < %t %s
.globl a
// CHECK: error: expected section directive before assembly directive
.long 0

Some files were not shown because too many files have changed in this diff Show More