From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29300 invoked by alias); 19 Jun 2005 02:41:00 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 29290 invoked by uid 22791); 19 Jun 2005 02:40:56 -0000 Received: from mta4.srv.hcvlny.cv.net (HELO mta4.srv.hcvlny.cv.net) (167.206.4.199) by sourceware.org (qpsmtpd/0.30-dev) with ESMTP; Sun, 19 Jun 2005 02:40:56 +0000 Received: from [192.168.1.100] (ool-44c7b930.dyn.optonline.net [68.199.185.48]) by mta4.srv.hcvlny.cv.net (Sun Java System Messaging Server 6.2-2.06 (built May 11 2005)) with ESMTP id <0IIB00L4D8S7DV00@mta4.srv.hcvlny.cv.net> for gcc@gcc.gnu.org; Sat, 18 Jun 2005 22:40:56 -0400 (EDT) Date: Sun, 19 Jun 2005 02:41:00 -0000 From: Florian Krohm Subject: Re: c/c++ validator To: gdr@integrable-solutions.net Cc: vercetti@zlew.org, gcc@gcc.gnu.org Message-id: <200506182242.18081.britzel@acm.org> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7BIT Content-disposition: inline User-Agent: KMail/1.8 X-SW-Source: 2005-06/txt/msg00789.txt.bz2 > Tommy Vercetti writes: > > | Yeah, but for more than just STL, and opensource. C++ checker that > | is going to work for instance for KDE. > | Wonder why they use proprietary parser, > Gabriel Dos Reis wrote: > Most of the tools I know of are either "research projects" (which > means that they basically "die" when the professor get promoted or the > students graduate; they are lots of them out there) or are/ use > proprietary tools. > > We need to get GCC/g++ to a competing level of usefulness but the road > is not quite that straight. > Yes, twice. Among the things that you need are: - detailled source code correspondence for every TREE node, - you want to know whether a TREE node represents something that was compiler generated as opposed to written in the source (e.g. for cast operations) - you most likely want an unlowered representation of the C++ source (and that will be the real hard part) - you don't want the frontend to optimize anything, e.g no folding (ideally you want both the folded and unfolded expression) - you might want to know whether a certain TREE node was the result of a macro expansion I used a very old version of GCC (3.0.1) as the frontend for some static checker. We succeeded in hacking in support for some of the above but C++ was a royal pain because of lowering. Florian