xref: /llvm-project/llvm/test/MC/RISCV/directive-variant_cc.s (revision 3a881217324d15b7b1077ff7121587b9e9c0e272)
1// RUN: llvm-mc -triple riscv64 -filetype obj -o - %s | llvm-readobj --symbols - | FileCheck %s
2// RUN: llvm-mc -triple riscv64 -filetype obj -defsym=OBJ=1 -o - %s | llvm-readelf -s - | FileCheck %s --check-prefix=OBJ
3// RUN: not llvm-mc -triple riscv64 -filetype asm -defsym=ERR=1 -o - %s 2>&1 | FileCheck %s --check-prefix=ERR
4
5.text
6.variant_cc local
7local:
8
9// CHECK: Name: local
10// CHECK: Other [ (0x80)
11
12.ifdef OBJ
13/// Binding directive before .variant_cc.
14.global def1
15.variant_cc def1
16def1:
17
18/// Binding directive after .variant_cc.
19.variant_cc def2
20.weak def2
21def2:
22
23.globl alias_def1
24.set alias_def1, def1
25
26.variant_cc undef
27
28// OBJ:      NOTYPE LOCAL  DEFAULT [VARIANT_CC] [[#]] local
29// OBJ-NEXT: NOTYPE GLOBAL DEFAULT [VARIANT_CC] [[#]] def1
30// OBJ-NEXT: NOTYPE WEAK   DEFAULT [VARIANT_CC] [[#]] def2
31// OBJ-NEXT: NOTYPE GLOBAL DEFAULT              [[#]] alias_def1
32// OBJ-NEXT: NOTYPE GLOBAL DEFAULT [VARIANT_CC] UND   undef
33.endif
34
35.ifdef ERR
36.variant_cc
37// ERR: [[#@LINE-1]]:12: error: expected symbol name
38
39.global fox
40.variant_cc fox bar
41// ERR: [[#@LINE-1]]:17: error: expected newline
42.endif
43