public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Chris Lattner <sabre@nondot.org>
To: Daniel Berlin <dberlin@dberlin.org>
Cc: "Vladimir A. Merzliakov" <wanderer@rsu.ru>,
	Yi-kwon Hwang <neo@ropas.snu.ac.kr>,
	gcc@gnu.org
Subject: Re: front-end that translate C++ to C
Date: Mon, 25 Jul 2005 20:29:00 -0000	[thread overview]
Message-ID: <Pine.LNX.4.61.0507251524130.7336@nondot.org> (raw)
In-Reply-To: <1122313000.21398.29.camel@dyn9002219136>

On Mon, 25 Jul 2005, Daniel Berlin wrote:
> On Mon, 2005-07-25 at 14:01 +0400, Vladimir A. Merzliakov wrote:
>>> Hi all,
>>> Are there any open-source(or free) front-end which translates C++ to C?
>>> I could find some commercial things - Comeau, AT&T Cfront, etc., but
>>> these have many limitations(especially, It's too difficult to get cfront
>>> because there are few cfront-based compiler at present)
>> LLVM ( http://llvm.cs.uiuc.edu/ ) ?
>>
>> It use modified gcc 3.4 as C/C++ frontend and it can emits portable C code.

> Depends what you mean by portable.
> You can't take the output of the gcc llvm frontend on one platform, and
> run it on another, like cfront could.
>
> The sizes, alignments, etc, of things will be different, where people 
> use sizeof(x), etc, in their code. Unless you hacked up the C frontend 
> to give you sizeof_expr, etc.

It isn't portable in that sense.  Like Tom Tromey mentions, anything that 
deals with code that comes out of the preprocessor isn't "portable" in 
that way.

It is portable in the sense of being able to use any standard ANSI C 
compiler to compile the code, which gives you a pretty portable C++ 
implementation.  We have had quite a few people say they are using LLVM as 
a replacement for old and out-dated CFront-based vendor C++ front-ends.

Using LLVM in this way allows them to use the GCC 3.4 parser and libstdc++ 
which is usually far better than what they are dealing with.  Getting IPO 
and the other advantages that LLVM provides is just a perk that people 
with embedded devices (or other systems with constrained resources) 
particularly enjoy.

-Chris

-- 
http://nondot.org/sabre/
http://llvm.org/

      parent reply	other threads:[~2005-07-25 20:29 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-07-25  2:26 Yi-kwon Hwang
2005-07-25 10:02 ` Vladimir A. Merzliakov
2005-07-25 17:43   ` Daniel Berlin
2005-07-25 19:00     ` Tom Tromey
2005-07-25 20:29     ` Vladimir A. Merzliakov
2005-07-25 20:29     ` Chris Lattner [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.61.0507251524130.7336@nondot.org \
    --to=sabre@nondot.org \
    --cc=dberlin@dberlin.org \
    --cc=gcc@gnu.org \
    --cc=neo@ropas.snu.ac.kr \
    --cc=wanderer@rsu.ru \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).