public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug c++/71982] Wrong error and note range with macro [not found] <bug-71982-4@http.gcc.gnu.org/bugzilla/> @ 2021-08-02 3:28 ` pinskia at gcc dot gnu.org 2021-12-09 8:59 ` marxin at gcc dot gnu.org ` (2 subsequent siblings) 3 siblings, 0 replies; 4+ messages in thread From: pinskia at gcc dot gnu.org @ 2021-08-02 3:28 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71982 --- Comment #1 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Seems fixed in GCC 11+. ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/71982] Wrong error and note range with macro [not found] <bug-71982-4@http.gcc.gnu.org/bugzilla/> 2021-08-02 3:28 ` [Bug c++/71982] Wrong error and note range with macro pinskia at gcc dot gnu.org @ 2021-12-09 8:59 ` marxin at gcc dot gnu.org 2021-12-09 17:07 ` pinskia at gcc dot gnu.org 2021-12-10 0:40 ` pinskia at gcc dot gnu.org 3 siblings, 0 replies; 4+ messages in thread From: marxin at gcc dot gnu.org @ 2021-12-09 8:59 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71982 Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |WAITING CC| |marxin at gcc dot gnu.org Ever confirmed|0 |1 Last reconfirmed| |2021-12-09 --- Comment #2 from Martin Liška <marxin at gcc dot gnu.org> --- (In reply to Andrew Pinski from comment #1) > Seems fixed in GCC 11+. Are you sure, do you any special -std option or so? ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/71982] Wrong error and note range with macro [not found] <bug-71982-4@http.gcc.gnu.org/bugzilla/> 2021-08-02 3:28 ` [Bug c++/71982] Wrong error and note range with macro pinskia at gcc dot gnu.org 2021-12-09 8:59 ` marxin at gcc dot gnu.org @ 2021-12-09 17:07 ` pinskia at gcc dot gnu.org 2021-12-10 0:40 ` pinskia at gcc dot gnu.org 3 siblings, 0 replies; 4+ messages in thread From: pinskia at gcc dot gnu.org @ 2021-12-09 17:07 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71982 Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |NEW ^ permalink raw reply [flat|nested] 4+ messages in thread
* [Bug c++/71982] Wrong error and note range with macro [not found] <bug-71982-4@http.gcc.gnu.org/bugzilla/> ` (2 preceding siblings ...) 2021-12-09 17:07 ` pinskia at gcc dot gnu.org @ 2021-12-10 0:40 ` pinskia at gcc dot gnu.org 3 siblings, 0 replies; 4+ messages in thread From: pinskia at gcc dot gnu.org @ 2021-12-10 0:40 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71982 --- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- Trunk gives: [apinski@xeond2 src]$ ~/upstream-gcc/bin/gcc t.cc t.cc: In instantiation of ‘bool operator==(const A<T>&, const A<T>&) [with T = const B]’: t.cc:25:30: required from here t.cc:1:34: error: no match for ‘operator==’ (operand types are ‘const B’ and ‘const B’) 1 | #define MACRO(left, right) *left == *right | ^ t.cc:15:10: note: in expansion of macro ‘MACRO’ 15 | return MACRO(_left, _right); | ^~~~~ t.cc:10:6: note: candidate: ‘template<class T> bool operator==(const A<T>&, const A<T>&)’ 10 | bool operator==(const A<T>& left, const A<T>& right) | ^~~~~~~~ t.cc:10:6: note: template argument deduction/substitution failed: t.cc:1:34: note: ‘const B’ is not derived from ‘const A<T>’ 1 | #define MACRO(left, right) *left == *right | ^ t.cc:15:10: note: in expansion of macro ‘MACRO’ 15 | return MACRO(_left, _right); | ^~~~~ t.cc:24:6: note: candidate: ‘bool operator==(C&, C&)’ 24 | bool operator==(C& left, C& right) { | ^~~~~~~~ t.cc:24:20: note: no known conversion for argument 1 from ‘const B’ to ‘C&’ 24 | bool operator==(C& left, C& right) { | ~~~^~~~ Which looks fine. While GCC 10.1.0 gives: t.cc: In instantiation of 'bool operator==(const A<T>&, const A<T>&) [with T = const B]': t.cc:25:30: required from here t.cc:1:34: error: no match for 'operator==' (operand types are 'const B' and 'const B') 1 | #define MACRO(left, right) *left == *right | ~~~~~~^~~~~~~~~ 2 | | 3 | template <typename T> | ~~~~~~~~~~~~~~~~~~~~~ 4 | struct A { .... This is on the same machine. This happens on both aarch64 and x86_64. The problem is not the code is being rejected (correctly) but the warning location includes so much more than it should in previous versions of GCC. ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-12-10 0:40 UTC | newest] Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- [not found] <bug-71982-4@http.gcc.gnu.org/bugzilla/> 2021-08-02 3:28 ` [Bug c++/71982] Wrong error and note range with macro pinskia at gcc dot gnu.org 2021-12-09 8:59 ` marxin at gcc dot gnu.org 2021-12-09 17:07 ` pinskia at gcc dot gnu.org 2021-12-10 0:40 ` pinskia at gcc dot gnu.org
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).