diff options
author | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2019-12-05 03:30:37 +0100 |
---|---|---|
committer | Luc Van Oostenryck <luc.vanoostenryck@gmail.com> | 2019-12-10 23:26:15 +0100 |
commit | 3b9aa9647f5f4f0aac3dc4218128b94281a1264c (patch) | |
tree | d15dfe776a1714a9c84e2cde71ea9e064cf2f2b2 | |
parent | 9b2efc158c5c9700ffe355c59356879df7c9cc12 (diff) | |
download | sparse-3b9aa9647f5f4f0aac3dc4218128b94281a1264c.tar.gz |
split testcases for type punning & constant initializer expansion
Several issues were covered by the same testcase.
Fix this by splitting the testcases.
Also, rename these testcases to a more descriptive name.
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
-rw-r--r-- | validation/expand/constant-union-flt2int.c | 21 | ||||
-rw-r--r-- | validation/expand/constant-union-int2flt.c | 20 | ||||
-rw-r--r-- | validation/expand/constant-union-size.c (renamed from validation/bug-expand-union0.c) | 6 | ||||
-rw-r--r-- | validation/memops/type-punning-flt2int.c (renamed from validation/bug-expand-union1.c) | 4 | ||||
-rw-r--r-- | validation/memops/type-punning-int2flt.c | 20 |
5 files changed, 66 insertions, 5 deletions
diff --git a/validation/expand/constant-union-flt2int.c b/validation/expand/constant-union-flt2int.c new file mode 100644 index 00000000..1c8f480b --- /dev/null +++ b/validation/expand/constant-union-flt2int.c @@ -0,0 +1,21 @@ +union u { + int i; + float f; +}; + +static int foo(void) +{ + union u u = { .f = 0.123 }; + return u.i; +} + +/* + * check-name: constant-union-float-to-int + * check description: must not infer the int value from the float + * check-command: test-linearize -fdump-ir $file + * check-known-to-fail + * + * check-output-ignore + * check-output-pattern(1): setfval\\. + * check-output-pattern(1): load\\. + */ diff --git a/validation/expand/constant-union-int2flt.c b/validation/expand/constant-union-int2flt.c new file mode 100644 index 00000000..ff0a642a --- /dev/null +++ b/validation/expand/constant-union-int2flt.c @@ -0,0 +1,20 @@ +union u { + int i; + float f; +}; + +static float foo(void) +{ + union u u = { .i = 3 }; + return u.f; +} + +/* + * check-name: constant-union-int-to-float + * check description: must not infer the float value from the int + * check-command: test-linearize -fdump-ir $file + * check-known-to-fail + * + * check-output-ignore + * check-output-pattern(1): load\\. + */ diff --git a/validation/bug-expand-union0.c b/validation/expand/constant-union-size.c index dd6d60c3..b6c3ac75 100644 --- a/validation/bug-expand-union0.c +++ b/validation/expand/constant-union-size.c @@ -10,9 +10,9 @@ static int foo(void) } /* - * check-name: bug-expand-union - * check description: must not infer the value from the float - * check-command: test-linearize $file + * check-name: constant-union-size + * check description: the size of the initializer doesn't match + * check-command: test-linearize -fdump-ir $file * check-known-to-fail * * check-output-ignore diff --git a/validation/bug-expand-union1.c b/validation/memops/type-punning-flt2int.c index 582a1f4f..a76c6c1d 100644 --- a/validation/bug-expand-union1.c +++ b/validation/memops/type-punning-flt2int.c @@ -10,8 +10,8 @@ static int foo(void) } /* - * check-name: bug-expand-union - * check description: must not infer the value from the float + * check-name: type-punning-float-to-int + * check description: must not infer the int value from the float * check-command: test-linearize $file * check-known-to-fail * diff --git a/validation/memops/type-punning-int2flt.c b/validation/memops/type-punning-int2flt.c new file mode 100644 index 00000000..c05ce252 --- /dev/null +++ b/validation/memops/type-punning-int2flt.c @@ -0,0 +1,20 @@ +union u { + int i; + float f; +}; + +static float foo(void) +{ + union u u = { .i = 3 }; + return u.f; +} + +/* + * check-name: type-punning-int-to-float + * check description: must not infer the float value from the int + * check-command: test-linearize $file + * check-known-to-fail + * + * check-output-ignore + * check-output-contains: load\\. + */ |