Skip to content

Commit 354d47a

Browse files
amaxczXrXr
authored andcommitted
IBF: Avoid unaligned load on 32 bit platforms
[Bug #21569]
1 parent 5e817f9 commit 354d47a

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

compile.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14097,8 +14097,10 @@ ibf_dump_object_float(struct ibf_dump *dump, VALUE obj)
1409714097
static VALUE
1409814098
ibf_load_object_float(const struct ibf_load *load, const struct ibf_object_header *header, ibf_offset_t offset)
1409914099
{
14100-
const double *dblp = IBF_OBJBODY(double, offset);
14101-
return DBL2NUM(*dblp);
14100+
double d;
14101+
/* Avoid unaligned VFP load on ARMv7; IBF payload may be unaligned (C99 6.3.2.3 p7). */
14102+
memcpy(&d, IBF_OBJBODY(double, offset), sizeof(d));
14103+
return DBL2NUM(d);
1410214104
}
1410314105

1410414106
static void

0 commit comments

Comments
 (0)