Article View: gnu.gcc.bug
Article #1069Re: Using g++2.1 with standard C library on SunOS 4.1.1 Rev B.
From: Skip Gilbrech
Date: Sat, 05 Sep 1992 01:16
Date: Sat, 05 Sep 1992 01:16
82 lines
3832 bytes
3832 bytes
You write: > What I would really like to do, is turn off builtin functions, and the > builtin function prototypes. > >This is the wrong approach, for a basic philosophical reason. > >You have found a feature which, in a particular case, fails to work. >To think that the solution is to turn off the feature is to assume >that it can *never* work. > >But it is absurd to assume that. We don't know why it does not work. >It may be failing for a trivial reason. It is silly to give up on the >feature without first checking the possibility that it can easily be >fixed. > >I can't tell you what to do. Those of you who wish to give up on a >feature can do so. But for those of you who are interested in what I >have to say, I urge you to take a constructive approach and help get >things fixed. > >See the Bugs chapter of the GCC manual for a general guide to how to do this. > >In the case of a type conflict with a built-in function, the main >useful thing for you to do is to find the declaration that conflicts >and tell us precisely what data types the conflicting declaration >uses. Most importantly, find out what size_t is in the system headers. Yes, but not everyone has the time, inclination, or expertise to find and fix such conflicts, and even when they do, their only practical option may be to make local copies of screwed-up system headers, most often for extremely trivial conflicts that will have absolutely no effect on the generated code. And anyway, do you really want each of the thousands of people who will encounter conflicts on Sun's, for instance, to send in a report telling you (again..) how size_t is (mis-)declared? This might be reasonable on obscure systems, but the point is that the inconvenience caused by these conflicts persists for many people _long_ after the cause is well known. To me, it seems largely an issue of dictating choices versus allowing the user to decide what tradeoffs are important to her/him: the advantages offered by built-ins may or may not be significant in a given situation, but as it is now, there's no easy way to avoid dealing with their downside regardless... For these and other reasons, I would really appreciate (as would I'm quite sure many others) a command-line _option_ to totally disable built-in functions (and their prototypes). Whatever is decided on that issue, though, gcc conflict warnings would be much more useful if they gave a hint as to what conflicts with what. Given a bogus declaration like: double memcpy(int, char *); for instance, gcc, when wearing its `c' hat, says: Goo.c:5: warning: conflicting types for built-in function `memcpy' but doesn't say what it's looking for! How is one supposed to resolve that conflict without searching through the gcc source and configuration files, etc.? g++ at least puts out some useful information before choking: Goo.cc:5: declaration of `double memcpy (int, char *)' <built-in>:0: conflicts with built-in declaration `void * memcpy (void *, const void *, unsigned int)' Any reason gcc in `c' mode can't be as forthcoming? -Skip -- Skip Gilbrech email: skip@fsg.com Fusion Systems Group uupsi!fsg!skip 225 Broadway, 24th Floor uupsi!skipnyc!skip New York, NY 10007 phones: 212-285-8001 (work) 201-825-8732 (home)
Technical Details
Message-ID:
<9209050116.AA04670@skipsun.UUCP>Path:
arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!skipsun.UUCP!skipReferences:
<9209010519.AA13772@mole.gnu.ai.mit.edu>Show Full Headers
Complete Article Headers
Newsgroups: gnu.gcc.bug Path: arc1-ca.pugleaf.net!sparky!uunet!cis.ohio-state.edu!skipsun.UUCP!skip From: skip@skipsun.UUCP (Skip Gilbrech) Subject: Re: Using g++2.1 with standard C library on SunOS 4.1.1 Rev B. Message-ID: <9209050116.AA04670@skipsun.UUCP> Sender: gnulists@ai.mit.edu Organization: GNUs Not Usenet References: <9209010519.AA13772@mole.gnu.ai.mit.edu> Distribution: gnu Date: Sat, 5 Sep 1992 01:16:17 GMT Approved: bug-gcc@prep.ai.mit.edu Lines: 83