forked from llvm/llvm-project
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[MC][RISCV] Check hasEmitNops before call shouldInsertExtraNopBytesFo…
…rCodeAlign (llvm#77236) The shouldInsertExtraNopBytesForCodeAlign() need STI to check whether relax is enabled or not. It is initialized when call setEmitNops. The setEmitNops may not be called in a section which has instructions but is not executable. In this case uninitialized STI will cause problems. Thus, check hasEmitNops before call it. Fixes: llvm#76552 (comment)
- Loading branch information
1 parent
b57159c
commit 7b45c54
Showing
2 changed files
with
26 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
## A label difference separated by an alignment directive, when the | ||
## referenced symbols are in a non-executable section with instructions, | ||
## should generate ADD/SUB relocations. | ||
## https://github.com/llvm/llvm-project/pull/76552 | ||
|
||
# RUN: llvm-mc --filetype=obj --triple=riscv64 --mattr=+relax %s \ | ||
# RUN: | llvm-readobj -r - | FileCheck --check-prefixes=CHECK,RELAX %s | ||
# RUN: llvm-mc --filetype=obj --triple=riscv64 --mattr=-relax %s \ | ||
# RUN: | llvm-readobj -r - | FileCheck %s | ||
|
||
.section ".dummy", "a" | ||
.L1: | ||
call func | ||
.p2align 3 | ||
.L2: | ||
.dword .L2 - .L1 | ||
|
||
# CHECK: Relocations [ | ||
# CHECK-NEXT: Section ({{.*}}) .rela.dummy { | ||
# CHECK-NEXT: 0x0 R_RISCV_CALL_PLT func 0x0 | ||
# RELAX-NEXT: 0x0 R_RISCV_RELAX - 0x0 | ||
# CHECK-NEXT: 0x8 R_RISCV_ADD64 .L2 0x0 | ||
# CHECK-NEXT: 0x8 R_RISCV_SUB64 .L1 0x0 | ||
# CHECK-NEXT: } | ||
# CHECK-NEXT: ] |