From c48cb4399477d53ff3af7c5809aa1e8a0dc05be9 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Sun, 28 Nov 2004 02:16:57 +0000 Subject: [PATCH] builtin-choose-expr-2.c, [...]: New tests. * gcc.dg/builtin-choose-expr-2.c, gcc.dg/cast-1.c, gcc.dg/cast-2.c, gcc.dg/cast-3.c, gcc.dg/format/opt-1.c, gcc.dg/format/opt-2.c, gcc.dg/format/opt-3.c, gcc.dg/format/opt-4.c, gcc.dg/format/opt-5.c, gcc.dg/format/opt-6.c, gcc.dg/pointer-arith-5.c, gcc.dg/pointer-arith-6.c, gcc.dg/pointer-arith-7.c, gcc.dg/pointer-arith-8.c: New tests. From-SVN: r91405 --- gcc/testsuite/ChangeLog | 10 +++++++ gcc/testsuite/gcc.dg/builtin-choose-expr-2.c | 12 ++++++++ gcc/testsuite/gcc.dg/cast-1.c | 41 ++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/cast-2.c | 41 ++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/cast-3.c | 41 ++++++++++++++++++++++++++++ gcc/testsuite/gcc.dg/format/opt-1.c | 7 +++++ gcc/testsuite/gcc.dg/format/opt-2.c | 7 +++++ gcc/testsuite/gcc.dg/format/opt-3.c | 7 +++++ gcc/testsuite/gcc.dg/format/opt-4.c | 7 +++++ gcc/testsuite/gcc.dg/format/opt-5.c | 7 +++++ gcc/testsuite/gcc.dg/format/opt-6.c | 7 +++++ gcc/testsuite/gcc.dg/pointer-arith-5.c | 17 ++++++++++++ gcc/testsuite/gcc.dg/pointer-arith-6.c | 17 ++++++++++++ gcc/testsuite/gcc.dg/pointer-arith-7.c | 17 ++++++++++++ gcc/testsuite/gcc.dg/pointer-arith-8.c | 17 ++++++++++++ 15 files changed, 255 insertions(+) create mode 100644 gcc/testsuite/gcc.dg/builtin-choose-expr-2.c create mode 100644 gcc/testsuite/gcc.dg/cast-1.c create mode 100644 gcc/testsuite/gcc.dg/cast-2.c create mode 100644 gcc/testsuite/gcc.dg/cast-3.c create mode 100644 gcc/testsuite/gcc.dg/format/opt-1.c create mode 100644 gcc/testsuite/gcc.dg/format/opt-2.c create mode 100644 gcc/testsuite/gcc.dg/format/opt-3.c create mode 100644 gcc/testsuite/gcc.dg/format/opt-4.c create mode 100644 gcc/testsuite/gcc.dg/format/opt-5.c create mode 100644 gcc/testsuite/gcc.dg/format/opt-6.c create mode 100644 gcc/testsuite/gcc.dg/pointer-arith-5.c create mode 100644 gcc/testsuite/gcc.dg/pointer-arith-6.c create mode 100644 gcc/testsuite/gcc.dg/pointer-arith-7.c create mode 100644 gcc/testsuite/gcc.dg/pointer-arith-8.c diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog index f1dd94c..bb87d09 100644 --- a/gcc/testsuite/ChangeLog +++ b/gcc/testsuite/ChangeLog @@ -1,3 +1,13 @@ +2004-11-28 Joseph S. Myers + + * gcc.dg/builtin-choose-expr-2.c, gcc.dg/cast-1.c, + gcc.dg/cast-2.c, gcc.dg/cast-3.c, gcc.dg/format/opt-1.c, + gcc.dg/format/opt-2.c, gcc.dg/format/opt-3.c, + gcc.dg/format/opt-4.c, gcc.dg/format/opt-5.c, + gcc.dg/format/opt-6.c, gcc.dg/pointer-arith-5.c, + gcc.dg/pointer-arith-6.c, gcc.dg/pointer-arith-7.c, + gcc.dg/pointer-arith-8.c: New tests. + 2004-11-27 Bud Davis PR fortran/18364 diff --git a/gcc/testsuite/gcc.dg/builtin-choose-expr-2.c b/gcc/testsuite/gcc.dg/builtin-choose-expr-2.c new file mode 100644 index 0000000..2551fdb --- /dev/null +++ b/gcc/testsuite/gcc.dg/builtin-choose-expr-2.c @@ -0,0 +1,12 @@ +/* Test diagnostic for invalid use of __builtin_choose_expr. */ +/* Origin: Joseph Myers */ +/* { dg-do compile } */ +/* { dg-options "" } */ + +int a, b, c, d; + +void +f (void) +{ + a = __builtin_choose_expr (b, c, d); /* { dg-error "error: first argument to '__builtin_choose_expr' not a constant" } */ +} diff --git a/gcc/testsuite/gcc.dg/cast-1.c b/gcc/testsuite/gcc.dg/cast-1.c new file mode 100644 index 0000000..e3d79db --- /dev/null +++ b/gcc/testsuite/gcc.dg/cast-1.c @@ -0,0 +1,41 @@ +/* Test diagnostics for bad or doubtful casts. Test with no special + options. */ +/* Origin: Joseph Myers */ +/* { dg-do compile } */ +/* { dg-options "-std=gnu99" } */ + +struct s { int a; } sv; +union u { int a; } uv; +int i; +long l; +char c; +void *p; +float fv; + +void +f (void) +{ + (int []) p; /* { dg-error "error: cast specifies array type" } */ + (int ()) p; /* { dg-error "error: cast specifies function type" } */ + (struct s) sv; + (union u) uv; + (struct s) i; /* { dg-error "error: conversion to non-scalar type requested" } */ + (union u) i; + (union u) l; /* { dg-error "error: cast to union type from type not present in union" } */ + (int) sv; /* { dg-error "error: aggregate value used where an integer was expected" } */ + (int) uv; /* { dg-error "error: aggregate value used where an integer was expected" } */ + (float) sv; /* { dg-error "error: aggregate value used where a float was expected" } */ + (float) uv; /* { dg-error "error: aggregate value used where a float was expected" } */ + (_Complex double) sv; /* { dg-error "error: aggregate value used where a complex was expected" } */ + (_Complex double) uv; /* { dg-error "error: aggregate value used where a complex was expected" } */ + (void *) sv; /* { dg-error "error: cannot convert to a pointer type" } */ + (void *) uv; /* { dg-error "error: cannot convert to a pointer type" } */ + (_Bool) sv; /* { dg-error "error: used struct type value where scalar is required" } */ + (_Bool) uv; /* { dg-error "error: used union type value where scalar is required" } */ + (void) sv; + (const void) uv; + (void *) c; /* { dg-warning "warning: cast to pointer from integer of different size" } */ + (void *) (char) 1; + (char) p; /* { dg-warning "warning: cast from pointer to integer of different size" } */ + (char) (void *) 1; +} diff --git a/gcc/testsuite/gcc.dg/cast-2.c b/gcc/testsuite/gcc.dg/cast-2.c new file mode 100644 index 0000000..0f84c22 --- /dev/null +++ b/gcc/testsuite/gcc.dg/cast-2.c @@ -0,0 +1,41 @@ +/* Test diagnostics for bad or doubtful casts. Test with + -pedantic. */ +/* Origin: Joseph Myers */ +/* { dg-do compile } */ +/* { dg-options "-std=gnu99 -pedantic" } */ + +struct s { int a; } sv; +union u { int a; } uv; +int i; +long l; +char c; +void *p; +float fv; + +void +f (void) +{ + (int []) p; /* { dg-error "error: cast specifies array type" } */ + (int ()) p; /* { dg-error "error: cast specifies function type" } */ + (struct s) sv; /* { dg-warning "warning: ISO C forbids casting nonscalar to the same type" } */ + (union u) uv; /* { dg-warning "warning: ISO C forbids casting nonscalar to the same type" } */ + (struct s) i; /* { dg-error "error: conversion to non-scalar type requested" } */ + (union u) i; /* { dg-warning "warning: ISO C forbids casts to union type" } */ + (union u) l; /* { dg-error "error: cast to union type from type not present in union" } */ + (int) sv; /* { dg-error "error: aggregate value used where an integer was expected" } */ + (int) uv; /* { dg-error "error: aggregate value used where an integer was expected" } */ + (float) sv; /* { dg-error "error: aggregate value used where a float was expected" } */ + (float) uv; /* { dg-error "error: aggregate value used where a float was expected" } */ + (_Complex double) sv; /* { dg-error "error: aggregate value used where a complex was expected" } */ + (_Complex double) uv; /* { dg-error "error: aggregate value used where a complex was expected" } */ + (void *) sv; /* { dg-error "error: cannot convert to a pointer type" } */ + (void *) uv; /* { dg-error "error: cannot convert to a pointer type" } */ + (_Bool) sv; /* { dg-error "error: used struct type value where scalar is required" } */ + (_Bool) uv; /* { dg-error "error: used union type value where scalar is required" } */ + (void) sv; + (const void) uv; + (void *) c; /* { dg-warning "warning: cast to pointer from integer of different size" } */ + (void *) (char) 1; + (char) p; /* { dg-warning "warning: cast from pointer to integer of different size" } */ + (char) (void *) 1; +} diff --git a/gcc/testsuite/gcc.dg/cast-3.c b/gcc/testsuite/gcc.dg/cast-3.c new file mode 100644 index 0000000..656bf6d --- /dev/null +++ b/gcc/testsuite/gcc.dg/cast-3.c @@ -0,0 +1,41 @@ +/* Test diagnostics for bad or doubtful casts. Test with + -pedantic-errors. */ +/* Origin: Joseph Myers */ +/* { dg-do compile } */ +/* { dg-options "-std=gnu99 -pedantic-errors" } */ + +struct s { int a; } sv; +union u { int a; } uv; +int i; +long l; +char c; +void *p; +float fv; + +void +f (void) +{ + (int []) p; /* { dg-error "error: cast specifies array type" } */ + (int ()) p; /* { dg-error "error: cast specifies function type" } */ + (struct s) sv; /* { dg-error "error: ISO C forbids casting nonscalar to the same type" } */ + (union u) uv; /* { dg-error "error: ISO C forbids casting nonscalar to the same type" } */ + (struct s) i; /* { dg-error "error: conversion to non-scalar type requested" } */ + (union u) i; /* { dg-error "error: ISO C forbids casts to union type" } */ + (union u) l; /* { dg-error "error: cast to union type from type not present in union" } */ + (int) sv; /* { dg-error "error: aggregate value used where an integer was expected" } */ + (int) uv; /* { dg-error "error: aggregate value used where an integer was expected" } */ + (float) sv; /* { dg-error "error: aggregate value used where a float was expected" } */ + (float) uv; /* { dg-error "error: aggregate value used where a float was expected" } */ + (_Complex double) sv; /* { dg-error "error: aggregate value used where a complex was expected" } */ + (_Complex double) uv; /* { dg-error "error: aggregate value used where a complex was expected" } */ + (void *) sv; /* { dg-error "error: cannot convert to a pointer type" } */ + (void *) uv; /* { dg-error "error: cannot convert to a pointer type" } */ + (_Bool) sv; /* { dg-error "error: used struct type value where scalar is required" } */ + (_Bool) uv; /* { dg-error "error: used union type value where scalar is required" } */ + (void) sv; + (const void) uv; + (void *) c; /* { dg-warning "warning: cast to pointer from integer of different size" } */ + (void *) (char) 1; + (char) p; /* { dg-warning "warning: cast from pointer to integer of different size" } */ + (char) (void *) 1; +} diff --git a/gcc/testsuite/gcc.dg/format/opt-1.c b/gcc/testsuite/gcc.dg/format/opt-1.c new file mode 100644 index 0000000..7bdb55b --- /dev/null +++ b/gcc/testsuite/gcc.dg/format/opt-1.c @@ -0,0 +1,7 @@ +/* Test diagnostics for options used on their own without + -Wformat. -Wformat-extra-args. */ +/* Origin: Joseph Myers */ +/* { dg-do compile } */ +/* { dg-options "-Wformat-extra-args" } */ + +/* { dg-warning "warning: -Wformat-extra-args ignored without -Wformat" "ignored" { target *-*-* } 0 } */ diff --git a/gcc/testsuite/gcc.dg/format/opt-2.c b/gcc/testsuite/gcc.dg/format/opt-2.c new file mode 100644 index 0000000..5a8f703 --- /dev/null +++ b/gcc/testsuite/gcc.dg/format/opt-2.c @@ -0,0 +1,7 @@ +/* Test diagnostics for options used on their own without + -Wformat. -Wformat-nonliteral. */ +/* Origin: Joseph Myers */ +/* { dg-do compile } */ +/* { dg-options "-Wformat-nonliteral" } */ + +/* { dg-warning "warning: -Wformat-nonliteral ignored without -Wformat" "ignored" { target *-*-* } 0 } */ diff --git a/gcc/testsuite/gcc.dg/format/opt-3.c b/gcc/testsuite/gcc.dg/format/opt-3.c new file mode 100644 index 0000000..7722172 --- /dev/null +++ b/gcc/testsuite/gcc.dg/format/opt-3.c @@ -0,0 +1,7 @@ +/* Test diagnostics for options used on their own without + -Wformat. -Wformat-security. */ +/* Origin: Joseph Myers */ +/* { dg-do compile } */ +/* { dg-options "-Wformat-security" } */ + +/* { dg-warning "warning: -Wformat-security ignored without -Wformat" "ignored" { target *-*-* } 0 } */ diff --git a/gcc/testsuite/gcc.dg/format/opt-4.c b/gcc/testsuite/gcc.dg/format/opt-4.c new file mode 100644 index 0000000..b526d4f --- /dev/null +++ b/gcc/testsuite/gcc.dg/format/opt-4.c @@ -0,0 +1,7 @@ +/* Test diagnostics for options used on their own without + -Wformat. -Wformat-y2k. */ +/* Origin: Joseph Myers */ +/* { dg-do compile } */ +/* { dg-options "-Wformat-y2k" } */ + +/* { dg-warning "warning: -Wformat-y2k ignored without -Wformat" "ignored" { target *-*-* } 0 } */ diff --git a/gcc/testsuite/gcc.dg/format/opt-5.c b/gcc/testsuite/gcc.dg/format/opt-5.c new file mode 100644 index 0000000..b7135fb --- /dev/null +++ b/gcc/testsuite/gcc.dg/format/opt-5.c @@ -0,0 +1,7 @@ +/* Test diagnostics for options used on their own without + -Wformat. -Wformat-zero-length. */ +/* Origin: Joseph Myers */ +/* { dg-do compile } */ +/* { dg-options "-Wformat-zero-length" } */ + +/* { dg-warning "warning: -Wformat-zero-length ignored without -Wformat" "ignored" { target *-*-* } 0 } */ diff --git a/gcc/testsuite/gcc.dg/format/opt-6.c b/gcc/testsuite/gcc.dg/format/opt-6.c new file mode 100644 index 0000000..140da30 --- /dev/null +++ b/gcc/testsuite/gcc.dg/format/opt-6.c @@ -0,0 +1,7 @@ +/* Test diagnostics for options used on their own without + -Wformat. -Wmissing-format-attribute. */ +/* Origin: Joseph Myers */ +/* { dg-do compile } */ +/* { dg-options "-Wmissing-format-attribute" } */ + +/* { dg-warning "warning: -Wmissing-format-attribute ignored without -Wformat" "ignored" { target *-*-* } 0 } */ diff --git a/gcc/testsuite/gcc.dg/pointer-arith-5.c b/gcc/testsuite/gcc.dg/pointer-arith-5.c new file mode 100644 index 0000000..47564c0 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pointer-arith-5.c @@ -0,0 +1,17 @@ +/* Test diagnostics for sizeof on void and function types. Test with + no special options. */ +/* Origin: Joseph Myers */ +/* { dg-do compile } */ +/* { dg-options "" } */ + +extern const void v; +void f(void); + +void +g (void) +{ + sizeof (v); + sizeof (void); + sizeof (f); + sizeof (void (void)); +} diff --git a/gcc/testsuite/gcc.dg/pointer-arith-6.c b/gcc/testsuite/gcc.dg/pointer-arith-6.c new file mode 100644 index 0000000..18cd185 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pointer-arith-6.c @@ -0,0 +1,17 @@ +/* Test diagnostics for sizeof on void and function types. Test with + -Wpointer-arith. */ +/* Origin: Joseph Myers */ +/* { dg-do compile } */ +/* { dg-options "-Wpointer-arith" } */ + +extern const void v; +void f(void); + +void +g (void) +{ + sizeof (v); /* { dg-warning "warning: invalid application of 'sizeof' to a void type" } */ + sizeof (void); /* { dg-warning "warning: invalid application of 'sizeof' to a void type" } */ + sizeof (f); /* { dg-warning "warning: invalid application of 'sizeof' to a function type" } */ + sizeof (void (void)); /* { dg-warning "warning: invalid application of 'sizeof' to a function type" } */ +} diff --git a/gcc/testsuite/gcc.dg/pointer-arith-7.c b/gcc/testsuite/gcc.dg/pointer-arith-7.c new file mode 100644 index 0000000..73a9b05 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pointer-arith-7.c @@ -0,0 +1,17 @@ +/* Test diagnostics for sizeof on void and function types. Test with + -pedantic. */ +/* Origin: Joseph Myers */ +/* { dg-do compile } */ +/* { dg-options "-pedantic" } */ + +extern const void v; +void f(void); + +void +g (void) +{ + sizeof (v); /* { dg-warning "warning: invalid application of 'sizeof' to a void type" } */ + sizeof (void); /* { dg-warning "warning: invalid application of 'sizeof' to a void type" } */ + sizeof (f); /* { dg-warning "warning: invalid application of 'sizeof' to a function type" } */ + sizeof (void (void)); /* { dg-warning "warning: invalid application of 'sizeof' to a function type" } */ +} diff --git a/gcc/testsuite/gcc.dg/pointer-arith-8.c b/gcc/testsuite/gcc.dg/pointer-arith-8.c new file mode 100644 index 0000000..96d4c33 --- /dev/null +++ b/gcc/testsuite/gcc.dg/pointer-arith-8.c @@ -0,0 +1,17 @@ +/* Test diagnostics for sizeof on void and function types. Test with + -pedantic-errors. */ +/* Origin: Joseph Myers */ +/* { dg-do compile } */ +/* { dg-options "-pedantic-errors" } */ + +extern const void v; +void f(void); + +void +g (void) +{ + sizeof (v); /* { dg-error "error: invalid application of 'sizeof' to a void type" } */ + sizeof (void); /* { dg-error "error: invalid application of 'sizeof' to a void type" } */ + sizeof (f); /* { dg-error "error: invalid application of 'sizeof' to a function type" } */ + sizeof (void (void)); /* { dg-error "error: invalid application of 'sizeof' to a function type" } */ +} -- 2.7.4