public inbox for gcc-bugs@sourceware.org help / color / mirror / Atom feed
* [Bug c++/52869] New: "this" not being allowed in noexcept clauses @ 2012-04-04 15:47 dave at boostpro dot com 2013-09-18 17:54 ` [Bug c++/52869] [DR 1207] " redi at gcc dot gnu.org ` (3 more replies) 0 siblings, 4 replies; 5+ messages in thread From: dave at boostpro dot com @ 2012-04-04 15:47 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52869 Bug #: 52869 Summary: "this" not being allowed in noexcept clauses Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned@gcc.gnu.org ReportedBy: dave@boostpro.com Given the following, GCC says: "error: invalid use of 'this' at top level" However, according to [expr.prim.general]/3 'this' should be valid in the exception-specification as it comes after the member function's optional cv-qualifier-seq. #define RETURNS(...) noexcept(noexcept(__VA_ARGS__)) -> decltype(__VA_ARGS__) { return (__VA_ARGS__); } struct mul_ { int operator()() const { return 1; } template <typename A> A operator()(A const & a) const noexcept(A(std::move(a))) { return a; } template <typename A, typename B, typename... C> auto operator()(A const & a, B const & b, C const &... c) const RETURNS((*this)(a * b, c...)) }; ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/52869] [DR 1207] "this" not being allowed in noexcept clauses 2012-04-04 15:47 [Bug c++/52869] New: "this" not being allowed in noexcept clauses dave at boostpro dot com @ 2013-09-18 17:54 ` redi at gcc dot gnu.org 2015-06-07 8:04 ` lz96 at foxmail dot com ` (2 subsequent siblings) 3 siblings, 0 replies; 5+ messages in thread From: redi at gcc dot gnu.org @ 2013-09-18 17:54 UTC (permalink / raw) To: gcc-bugs http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52869 Jonathan Wakely <redi at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Last reconfirmed| |2013-09-18 Summary|"this" not being allowed in |[DR 1207] "this" not being |noexcept clauses |allowed in noexcept clauses Ever confirmed|0 |1 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/52869] [DR 1207] "this" not being allowed in noexcept clauses 2012-04-04 15:47 [Bug c++/52869] New: "this" not being allowed in noexcept clauses dave at boostpro dot com 2013-09-18 17:54 ` [Bug c++/52869] [DR 1207] " redi at gcc dot gnu.org @ 2015-06-07 8:04 ` lz96 at foxmail dot com 2021-05-25 7:42 ` spam+gcc at alt dot ee 2021-05-25 9:02 ` redi at gcc dot gnu.org 3 siblings, 0 replies; 5+ messages in thread From: lz96 at foxmail dot com @ 2015-06-07 8:04 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52869 --- Comment #1 from htfy96 <lz96 at foxmail dot com> --- #include <iostream> using namespace std; class A { public: void g() noexcept(false) {} void f() noexcept( noexcept( g() )) {}; }; A a; int main() { cout<<noexcept(a.f())<<endl; return 0; } This is another testcase. ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/52869] [DR 1207] "this" not being allowed in noexcept clauses 2012-04-04 15:47 [Bug c++/52869] New: "this" not being allowed in noexcept clauses dave at boostpro dot com 2013-09-18 17:54 ` [Bug c++/52869] [DR 1207] " redi at gcc dot gnu.org 2015-06-07 8:04 ` lz96 at foxmail dot com @ 2021-05-25 7:42 ` spam+gcc at alt dot ee 2021-05-25 9:02 ` redi at gcc dot gnu.org 3 siblings, 0 replies; 5+ messages in thread From: spam+gcc at alt dot ee @ 2021-05-25 7:42 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52869 Sven Suursoho <spam+gcc at alt dot ee> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |spam+gcc at alt dot ee --- Comment #20 from Sven Suursoho <spam+gcc at alt dot ee> --- Seems some variant of this bug has returned with g++-11 (but not in g++-10) $ cat s.cpp struct S { void f() noexcept {} S &g() noexcept(noexcept(f())) { f(); return *this; } }; $ g++-11 -Wall -Werror -std=c++2a -c s.cpp s.cpp:4:31: error: cannot call member function 'void S::f()' without object 4 | S &g() noexcept(noexcept(f())) { f(); return *this; } | ~^~ $ cat s.cpp struct S { void f() noexcept {} S &g() noexcept(noexcept(this->f())) { f(); return *this; } }; $ g++-11 -Wall -Werror -std=c++2a -c s.cpp s.cpp:4:30: error: invalid use of 'this' at top level 4 | S &g() noexcept(noexcept(this->f())) { f(); return *this; } | ^~~~ $ cat workaround.cpp struct S { void f() noexcept {} auto g() noexcept(noexcept(this->f())) -> S& { f(); return *this; } }; $ g++-11 -Wall -Werror -std=c++2a -c workaround.cpp $ g++-11 -v Using built-in specs. COLLECT_GCC=g++-11 COLLECT_LTO_WRAPPER=/usr/local/Cellar/gcc/11.1.0/libexec/gcc/x86_64-apple-darwin19/11.1.0/lto-wrapper Target: x86_64-apple-darwin19 Configured with: ../configure --prefix=/usr/local/Cellar/gcc/11.1.0 --libdir=/usr/local/Cellar/gcc/11.1.0/lib/gcc/11 --disable-nls --enable-checking=release --enable-languages=c,c++,objc,obj-c++,fortran,d --program-suffix=-11 --with-gmp=/usr/local/opt/gmp --with-mpfr=/usr/local/opt/mpfr --with-mpc=/usr/local/opt/libmpc --with-isl=/usr/local/opt/isl --with-pkgversion='Homebrew GCC 11.1.0' --with-bugurl=https://github.com/Homebrew/homebrew-core/issues --enable-libphobos --build=x86_64-apple-darwin19 --with-system-zlib --disable-multilib --with-native-system-header-dir=/usr/include --with-sysroot=/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk Thread model: posix Supported LTO compression algorithms: zlib gcc version 11.1.0 (Homebrew GCC 11.1.0) ~ $ uname -a Darwin home.local 19.6.0 Darwin Kernel Version 19.6.0: Mon Apr 12 20:57:45 PDT 2021; root:xnu-6153.141.28.1~1/RELEASE_X86_64 x86_64 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [Bug c++/52869] [DR 1207] "this" not being allowed in noexcept clauses 2012-04-04 15:47 [Bug c++/52869] New: "this" not being allowed in noexcept clauses dave at boostpro dot com ` (2 preceding siblings ...) 2021-05-25 7:42 ` spam+gcc at alt dot ee @ 2021-05-25 9:02 ` redi at gcc dot gnu.org 3 siblings, 0 replies; 5+ messages in thread From: redi at gcc dot gnu.org @ 2021-05-25 9:02 UTC (permalink / raw) To: gcc-bugs https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52869 --- Comment #21 from Jonathan Wakely <redi at gcc dot gnu.org> --- Oh dear. It started to fail with r11-289. I've created Bug 100752. ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-05-25 9:02 UTC | newest] Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2012-04-04 15:47 [Bug c++/52869] New: "this" not being allowed in noexcept clauses dave at boostpro dot com 2013-09-18 17:54 ` [Bug c++/52869] [DR 1207] " redi at gcc dot gnu.org 2015-06-07 8:04 ` lz96 at foxmail dot com 2021-05-25 7:42 ` spam+gcc at alt dot ee 2021-05-25 9:02 ` redi 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).