| // { dg-options "-fdiagnostics-show-caret" } |
| |
| // Adapted from https://gcc.gnu.org/wiki/ClangDiagnosticsComparison |
| |
| typedef float __m128; |
| void test_1 () |
| { |
| __m128 myvec[2]; |
| int const *ptr; |
| myvec[1] / ptr; // { dg-error "invalid operands" } |
| |
| /* { dg-begin-multiline-output "" } |
| myvec[1] / ptr; |
| ~~~~~~~~ ^ ~~~ |
| | | |
| | const int* |
| __m128 {aka float} |
| { dg-end-multiline-output "" } */ |
| } |
| |
| struct s {}; |
| struct t {}; |
| extern struct s some_function (void); |
| extern struct t some_other_function (void); |
| |
| int test_2 (void) |
| { |
| return (some_function () |
| + some_other_function ()); // { dg-error "no match for .operator" } |
| |
| /* { dg-begin-multiline-output "" } |
| return (some_function () |
| ~~~~~~~~~~~~~~~~ |
| | |
| s |
| + some_other_function ()); |
| ^ ~~~~~~~~~~~~~~~~~~~~~~ |
| | |
| t |
| { dg-end-multiline-output "" } */ |
| } |
| |
| int test_3 (struct s param_s, struct t param_t) |
| { |
| return param_s && param_t; // { dg-error "no match for .operator" } |
| |
| /* { dg-begin-multiline-output "" } |
| return param_s && param_t; |
| ~~~~~~~ ^~ ~~~~~~~ |
| | | |
| s t |
| { dg-end-multiline-output "" } */ |
| /* { dg-begin-multiline-output "" } |
| return param_s && param_t; |
| ~~~~~~~~^~~~~~~~~~ |
| { dg-end-multiline-output "" } */ |
| } |
| |
| namespace ns_4 |
| { |
| struct s foo; |
| namespace inner { |
| struct t bar; |
| }; |
| }; |
| |
| int test_4a (void) |
| { |
| return ns_4::foo && ns_4::inner::bar; // { dg-error "no match for .operator" } |
| /* { dg-begin-multiline-output "" } |
| return ns_4::foo && ns_4::inner::bar; |
| ~~~~~~~~~ ^~ ~~~~~~~~~~~~~~~~ |
| | | |
| s t |
| { dg-end-multiline-output "" } */ |
| |
| /* { dg-begin-multiline-output "" } |
| return ns_4::foo && ns_4::inner::bar; |
| ~~~~~~~~~~^~~~~~~~~~~~~~~~~~~ |
| { dg-end-multiline-output "" } */ |
| } |
| |
| int test_4b (void) |
| { |
| return ::ns_4::foo && ns_4::inner::bar; // { dg-error "no match for .operator" } |
| /* { dg-begin-multiline-output "" } |
| return ::ns_4::foo && ns_4::inner::bar; |
| ~~~~~~~~~~~ ^~ ~~~~~~~~~~~~~~~~ |
| | | |
| s t |
| { dg-end-multiline-output "" } */ |
| |
| /* { dg-begin-multiline-output "" } |
| return ::ns_4::foo && ns_4::inner::bar; |
| ~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~ |
| { dg-end-multiline-output "" } */ |
| } |