From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 115945 invoked by alias); 14 Sep 2015 19:28:27 -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 115404 invoked by uid 55); 14 Sep 2015 19:28:22 -0000 From: "manu at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug fortran/67460] [5/6 Regression] Spurious: f951: all warnings being treated as errors Date: Mon, 14 Sep 2015 19:28:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: fortran X-Bugzilla-Version: 6.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: manu at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: 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: 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-09/txt/msg01187.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D67460 --- Comment #5 from Manuel L=C3=B3pez-Ib=C3=A1=C3=B1ez --- Author: manu Date: Mon Sep 14 19:27:50 2015 New Revision: 227760 URL: https://gcc.gnu.org/viewcvs?rev=3D227760&root=3Dgcc&view=3Drev Log: The flag diagnostic_context::some_warnings_are_errors controls whether to give the message "all warnings being treated as errors". However, when warnings are buffered and then discarded, this flag is not reset. It turns out we do not need this flag at all, since we already count explicitly how many warnings were converted into errors, and this number is kept up to date for the buffered diagnostics used by Fortran. gcc/ChangeLog: 2015-09-14 Manuel L=C3=B3pez-Ib=C3=A1=C3=B1ez PR fortran/67460 * diagnostic.c (diagnostic_initialize): Do not set some_warnings_are_errors. (diagnostic_finish): Use DK_WERROR count instead. (diagnostic_report_diagnostic): Do not set some_warnings_are_errors. * diagnostic.h (struct diagnostic_context): Remove some_warnings_are_errors. gcc/testsuite/ChangeLog: 2015-09-14 Manuel L=C3=B3pez-Ib=C3=A1=C3=B1ez PR fortran/67460 * gfortran.dg/pr67460.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/pr67460.f90 Modified: trunk/gcc/ChangeLog trunk/gcc/diagnostic.c trunk/gcc/diagnostic.h trunk/gcc/testsuite/ChangeLog >>From gcc-bugs-return-497210-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Mon Sep 14 19:31:08 2015 Return-Path: Delivered-To: listarch-gcc-bugs@gcc.gnu.org Received: (qmail 121328 invoked by alias); 14 Sep 2015 19:31:08 -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 121295 invoked by uid 48); 14 Sep 2015 19:31:05 -0000 From: "manu at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug fortran/67460] [5 Regression] Spurious: f951: all warnings being treated as errors Date: Mon, 14 Sep 2015 19:31:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: fortran X-Bugzilla-Version: 6.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: manu at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: 5.2 X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: cf_known_to_work target_milestone short_desc cf_known_to_fail 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-09/txt/msg01188.txt.bz2 Content-length: 732 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D67460 Manuel L=C3=B3pez-Ib=C3=A1=C3=B1ez changed: What |Removed |Added ---------------------------------------------------------------------------- Known to work| |6.0 Target Milestone|--- |5.2 Summary|[5/6 Regression] Spurious: |[5 Regression] Spurious: |f951: all warnings being |f951: all warnings being |treated as errors |treated as errors Known to fail|6.0 | --- Comment #6 from Manuel L=C3=B3pez-Ib=C3=A1=C3=B1ez --- Fixed in GCC 6. >>From gcc-bugs-return-497211-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Mon Sep 14 19:31:16 2015 Return-Path: Delivered-To: listarch-gcc-bugs@gcc.gnu.org Received: (qmail 122041 invoked by alias); 14 Sep 2015 19:31:16 -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 121809 invoked by uid 48); 14 Sep 2015 19:31:12 -0000 From: "Casey at Carter dot net" To: gcc-bugs@gcc.gnu.org Subject: [Bug c++/67579] New: [concepts] Memoization for constraint expressions Date: Mon, 14 Sep 2015 19:31: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: 6.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: enhancement X-Bugzilla-Who: Casey at Carter dot net X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: 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 target_milestone Message-ID: 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-09/txt/msg01189.txt.bz2 Content-length: 1533 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67579 Bug ID: 67579 Summary: [concepts] Memoization for constraint expressions Product: gcc Version: 6.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: Casey at Carter dot net Target Milestone: --- While implementing the Ranges TS I've found that the implementation of concepts in GCC scales very poorly to larger and more complex systems. I've been able to achieve 1-2 order of magnitude improvements in compile time and memory usage by hand coding memoization for some concepts with constexpr variable templates. E.g., replacing template concept bool Foo = // requirements with template constexpr bool Foo_ = false; template requires // requirements constexpr bool Foo_ = true; template concept bool Foo = Foo_; which is fine when Foo need not participate in subsumption relationships. If Foo *does* need to participate in subsumption relationships then performing this transformation by hand is not possible since it hides the relationship between Foo and "requirements" from the compiler's view. If concepts & constraint expressions are to be generally applicable the implementation must provide some means of reducing the cost of repeated evaluation.