[Bug c/107339] New: RISC V -mstrict-align
yy172179 at 163 dot com
gcc-bugzilla@gcc.gnu.org
Fri Oct 21 03:30:37 GMT 2022
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107339
Bug ID: 107339
Summary: RISC V -mstrict-align
Product: gcc
Version: 12.2.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: yy172179 at 163 dot com
Target Milestone: ---
When I use GCC12 to compile the files with - march=rv32imac - mabi=ilp32 -
mstrict align - c option,then objdump it.I found that the assembly code will
use “LW” instruction to access Non aligned address. Causing hardware errors。
Here's an example
#include<stdio.h>
typedef struct __attribute__((packed)) misalign
{
uint8_t rseq[16];
uint8_t type;
uint8_t cnt;
} misalign_t;
void tttt (misalign_t* t){
printf("%x\n",(*(const uint32_t*)&t->rseq[0]));
printf("%x\n",(*(const uint32_t*)&t->rseq[1]));
}
int main()
{
misalign_t abc;
misalign_t *test=&abc;
tttt(test);
while(1);
}
What compilation options or settings can I use to avoid this situation, or is
this a bug??
More information about the Gcc-bugs
mailing list