From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 20177 invoked by alias); 10 Jan 2012 09:50:48 -0000 Received: (qmail 20167 invoked by uid 22791); 10 Jan 2012 09:50:47 -0000 X-SWARE-Spam-Status: No, hits=-2.9 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from localhost (HELO gcc.gnu.org) (127.0.0.1) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 10 Jan 2012 09:50:33 +0000 From: "jb at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug fortran/51808] New: Improve handling of ISO_C_BINDING binding names Date: Tue, 10 Jan 2012 09:50:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: fortran X-Bugzilla-Keywords: X-Bugzilla-Severity: enhancement X-Bugzilla-Who: jb at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Changed-Fields: Message-ID: X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated Content-Type: text/plain; charset="UTF-8" MIME-Version: 1.0 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 X-SW-Source: 2012-01/txt/msg00985.txt.bz2 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=51808 Bug #: 51808 Summary: Improve handling of ISO_C_BINDING binding names Classification: Unclassified Product: gcc Version: 4.7.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: fortran AssignedTo: unassigned@gcc.gnu.org ReportedBy: jb@gcc.gnu.org Currently in gfc_symbol we have a field binding_label for the bind(C) binding name. It is a char[] array of size 127. This is suboptimal because 1) For the vast majority of symbols which are not bind(C, name="XXX"), this wastes memory. 2) It might be too short. Fortran limits the length of names to 63 characters, but the binding name is not a Fortran identifier. The C standard says that the implementation should support external identifiers with at least 31 characters, but an implementation is free to support arbitrarily long identifiers. Thus, we should get rid of the notion of limited binding label lengths, and use dynamically allocated storage. Also, slightly related, for .mod files a non-empty binding_label field is needed only if the default name is overridden, saving a bit of space. If time permits, I'm planning to look into this for the 4.8 cycle.