This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: C++ Darwin Port BUG in source code



On 2005-02-06, at 20:46, Zack Weinberg wrote:


Marcin Dalecki <martin@dalecki.de> writes:

OK. I have just looked a bit further into it. What I have discovered
was the
following "nice pearl" in config.gcc:

  tm_file="${tm_file} darwin.h"
   tm_p_file="${tm_p_file} darwin-protos.h"
   tmake_file="t-darwin t-slibgcc-darwin"
   target_gtfiles="\$(srcdir)/config/darwin.c"
   c_target_objs="darwin-c.o"
   cxx_target_objs="darwin-c.o"
   extra_parts="crt2.o"
   extra_objs="darwin.o"

This is way off. It can't work. darwin-c.c is supposed to call in to the
C compiler frontend. Looking at the contents most of it should be moved
in to darwin.c and some parts should be in a new to be created
darwin-cxx.c.

foo-c.c files are intended to work correctly when linked into any C-family front end.

The proper fix here is to make the C and C++ lookup_name() functions
compatible.

I wonder why the corresponding pargma unused implementation in darwin-c.c is calling c_lex() and similar functions, which appear at
least to be C code dependant. However strictly adhering to the advice the attached patch should at least give proper semantics then.

Attachment: lookup_name.diff
Description: Binary data




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]