summaryrefslogtreecommitdiff
diff options
authorColin Watson <[email protected]>2019-11-08 08:06:45 +0000
committerColin Watson <[email protected]>2019-11-08 08:06:45 +0000
commit8a245d5c1800627af4cefa99162a89c7a46d8842 (patch)
treea25875ed1beb58c23a750fc3616db8066d320808
parent136763a4cc9ca3a4f59d05b79eede2159d6f441e (diff)
downloadgrub-extras-master.tar.gz
915resolution: Fix build failure with GCC 9HEADmaster
GCC 9 has a new -Waddress-of-packed-member warning, enabled by default; set_mode trips over this by taking the addresses of members of the packed modeline structs. Use local variables to avoid this.
-rw-r--r--915resolution/915resolution.c37
1 files changed, 29 insertions, 8 deletions
diff --git a/915resolution/915resolution.c b/915resolution/915resolution.c
index 9a73d5f..0091a66 100644
--- a/915resolution/915resolution.c
+++ b/915resolution/915resolution.c
@@ -758,13 +758,23 @@ static void set_mode(vbios_map * map, cardinal mode, cardinal x, cardinal y, car
vbios_modeline_type2 * modeline = &res->modelines[j];
if (modeline->x1 == xprev && modeline->y1 == yprev) {
+ unsigned long clock;
+ word hsyncstart, hsyncend, hblank;
+ word vsyncstart, vsyncend, vblank;
+
modeline->x1 = modeline->x2 = x-1;
modeline->y1 = modeline->y2 = y-1;
- gtf_timings(x, y, freqs[j], &modeline->clock,
- &modeline->hsyncstart, &modeline->hsyncend,
- &modeline->hblank, &modeline->vsyncstart,
- &modeline->vsyncend, &modeline->vblank);
+ gtf_timings(x, y, freqs[j], &clock,
+ &hsyncstart, &hsyncend, &hblank,
+ &vsyncstart, &vsyncend, &vblank);
+ modeline->clock = clock;
+ modeline->hsyncstart = hsyncstart;
+ modeline->hsyncend = hsyncend;
+ modeline->hblank = hblank;
+ modeline->vsyncstart = vsyncstart;
+ modeline->vsyncend = vsyncend;
+ modeline->vblank = vblank;
if (htotal)
modeline->htotal = htotal;
@@ -790,13 +800,24 @@ static void set_mode(vbios_map * map, cardinal mode, cardinal x, cardinal y, car
vbios_modeline_type3 * modeline = &res->modelines[j];
if (modeline->x1 == xprev && modeline->y1 == yprev) {
+ unsigned long clock;
+ word hsyncstart, hsyncend, hblank;
+ word vsyncstart, vsyncend, vblank;
+
modeline->x1 = modeline->x2 = x-1;
modeline->y1 = modeline->y2 = y-1;
- gtf_timings(x, y, freqs[j], &modeline->clock,
- &modeline->hsyncstart, &modeline->hsyncend,
- &modeline->hblank, &modeline->vsyncstart,
- &modeline->vsyncend, &modeline->vblank);
+ gtf_timings(x, y, freqs[j], &clock,
+ &hsyncstart, &hsyncend, &hblank,
+ &vsyncstart, &vsyncend, &vblank);
+ modeline->clock = clock;
+ modeline->hsyncstart = hsyncstart;
+ modeline->hsyncend = hsyncend;
+ modeline->hblank = hblank;
+ modeline->vsyncstart = vsyncstart;
+ modeline->vsyncend = vsyncend;
+ modeline->vblank = vblank;
+
if (htotal)
modeline->htotal = htotal;
else