aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/validation/backend/symaddr.c
diff options
authorLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2017-03-03 08:45:36 +0100
committerLuc Van Oostenryck <luc.vanoostenryck@gmail.com>2017-11-17 10:04:37 +0100
commit2d002eb75bfb092f6fed3ba600adfa8e7c13128c (patch)
treea79f97860dffba13312d0027c1556f56cdc21cad /validation/backend/symaddr.c
parentaccf7112191ba29f0366c8a10332a8a63644db50 (diff)
downloadsparse-dev-2d002eb75bfb092f6fed3ba600adfa8e7c13128c.tar.gz
llvm: give correct type to binops
Pointer arithmetic and/or simplification can mixup pointer and integer types. Fix this by adding casts before all non-floating point binops and adjust the result type if needed to match the instructio. Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Diffstat (limited to 'validation/backend/symaddr.c')
-rw-r--r--validation/backend/symaddr.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/validation/backend/symaddr.c b/validation/backend/symaddr.c
index 17c404f0..8b450111 100644
--- a/validation/backend/symaddr.c
+++ b/validation/backend/symaddr.c
@@ -10,7 +10,9 @@ void lfoo(int *p, int a)
useip(p);
useip(larra);
useip(larrb + 1);
+ useip(larrc + a);
useip(&larrd[1]);
+ useip(&larre[a]);
useia(&larrf);
}
@@ -22,7 +24,9 @@ void sfoo(int *p, int a)
useip(&s);
useip(sarra);
useip(sarrb + 1);
+ useip(sarrc + a);
useip(&sarrd[1]);
+ useip(&sarre[a]);
useia(&sarrf);
usevp(sfun);
usevp(&spun);
@@ -36,7 +40,9 @@ void xfoo(int *p, int a)
useip(&x);
useip(xarra);
useip(xarrb + 1);
+ useip(xarrc + a);
useip(&xarrd[1]);
+ useip(&xarre[a]);
useia(&xarrf);
usevp(xfun);
usevp(&xpun);
@@ -50,7 +56,9 @@ void gfoo(int *p, int a)
useip(&g);
useip(garra);
useip(garrb + 1);
+ useip(garrc + a);
useip(&garrd[1]);
+ useip(&garre[a]);
useia(&garrf);
usevp(gfun);
usevp(&gpun);