1# RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=-relax %s -o %t.o 2# RUN: llvm-readelf -sr %t.o | FileCheck %s --check-prefix=NORELAX 3# RUN: llvm-dwarfdump --debug-frame %t.o 2>&1 \ 4# RUN: | FileCheck -check-prefix=CHECK-DWARFDUMP %s 5# RUN: llvm-mc -filetype=obj -triple riscv32 -mattr=+relax %s -o %t.relax.o 6# RUN: llvm-readelf -sr %t.relax.o | FileCheck %s --check-prefix=RELAX 7 8# NORELAX: Relocation section '.rela.text1' at offset {{.*}} contains 1 entries: 9# NORELAX-NEXT: Offset Info Type Sym. Value Symbol's Name + Addend 10# NORELAX-NEXT: 00000000 00000313 R_RISCV_CALL_PLT 00000004 .L0 + 0 11# NORELAX-EMPTY: 12# NORELAX-NEXT: Relocation section '.rela.eh_frame' at offset {{.*}} contains 1 entries: 13# NORELAX: Offset Info Type Sym. Value Symbol's Name + Addend 14# NORELAX-NEXT: 0000001c 00000139 R_RISCV_32_PCREL 00000000 .L0 + 0 15# NORELAX-EMPTY: 16# NORELAX: Symbol table '.symtab' contains 13 entries: 17# NORELAX-NEXT: Num: Value Size Type Bind Vis Ndx Name 18# NORELAX-NEXT: 0: 00000000 0 NOTYPE LOCAL DEFAULT UND 19# NORELAX-NEXT: 1: 00000000 0 NOTYPE LOCAL DEFAULT 2 .L0 {{$}} 20# NORELAX: 3: 00000004 0 NOTYPE LOCAL DEFAULT 2 .L0{{$}} 21# NORELAX-NOT: .L0 22 23# RELAX: Relocation section '.rela.eh_frame' at offset {{.*}} contains 5 entries: 24# RELAX-NEXT: Offset Info Type Sym. Value Symbol's Name + Addend 25# RELAX-NEXT: 0000001c 00000139 R_RISCV_32_PCREL 00000000 .L0 + 0 26# RELAX-NEXT: 00000020 00000c23 R_RISCV_ADD32 0001017a .L0 + 0 27# RELAX-NEXT: 00000020 00000127 R_RISCV_SUB32 00000000 .L0 + 0 28# RELAX-NEXT: 00000035 00000b35 R_RISCV_SET6 00010176 .L0 + 0 29# RELAX-NEXT: 00000035 00000934 R_RISCV_SUB6 0001016e .L0 + 0 30# RELAX-EMPTY: 31# RELAX: Symbol table '.symtab' contains 16 entries: 32# RELAX-NEXT: Num: Value Size Type Bind Vis Ndx Name 33# RELAX-NEXT: 0: 00000000 0 NOTYPE LOCAL DEFAULT UND 34# RELAX-NEXT: 1: 00000000 0 NOTYPE LOCAL DEFAULT 2 .L0 {{$}} 35# RELAX: 3: 00000004 0 NOTYPE LOCAL DEFAULT 2 .L0{{$}} 36# RELAX: 9: 0001016e 0 NOTYPE LOCAL DEFAULT 2 .L0 {{$}} 37# RELAX: 11: 00010176 0 NOTYPE LOCAL DEFAULT 2 .L0 {{$}} 38# RELAX: 12: 0001017a 0 NOTYPE LOCAL DEFAULT 2 .L0 {{$}} 39 40# CHECK-DWARFDUMP: DW_CFA_advance_loc1: 104 41# CHECK-DWARFDUMP-NEXT: DW_CFA_def_cfa_offset: +8 42# CHECK-DWARFDUMP-NEXT: DW_CFA_advance_loc2: 259 43# CHECK-DWARFDUMP-NEXT: DW_CFA_def_cfa_offset: +8 44# CHECK-DWARFDUMP-NEXT: DW_CFA_advance_loc4: 65539 45# CHECK-DWARFDUMP-NEXT: DW_CFA_def_cfa_offset: +8 46# CHECK-DWARFDUMP-NEXT: DW_CFA_advance_loc: 10 47# CHECK-DWARFDUMP-NEXT: DW_CFA_def_cfa_offset: +8 48 .text 49 .globl test # -- Begin function test 50 .p2align 1 51 .type test,@function 52test: 53 .cfi_startproc 54 nop 55## This looks similar to fake label names ".L0 ". Even if this is ".L0 ", 56## the assembler will not conflate it with fake labels. 57.L0: 58 .zero 100, 0x90 59 .cfi_def_cfa_offset 8 60 nop 61 .zero 255, 0x90 62 .cfi_def_cfa_offset 8 63 nop 64 .zero 65535, 0x90 65 .cfi_def_cfa_offset 8 66 nop 67 .p2align 3 68 .cfi_def_cfa_offset 8 69 nop 70 .cfi_endproc 71 72.section .text1,"ax" 73call .L0 74