From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 116345 invoked by alias); 24 Apr 2015 17:47:39 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 116314 invoked by uid 48); 24 Apr 2015 17:47:35 -0000 From: "habanero_pizza at yahoo dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/65880] New: Member function issue with argument "pointer to const array of member function pointers" Date: Fri, 24 Apr 2015 17:47:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Version: 5.1.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: habanero_pizza at yahoo dot com X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter cc cf_gcchost cf_gcctarget cf_gccbuild attachments.created Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-04/txt/msg02130.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D65880 Bug ID: 65880 Summary: Member function issue with argument "pointer to const array of member function pointers" Product: gcc Version: 5.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: habanero_pizza at yahoo dot com CC: habanero_pizza at yahoo dot com Host: i686-pc-linux-gnu Target: i686-pc-linux-gnu Build: i686-pc-linux-gnu Created attachment 35396 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=3D35396&action=3Dedit Test case source: fails if OKAY is not defined... When a member function takes an argument of the form: type (classname::* const *ptr)(void) AND the implementation of the function appears BEFORE its reference by anot= her member function, the compiler believes (at reference time) that the argument type should be: type (classname::* *ptr)(void) That is, the "const" seems to get dropped from the declaration. However, if the implementation of the function appears AFTER references by other member functions, the code compiles correctly. This seems to be a new issue with gcc 5.1.0, as 4.9.2 compiles the problem = case properly. Example run demonstrating the problem: $ i386-eabi-g++ -v -save-temps -o test-const-mfp-table-arg test-const-mfp-table-arg.cc Using built-in specs. COLLECT_GCC=3Di386-eabi-g++ COLLECT_LTO_WRAPPER=3D/usr/local/i386-eabi-5.1.0/libexec/gcc/i686-pc-linux-= gnu/5.1 .0/lto-wrapper Target: i686-pc-linux-gnu Configured with: ../../gcc-5.1.0/configure --prefix=3D/usr/local/i386-eabi-= 5.1.0 - -program-prefix=3Di386-eabi- --enable-languages=3Dc,c++ --with-gmp=3D/usr/local/i386-e abi-5.1.0 --with-mpfr=3D/usr/local/i386-eabi-5.1.0 --with-mpc=3D/usr/local/i386-eabi -5.1.0 --with-isl=3D/usr/local/i386-eabi-5.1.0 --with-zlib=3D/usr/local --enable-lto --enable-gold Thread model: posix gcc version 5.1.0 (GCC)=20 COLLECT_GCC_OPTIONS=3D'-v' '-save-temps' '-o' 'test-const-mfp-table-arg' '-shared- libgcc' '-mtune=3Dgeneric' '-march=3Dpentiumpro' /usr/local/i386-eabi-5.1.0/libexec/gcc/i686-pc-linux-gnu/5.1.0/cc1plus -E -quie t -v -D_GNU_SOURCE test-const-mfp-table-arg.cc -mtune=3Dgeneric -march=3Dpe= ntiumpro=20 -fpch-preprocess -o test-const-mfp-table-arg.ii ignoring nonexistent directory "/usr/local/i386-eabi-5.1.0/lib/gcc/i686-pc-linux -gnu/5.1.0/../../../../i686-pc-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /usr/local/i386-eabi-5.1.0/lib/gcc/i686-pc-linux-gnu/5.1.0/../../../../incl= ude/ c++/5.1.0 /usr/local/i386-eabi-5.1.0/lib/gcc/i686-pc-linux-gnu/5.1.0/../../../../incl= ude/ c++/5.1.0/i686-pc-linux-gnu /usr/local/i386-eabi-5.1.0/lib/gcc/i686-pc-linux-gnu/5.1.0/../../../../incl= ude/ c++/5.1.0/backward /usr/local/i386-eabi-5.1.0/lib/gcc/i686-pc-linux-gnu/5.1.0/include /usr/local/include /usr/local/i386-eabi-5.1.0/include /usr/local/i386-eabi-5.1.0/lib/gcc/i686-pc-linux-gnu/5.1.0/include-fixed /usr/include End of search list. COLLECT_GCC_OPTIONS=3D'-v' '-save-temps' '-o' 'test-const-mfp-table-arg' '-shared- libgcc' '-mtune=3Dgeneric' '-march=3Dpentiumpro' /usr/local/i386-eabi-5.1.0/libexec/gcc/i686-pc-linux-gnu/5.1.0/cc1plus -fprepro cessed test-const-mfp-table-arg.ii -quiet -dumpbase test-const-mfp-table-ar= g.cc=20 -mtune=3Dgeneric -march=3Dpentiumpro -auxbase test-const-mfp-table-arg -ver= sion -o t est-const-mfp-table-arg.s GNU C++ (GCC) version 5.1.0 (i686-pc-linux-gnu) compiled by GNU C version 5.1.0, GMP version 5.1.3, MPFR version 3.= 1.2,=20 MPC version 1.0.3 GGC heuristics: --param ggc-min-expand=3D100 --param ggc-min-heapsize=3D131= 072 GNU C++ (GCC) version 5.1.0 (i686-pc-linux-gnu) compiled by GNU C version 5.1.0, GMP version 5.1.3, MPFR version 3.= 1.2,=20 MPC version 1.0.3 GGC heuristics: --param ggc-min-expand=3D100 --param ggc-min-heapsize=3D131= 072 Compiler executable checksum: 8a9e49c211f4d1d2fc149d62c24d84d4 test-const-mfp-table-arg.cc: In member function =E2=80=98bool Test::barl()= =E2=80=99: test-const-mfp-table-arg.cc:67:20: error: invalid conversion from =E2=80=98= bool (Test::* const*)()=E2=80=99 to =E2=80=98bool (Test::**)()=E2=80=99 [-fpermissive] return fool(fms); ^ test-const-mfp-table-arg.cc:40:6: note: initializing argument 1 of =E2=80= =98bool Test: :fool(bool (Test::**)())=E2=80=99 bool Test::fool(bool (Test::* const *fms)(void)) ^ Preprocessor output (test-const-mfp-table-arg.ii): # 1 "test-const-mfp-table-arg.cc" # 1 "" # 1 "" # 1 "test-const-mfp-table-arg.cc" class Test { public: Test(); ~Test(); bool barl(void); private: bool fool(bool (Test::* const *fms)(void)); bool foo(void); bool bar(void); }; Test::Test() { } Test::~Test() { } # 40 "test-const-mfp-table-arg.cc" bool Test::fool(bool (Test::* const *fms)(void)) { bool retval =3D false; int i =3D 0; bool (Test::*f)(void) =3D fms[i++]; while (f) { retval =3D (this->*f)(); if (retval) break; f =3D fms[i++]; } return retval; } bool Test::barl(void) { static bool (Test::* const fms[])(void) =3D { &Test::foo, &Test::bar, 0 }; return fool(fms); } bool Test::foo(void) { return false; } bool Test::bar(void) { return true; } int main(int argc, const char *argv[]) { Test t; return t.barl(); } >>From gcc-bugs-return-484579-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Fri Apr 24 19:07:59 2015 Return-Path: Delivered-To: listarch-gcc-bugs@gcc.gnu.org Received: (qmail 94480 invoked by alias); 24 Apr 2015 19:07:58 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Delivered-To: mailing list gcc-bugs@gcc.gnu.org Received: (qmail 94443 invoked by uid 48); 24 Apr 2015 19:07:55 -0000 From: "LpSolit at netscape dot net" To: gcc-bugs@gcc.gnu.org Subject: [Bug web/64968] Upgrade GCC Bugzilla to 5.0 Date: Fri, 24 Apr 2015 19:07:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: web X-Bugzilla-Version: unknown X-Bugzilla-Keywords: X-Bugzilla-Severity: enhancement X-Bugzilla-Who: LpSolit at netscape dot net X-Bugzilla-Status: ASSIGNED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: LpSolit at netscape dot net X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: attachments.isobsolete attachments.created Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-04/txt/msg02131.txt.bz2 Content-length: 695 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D64968 Fr=C3=A9d=C3=A9ric Buclin changed: What |Removed |Added ---------------------------------------------------------------------------- Attachment #35354|0 |1 is obsolete| | --- Comment #10 from Fr=C3=A9d=C3=A9ric Buclin --- Created attachment 35397 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=3D35397&action=3Dedit GCC extension for 5.0, v2.0.1 This updated extension includes a RESTRICT_LOGIN boolean constant to easily enable/disable user account creation restrictions. >>From gcc-bugs-return-484580-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Fri Apr 24 19:12:22 2015 Return-Path: Delivered-To: listarch-gcc-bugs@gcc.gnu.org Received: (qmail 101067 invoked by alias); 24 Apr 2015 19:12:22 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Delivered-To: mailing list gcc-bugs@gcc.gnu.org Received: (qmail 101012 invoked by uid 55); 24 Apr 2015 19:12:18 -0000 From: "jason at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/50800] Internal compiler error in finish_member_declarations, possibly related to may_alias attribute Date: Fri, 24 Apr 2015 19:12:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c++ X-Bugzilla-Version: 4.6.1 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: jason at gcc dot gnu.org X-Bugzilla-Status: ASSIGNED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: jason at gcc dot gnu.org X-Bugzilla-Target-Milestone: 4.8.5 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2015-04/txt/msg02132.txt.bz2 Content-length: 622 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=50800 --- Comment #14 from Jason Merrill --- Author: jason Date: Fri Apr 24 19:11:45 2015 New Revision: 222419 URL: https://gcc.gnu.org/viewcvs?rev=222419&root=gcc&view=rev Log: PR c++/50800 gcc/ * tree.c (build_reference_type_for_mode): Don't pass can_alias_all down when building TYPE_CANONICAL. (build_pointer_type_for_mode): Likewise. gcc/cp/ * typeck.c (structural_comptypes): Don't check TYPE_REF_CAN_ALIAS_ALL. Modified: trunk/gcc/ChangeLog trunk/gcc/cp/ChangeLog trunk/gcc/cp/typeck.c trunk/gcc/tree.c