diff options
Diffstat (limited to 'validation/expand')
| -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 | 21 |
3 files changed, 62 insertions, 0 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/expand/constant-union-size.c b/validation/expand/constant-union-size.c new file mode 100644 index 00000000..b6c3ac75 --- /dev/null +++ b/validation/expand/constant-union-size.c @@ -0,0 +1,21 @@ +union u { + char c; + float f; +}; + +static int foo(void) +{ + union u u = { .f = 0.123 }; + return u.c; +} + +/* + * 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 + * check-output-contains: load\\. + * check-output-excludes: ret\\..*\\$ + */ |
