diff options
Diffstat (limited to 'validation')
| -rw-r--r-- | validation/eval/union-cast-no.c | 23 | ||||
| -rw-r--r-- | validation/eval/union-cast.c | 24 |
2 files changed, 47 insertions, 0 deletions
diff --git a/validation/eval/union-cast-no.c b/validation/eval/union-cast-no.c new file mode 100644 index 00000000..6ba38db8 --- /dev/null +++ b/validation/eval/union-cast-no.c @@ -0,0 +1,23 @@ +union u { + int i; + char x[8]; +}; + +static union u foo(int i) +{ + return (union u)i; +} + +static union u bar(long l) +{ + return (union u)l; +} + +/* + * check-name: union-cast-no + * check-command: sparse -Wno-union-cast $file + * + * check-error-start +eval/union-cast-no.c:13:17: warning: cast to non-scalar + * check-error-end + */ diff --git a/validation/eval/union-cast.c b/validation/eval/union-cast.c new file mode 100644 index 00000000..5bee9e0d --- /dev/null +++ b/validation/eval/union-cast.c @@ -0,0 +1,24 @@ +union u { + int i; + char x[8]; +}; + +static union u foo(int a) +{ + return (union u)a; +} + +static union u bar(long a) +{ + return (union u)a; +} + +/* + * check-name: union-cast + * check-command: sparse -Wunion-cast $file + * + * check-error-start +eval/union-cast.c:8:17: warning: cast to union type +eval/union-cast.c:13:17: warning: cast to non-scalar + * check-error-end + */ |
