Mercurial > hg > CbC > CbC_gcc
diff gcc/testsuite/g++.dg/plugin/diagnostic-test-expressions-1.C @ 131:84e7813d76e9
gcc-8.2
author | mir3636 |
---|---|
date | Thu, 25 Oct 2018 07:37:49 +0900 |
parents | 04ced10e8804 |
children | 1830386684a0 |
line wrap: on
line diff
--- a/gcc/testsuite/g++.dg/plugin/diagnostic-test-expressions-1.C Fri Oct 27 22:46:09 2017 +0900 +++ b/gcc/testsuite/g++.dg/plugin/diagnostic-test-expressions-1.C Thu Oct 25 07:37:49 2018 +0900 @@ -19,6 +19,113 @@ int global; +void test_global (void) +{ + __emit_expression_range (0, global); /* { dg-warning "range" } */ +/* { dg-begin-multiline-output "" } + __emit_expression_range (0, global); + ^~~~~~ + { dg-end-multiline-output "" } */ +} + +void test_param (int param) +{ + __emit_expression_range (0, param); /* { dg-warning "range" } */ +/* { dg-begin-multiline-output "" } + __emit_expression_range (0, param); + ^~~~~ + { dg-end-multiline-output "" } */ +} + +void test_local (void) +{ + int local = 5; + + __emit_expression_range (0, local); /* { dg-warning "range" } */ +/* { dg-begin-multiline-output "" } + __emit_expression_range (0, local); + ^~~~~ + { dg-end-multiline-output "" } */ +} + +void test_integer_constants (void) +{ + __emit_expression_range (0, 1234); /* { dg-warning "range" } */ +/* { dg-begin-multiline-output "" } + __emit_expression_range (0, 1234); + ^~~~ + { dg-end-multiline-output "" } */ + + /* Ensure that zero works. */ + + __emit_expression_range (0, 0); /* { dg-warning "range" } */ +/* { dg-begin-multiline-output "" } + __emit_expression_range (0, 0); + ^ + { dg-end-multiline-output "" } */ +} + +void test_character_constants (void) +{ + __emit_expression_range (0, 'a'); /* { dg-warning "range" } */ +/* { dg-begin-multiline-output "" } + __emit_expression_range (0, 'a'); + ^~~ + { dg-end-multiline-output "" } */ +} + +void test_floating_constants (void) +{ + __emit_expression_range (0, 98.6); /* { dg-warning "range" } */ +/* { dg-begin-multiline-output "" } + __emit_expression_range (0, 98.6); + ^~~~ + { dg-end-multiline-output "" } */ + + __emit_expression_range (0, .6); /* { dg-warning "range" } */ +/* { dg-begin-multiline-output "" } + __emit_expression_range (0, .6); + ^~ + { dg-end-multiline-output "" } */ + + __emit_expression_range (0, 98.); /* { dg-warning "range" } */ +/* { dg-begin-multiline-output "" } + __emit_expression_range (0, 98.); + ^~~ + { dg-end-multiline-output "" } */ + + __emit_expression_range (0, 6.022140857e23 ); /* { dg-warning "range" } */ +/* { dg-begin-multiline-output "" } + __emit_expression_range (0, 6.022140857e23 ); + ^~~~~~~~~~~~~~ + { dg-end-multiline-output "" } */ + + __emit_expression_range (0, 98.6f ); /* { dg-warning "range" } */ +/* { dg-begin-multiline-output "" } + __emit_expression_range (0, 98.6f ); + ^~~~~ + { dg-end-multiline-output "" } */ + + __emit_expression_range (0, 6.022140857e23l ); /* { dg-warning "range" } */ +/* { dg-begin-multiline-output "" } + __emit_expression_range (0, 6.022140857e23l ); + ^~~~~~~~~~~~~~~ + { dg-end-multiline-output "" } */ +} + +enum test_enum { + TEST_ENUM_VALUE +}; + +void test_enumeration_constant (void) +{ + __emit_expression_range (0, TEST_ENUM_VALUE ); /* { dg-warning "range" } */ +/* { dg-begin-multiline-output "" } + __emit_expression_range (0, TEST_ENUM_VALUE ); + ^~~~~~~~~~~~~~~ + { dg-end-multiline-output "" } */ +} + void test_parentheses (int a, int b) { __emit_expression_range (0, (a + b) ); /* { dg-warning "range" } */ @@ -66,7 +173,7 @@ int field; }; -int test_structure_references (struct test_struct *ptr) +void test_structure_references (struct test_struct *ptr) { struct test_struct local; local.field = 42; @@ -84,7 +191,7 @@ { dg-end-multiline-output "" } */ } -int test_postfix_incdec (int i) +void test_postfix_incdec (int i) { __emit_expression_range (0, i++ ); /* { dg-warning "range" } */ /* { dg-begin-multiline-output "" } @@ -101,73 +208,42 @@ /* Unary operators. ****************************************************/ -int test_sizeof (int i) +void test_sizeof (int i) { - __emit_expression_range (0, sizeof(int) + i); /* { dg-warning "range" } */ + __emit_expression_range (0, sizeof i ); /* { dg-warning "range" } */ /* { dg-begin-multiline-output "" } - __emit_expression_range (0, sizeof(int) + i); - ~~~~~~~~~~~~^~~ + __emit_expression_range (0, sizeof i ); + ^~~~~~~~ { dg-end-multiline-output "" } */ - __emit_expression_range (0, i + sizeof(int)); /* { dg-warning "range" } */ -/* { dg-begin-multiline-output "" } - __emit_expression_range (0, i + sizeof(int)); - ~~^~~~~~~~~~~~~ - { dg-end-multiline-output "" } */ - - __emit_expression_range (0, sizeof i + i); /* { dg-warning "range" } */ + __emit_expression_range (0, sizeof (char) ); /* { dg-warning "range" } */ /* { dg-begin-multiline-output "" } - __emit_expression_range (0, sizeof i + i); - ~~~~~~~~~^~~ - { dg-end-multiline-output "" } */ - - __emit_expression_range (0, i + sizeof i); /* { dg-warning "range" } */ -/* { dg-begin-multiline-output "" } - __emit_expression_range (0, i + sizeof i); - ~~^~~~~~~~~~ + __emit_expression_range (0, sizeof (char) ); + ^~~~~~~~~~~~~ { dg-end-multiline-output "" } */ } -int test_alignof (int i) +void test_alignof (int i) { - __emit_expression_range (0, alignof(int) + i); /* { dg-warning "range" } */ + __emit_expression_range (0, alignof(int)); /* { dg-warning "range" } */ /* { dg-begin-multiline-output "" } - __emit_expression_range (0, alignof(int) + i); - ~~~~~~~~~~~~~^~~ - { dg-end-multiline-output "" } */ - - __emit_expression_range (0, i + alignof(int)); /* { dg-warning "range" } */ -/* { dg-begin-multiline-output "" } - __emit_expression_range (0, i + alignof(int)); - ~~^~~~~~~~~~~~~~ + __emit_expression_range (0, alignof(int)); + ^~~~~~~~~~~~ { dg-end-multiline-output "" } */ - __emit_expression_range (0, __alignof__(int) + i); /* { dg-warning "range" } */ + __emit_expression_range (0, __alignof__(int)); /* { dg-warning "range" } */ /* { dg-begin-multiline-output "" } - __emit_expression_range (0, __alignof__(int) + i); - ~~~~~~~~~~~~~~~~~^~~ - { dg-end-multiline-output "" } */ - - __emit_expression_range (0, i + __alignof__(int)); /* { dg-warning "range" } */ -/* { dg-begin-multiline-output "" } - __emit_expression_range (0, i + __alignof__(int)); - ~~^~~~~~~~~~~~~~~~~~ + __emit_expression_range (0, __alignof__(int)); + ^~~~~~~~~~~~~~~~ { dg-end-multiline-output "" } */ - - __emit_expression_range (0, __alignof__ i + i); /* { dg-warning "range" } */ + __emit_expression_range (0, __alignof__ i); /* { dg-warning "range" } */ /* { dg-begin-multiline-output "" } - __emit_expression_range (0, __alignof__ i + i); - ~~~~~~~~~~~~~~^~~ - { dg-end-multiline-output "" } */ - - __emit_expression_range (0, i + __alignof__ i); /* { dg-warning "range" } */ -/* { dg-begin-multiline-output "" } - __emit_expression_range (0, i + __alignof__ i); - ~~^~~~~~~~~~~~~~~ + __emit_expression_range (0, __alignof__ i); + ^~~~~~~~~~~~~ { dg-end-multiline-output "" } */ } -int test_prefix_incdec (int i) +void test_prefix_incdec (int i) { __emit_expression_range (0, ++i ); /* { dg-warning "range" } */ /* { dg-begin-multiline-output "" } @@ -200,6 +276,15 @@ { dg-end-multiline-output "" } */ } +void test_unary_plus (int i) +{ + __emit_expression_range (0, +i ); /* { dg-warning "range" } */ +/* { dg-begin-multiline-output "" } + __emit_expression_range (0, +i ); + ^~ + { dg-end-multiline-output "" } */ +} + void test_unary_minus (int i) { __emit_expression_range (0, -i ); /* { dg-warning "range" } */ @@ -471,53 +556,36 @@ /* Literals. **************************************************/ -/* We can't test the ranges of literals directly, since the underlying - tree nodes don't retain a location. However, we can test that they - have ranges during parsing by building compound expressions using - them, and verifying the ranges of the compound expressions. */ - -void test_string_literals (int i) +void test_string_literals () { - __emit_expression_range (0, "foo"[i] ); /* { dg-warning "range" } */ + __emit_expression_range (0, "0123456789"); /* { dg-warning "range" } */ /* { dg-begin-multiline-output "" } - __emit_expression_range (0, "foo"[i] ); - ~~~~~~~^ + __emit_expression_range (0, "0123456789"); + ^~~~~~~~~~~~ { dg-end-multiline-output "" } */ - __emit_expression_range (0, &"foo" "bar" ); /* { dg-warning "range" } */ + __emit_expression_range (0, "foo" "bar" ); /* { dg-warning "range" } */ /* { dg-begin-multiline-output "" } - __emit_expression_range (0, &"foo" "bar" ); - ^~~~~~~~~~~~ + __emit_expression_range (0, "foo" "bar" ); + ^~~~~~~~~~~ { dg-end-multiline-output "" } */ } void test_numeric_literals (int i) { - __emit_expression_range (0, 42 + i ); /* { dg-warning "range" } */ + __emit_expression_range (0, 42 ); /* { dg-warning "range" } */ /* { dg-begin-multiline-output "" } - __emit_expression_range (0, 42 + i ); - ~~~^~~ - { dg-end-multiline-output "" } */ - - __emit_expression_range (0, i + 42 ); /* { dg-warning "range" } */ -/* { dg-begin-multiline-output "" } - __emit_expression_range (0, i + 42 ); - ~~^~~~ + __emit_expression_range (0, 42 ); + ^~ { dg-end-multiline-output "" } */ /* Verify locations of negative literals (via folding of unary negation). */ - __emit_expression_range (0, -42 + i ); /* { dg-warning "range" } */ + __emit_expression_range (0, -42 ); /* { dg-warning "range" } */ /* { dg-begin-multiline-output "" } - __emit_expression_range (0, -42 + i ); - ~~~~^~~ - { dg-end-multiline-output "" } */ - - __emit_expression_range (0, i + -42 ); /* { dg-warning "range" } */ -/* { dg-begin-multiline-output "" } - __emit_expression_range (0, i + -42 ); - ~~^~~~~ + __emit_expression_range (0, -42 ); + ^~~ { dg-end-multiline-output "" } */ __emit_expression_range (0, i ? 0 : -1 ); /* { dg-warning "range" } */ @@ -638,16 +706,10 @@ void test_builtin_offsetof (int i) { - __emit_expression_range (0, i + __builtin_offsetof (struct s, f) ); /* { dg-warning "range" } */ + __emit_expression_range (0, __builtin_offsetof (struct s, f) ); /* { dg-warning "range" } */ /* { dg-begin-multiline-output "" } - __emit_expression_range (0, i + __builtin_offsetof (struct s, f) ); - ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - { dg-end-multiline-output "" } */ - - __emit_expression_range (0, __builtin_offsetof (struct s, f) + i ); /* { dg-warning "range" } */ -/* { dg-begin-multiline-output "" } - __emit_expression_range (0, __builtin_offsetof (struct s, f) + i ); - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~ + __emit_expression_range (0, __builtin_offsetof (struct s, f) ); + ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~ { dg-end-multiline-output "" } */ } @@ -856,28 +918,22 @@ void test_typeid (int i) { - __emit_expression_range (0, &typeid(i)); /* { dg-warning "range" } */ + __emit_expression_range (0, typeid(i)); /* { dg-warning "range" } */ /* { dg-begin-multiline-output "" } - __emit_expression_range (0, &typeid(i)); - ^~~~~~~~~~ + __emit_expression_range (0, typeid(i)); + ^~~~~~~~~ { dg-end-multiline-output "" } */ - __emit_expression_range (0, &typeid(int)); /* { dg-warning "range" } */ + __emit_expression_range (0, typeid(int)); /* { dg-warning "range" } */ /* { dg-begin-multiline-output "" } - __emit_expression_range (0, &typeid(int)); - ^~~~~~~~~~~~ + __emit_expression_range (0, typeid(int)); + ^~~~~~~~~~~ { dg-end-multiline-output "" } */ - __emit_expression_range (0, &typeid(i * 2)); /* { dg-warning "range" } */ + __emit_expression_range (0, typeid(i * 2)); /* { dg-warning "range" } */ /* { dg-begin-multiline-output "" } - __emit_expression_range (0, &typeid(i * 2)); - ^~~~~~~~~~~~~~ - { dg-end-multiline-output "" } */ - - __emit_expression_range (0, typeid(int).foo); /* { dg-warning "range" } */ -/* { dg-begin-multiline-output "" } - __emit_expression_range (0, typeid(int).foo); - ~~~~~~~~~~~~^~~ + __emit_expression_range (0, typeid(i * 2)); + ^~~~~~~~~~~~~ { dg-end-multiline-output "" } */ }