mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 11:42:57 +01:00
387a773132
The .end <symbol> directive for MIPS marks the end of a symbol and sets the symbol's size. Previously, the corresponding emitDirective handler asserted that a function's size could be evaluated to an absolute value at that point in time. This cannot be done with when directives like .align have been encountered, instead set the function's size to the corresponding symbolic expression and let ELFObjectWriter resolve the expression to an absolute value. This avoids a redundant call to evaluateAsAbsolute. llvm-svn: 294012
23 lines
412 B
ArmAsm
23 lines
412 B
ArmAsm
# RUN: llvm-mc -arch=mips -mcpu=mips32 -filetype=obj %s -o - | \
|
|
# RUN: llvm-readobj -symbols | FileCheck %s
|
|
|
|
# Check that the assembler doesn't choke on .align between a symbol and the
|
|
# .end directive.
|
|
|
|
.text
|
|
.globl a
|
|
.p2align 2
|
|
.type a,@function
|
|
.ent a
|
|
a:
|
|
addu $2, $5, $4
|
|
.align 4
|
|
jr $ra
|
|
.end a
|
|
$func_end0:
|
|
.size a, ($func_end0)-a
|
|
|
|
# CHECK: Name: a
|
|
# CHECK-NEXT: Value: 0x0
|
|
# CHECK-NEXT: Size: 24
|