| # RUN: not llvm-mc -filetype=obj -triple=riscv64 -mattr=-relax %s -o /dev/null 2>&1 | FileCheck %s --check-prefixes=ERR,NORELAX --implicit-check-not=error: |
| # RUN: not llvm-mc -filetype=obj -triple=riscv64 -mattr=+relax %s -o /dev/null 2>&1 | FileCheck %s --check-prefixes=ERR,RELAX --implicit-check-not=error: |
| |
| a: |
| nop |
| b: |
| call foo@plt |
| c: |
| nop |
| d: |
| |
| .data |
| ## Positive subsection numbers |
| ## With relaxation, report an error as c-b is not an assemble-time constant. |
| # RELAX: :[[#@LINE+1]]:14: error: cannot evaluate subsection number |
| .subsection c-b |
| # RELAX: :[[#@LINE+1]]:14: error: cannot evaluate subsection number |
| .subsection d-b |
| # RELAX: :[[#@LINE+1]]:14: error: cannot evaluate subsection number |
| .subsection c-a |
| |
| .subsection b-a |
| .subsection d-c |
| |
| ## Negative subsection numbers |
| # NORELAX: :[[#@LINE+2]]:14: error: subsection number -8 is not within [0,2147483647] |
| # RELAX: :[[#@LINE+1]]:14: error: cannot evaluate subsection number |
| .subsection b-c |
| # NORELAX: :[[#@LINE+2]]:14: error: subsection number -12 is not within [0,2147483647] |
| # RELAX: :[[#@LINE+1]]:14: error: cannot evaluate subsection number |
| .subsection b-d |
| # NORELAX: :[[#@LINE+2]]:14: error: subsection number -12 is not within [0,2147483647] |
| # RELAX: :[[#@LINE+1]]:14: error: cannot evaluate subsection number |
| .subsection a-c |
| # ERR: :[[#@LINE+1]]:14: error: subsection number -4 is not within [0,2147483647] |
| .subsection a-b |
| # ERR: :[[#@LINE+1]]:14: error: subsection number -4 is not within [0,2147483647] |
| .subsection c-d |