Mercurial > hg > CbC > CbC_gcc
view gcc/testsuite/g++.dg/diagnostic/bad-binary-ops.C @ 145:1830386684a0
gcc-9.2.0
author | anatofuz |
---|---|
date | Thu, 13 Feb 2020 11:34:05 +0900 |
parents | 04ced10e8804 |
children |
line wrap: on
line source
// { 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 "" } */ }