Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.c > #103775
| From | David Brown <david.brown@hesbynett.no> |
|---|---|
| Newsgroups | comp.lang.c |
| Subject | Re: How to find the problem in the object file |
| Date | 2017-02-13 09:55 +0100 |
| Organization | A noiseless patient Spider |
| Message-ID | <o7rs6p$li2$1@dont-email.me> (permalink) |
| References | (12 earlier) <ln60kjz4ah.fsf@kst-u.example.com> <dfc2149d-356c-4bc4-a8ab-3954e4527ebd@googlegroups.com> <lno9ybxn52.fsf@kst-u.example.com> <874m03gnc5.fsf@news.bourguet.org> <35f03514-c25d-4372-bbaa-660d78ab7129@googlegroups.com> |
On 09/02/17 23:59, supercat@casperkitty.com wrote: > On Thursday, February 9, 2017 at 1:45:45 PM UTC-6, Jean-Marc Bourguet wrote: >> Keith Thompson writes: >> >>> supercat writes: >>>> On Thursday, February 9, 2017 at 11:01:55 AM UTC-6, Keith Thompson wrote: >>>>> Do you have a compelling example where old-style function >>>>> declarations are actually useful? Perhaps you've already posted >>>>> it here, but if so I can't recall it. I also invite anyone else >>>>> to post examples. >>>> >>>> On some systems, calls to prototyped functions use a different naming and >>>> calling conventions from calls to non-prototyped functions. >>> >>> Name one. >> >> Is this even conforming? I though it was allowed to declare a function >> with a prototype and define it without, without having the prototype >> visible at the point of definition. > > I've observed such behavior with the Keil C51 compiler (which is non- > compliant in a few ways, but strives to comply with the Standard as much > as practical). No, it does not strive to comply to the standard (any of them). And it is so far away on many aspects that it does not count as a "C implementation" - it is a "C-like compiler with a sort-of C-like library". It strives to guess what users might find useful in order to get efficient code on a target processor that is completely unsuitable for C, and then it strives to follow these rules it has made up for that particular version of the compiler. A fine example of its non-compliance is its disregard for integer promotion rules (because Keil things its users want to keep their 8-bit arithmetic without promoting it to grossly inefficient 16-bit arithmetic - good intentions, but non-standard and surprising to people expecting to work in C). > It uses a naming convention similar to what I suggested > (adding an underscore to the names of functions which expected arguments > in registers). I don't recall noticing if it had an option to generate > a stub to allow non-prototype calls to prototyped functions, but the > naming convention was such that if such stubs were generated the functions > could support being called through either convention, which would satisfy > the requirements of the Standard. > Note that there is absolutely no good reason for Keil's tools to work this way - in fact, I would be very surprised if they do so. The tools are also usually operated in a "whole program optimisation" mode, so the compiler has full information about all functions and their uses in the code. > Further, on both the PC and the classic Macintosh, many compilers have > supported a number of calling conventions; code which calls a function would > use the convention described in its prototype, if any, or else the default > configured for the caller. An attempt to call the a function with the wrong > convention would either jump the rails or cause a link error (I think the PC > compilers preceded link names with an underscore when using C convention, > but not when using Pascal convention; I don't remember the Macintosh making > that distinction). Things like "far" or "fastcall" calling convention markers are extensions that need to be used when declaring a function - it does not matter if the declaration is a function prototype or a non-prototype function declaration. > > The authors of the Standard have historically shown deference to plausible > implementations (e.g. ones that might behave unpredictably when left- > shifting a negative value), on the basis that such deference shouldn't > prevent implementations that don't need them from behaving sensibly. > While I don't know of any fully-compliant implementations that behave as > I described, I have seen some that use the same general principles. > No, neither of your examples support your point.
Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
How to find the problem in the object file Alla _ <modelling.data@gmail.com> - 2017-01-26 05:14 -0800
Re: How to find the problem in the object file BartC <bc@freeuk.com> - 2017-01-26 13:22 +0000
Re: How to find the problem in the object file BartC <bc@freeuk.com> - 2017-01-26 13:37 +0000
Re: How to find the problem in the object file Richard Heathfield <rjh@cpax.org.uk> - 2017-01-26 13:53 +0000
Re: How to find the problem in the object file Alla _ <modelling.data@gmail.com> - 2017-01-26 06:20 -0800
Re: How to find the problem in the object file BartC <bc@freeuk.com> - 2017-01-26 14:28 +0000
Re: How to find the problem in the object file Alla _ <modelling.data@gmail.com> - 2017-01-26 06:48 -0800
Re: How to find the problem in the object file Keith Thompson <kst-u@mib.org> - 2017-01-26 08:29 -0800
Re: How to find the problem in the object file BartC <bc@freeuk.com> - 2017-01-26 16:54 +0000
Re: How to find the problem in the object file luser droog <luser.droog@gmail.com> - 2017-01-26 09:01 -0800
Re: How to find the problem in the object file Keith Thompson <kst-u@mib.org> - 2017-01-26 11:20 -0800
Re: How to find the problem in the object file David Brown <david.brown@hesbynett.no> - 2017-01-26 23:12 +0100
Re: How to find the problem in the object file BartC <bc@freeuk.com> - 2017-01-27 01:32 +0000
Re: How to find the problem in the object file David Brown <david.brown@hesbynett.no> - 2017-01-27 09:50 +0100
Re: How to find the problem in the object file supercat@casperkitty.com - 2017-01-26 09:19 -0800
Re: How to find the problem in the object file Keith Thompson <kst-u@mib.org> - 2017-01-26 11:21 -0800
Re: How to find the problem in the object file Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-02 02:39 -0800
Re: How to find the problem in the object file fir <profesor.fir@gmail.com> - 2017-02-02 04:08 -0800
Re: How to find the problem in the object file fir <profesor.fir@gmail.com> - 2017-02-02 04:31 -0800
Re: How to find the problem in the object file Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-04 10:48 -0800
Re: How to find the problem in the object file fir <profesor.fir@gmail.com> - 2017-02-04 11:07 -0800
Re: How to find the problem in the object file Keith Thompson <kst-u@mib.org> - 2017-02-02 10:22 -0800
Re: How to find the problem in the object file Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-04 11:00 -0800
Re: How to find the problem in the object file Keith Thompson <kst-u@mib.org> - 2017-02-04 14:14 -0800
Re: How to find the problem in the object file Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-02-04 20:02 -0800
Re: How to find the problem in the object file supercat@casperkitty.com - 2017-02-05 13:39 -0800
Re: How to find the problem in the object file Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-02-05 13:44 -0800
Re: How to find the problem in the object file Keith Thompson <kst-u@mib.org> - 2017-02-05 13:56 -0800
Re: How to find the problem in the object file Ian Collins <ian-news@hotmail.com> - 2017-02-06 13:07 +1300
Re: How to find the problem in the object file Keith Thompson <kst-u@mib.org> - 2017-02-05 16:14 -0800
Re: How to find the problem in the object file Ian Collins <ian-news@hotmail.com> - 2017-02-06 13:24 +1300
Re: How to find the problem in the object file David Brown <david.brown@hesbynett.no> - 2017-02-06 01:59 +0100
Re: How to find the problem in the object file Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-08 21:32 -0800
Re: How to find the problem in the object file Keith Thompson <kst-u@mib.org> - 2017-02-05 13:54 -0800
Re: How to find the problem in the object file Ian Collins <ian-news@hotmail.com> - 2017-02-06 11:18 +1300
Re: How to find the problem in the object file Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-08 21:32 -0800
Re: How to find the problem in the object file David Brown <david.brown@hesbynett.no> - 2017-02-09 10:33 +0100
Re: How to find the problem in the object file supercat@casperkitty.com - 2017-02-09 09:10 -0800
Re: How to find the problem in the object file Ian Collins <ian-news@hotmail.com> - 2017-02-10 08:01 +1300
Re: How to find the problem in the object file Keith Thompson <kst-u@mib.org> - 2017-02-09 09:01 -0800
Re: How to find the problem in the object file supercat@casperkitty.com - 2017-02-09 09:35 -0800
Re: How to find the problem in the object file Keith Thompson <kst-u@mib.org> - 2017-02-09 09:57 -0800
Re: How to find the problem in the object file Jean-Marc Bourguet <jm@bourguet.org> - 2017-02-09 20:45 +0100
Re: How to find the problem in the object file supercat@casperkitty.com - 2017-02-09 14:59 -0800
Re: How to find the problem in the object file Keith Thompson <kst-u@mib.org> - 2017-02-09 15:20 -0800
Re: How to find the problem in the object file supercat@casperkitty.com - 2017-02-09 16:12 -0800
Re: How to find the problem in the object file David Brown <david.brown@hesbynett.no> - 2017-02-13 10:21 +0100
Re: How to find the problem in the object file supercat@casperkitty.com - 2017-02-13 07:20 -0800
Re: How to find the problem in the object file Keith Thompson <kst-u@mib.org> - 2017-02-13 09:28 -0800
Re: How to find the problem in the object file David Brown <david.brown@hesbynett.no> - 2017-02-13 09:55 +0100
Re: How to find the problem in the object file Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-16 03:36 -0800
Re: How to find the problem in the object file Jean-Marc Bourguet <jm@bourguet.org> - 2017-02-09 20:56 +0100
Re: How to find the problem in the object file Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-16 07:00 -0800
Re: How to find the problem in the object file David Brown <david.brown@hesbynett.no> - 2017-02-16 20:03 +0100
Re: How to find the problem in the object file Ian Collins <ian-news@hotmail.com> - 2017-02-17 09:22 +1300
Re: How to find the problem in the object file Keith Thompson <kst-u@mib.org> - 2017-02-16 13:07 -0800
Re: How to find the problem in the object file Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-24 09:21 -0800
Re: How to find the problem in the object file Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-24 09:02 -0800
Re: How to find the problem in the object file Ian Collins <ian-news@hotmail.com> - 2017-02-25 09:05 +1300
Re: How to find the problem in the object file Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-24 09:26 -0800
Re: How to find the problem in the object file David Brown <david.brown@hesbynett.no> - 2017-02-25 19:38 +0100
Re: How to find the problem in the object file Ian Collins <ian-news@hotmail.com> - 2017-02-03 07:32 +1300
Re: How to find the problem in the object file Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-04 11:24 -0800
Re: How to find the problem in the object file Robert Wessel <robertwessel2@yahoo.com> - 2017-02-02 16:56 -0600
Re: How to find the problem in the object file Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-04 11:12 -0800
Re: How to find the problem in the object file Robert Wessel <robertwessel2@yahoo.com> - 2017-02-06 04:47 -0600
Re: How to find the problem in the object file Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-08 21:59 -0800
Re: How to find the problem in the object file Keith Thompson <kst-u@mib.org> - 2017-02-09 09:13 -0800
Re: How to find the problem in the object file Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-15 19:28 -0800
Re: How to find the problem in the object file Malcolm McLean <malcolm.mclean5@btinternet.com> - 2017-02-24 17:48 -0800
Re: How to find the problem in the object file Tim Rentsch <txr@alumni.caltech.edu> - 2017-02-25 17:36 -0800
Re: How to find the problem in the object file David Brown <david.brown@hesbynett.no> - 2017-01-26 15:51 +0100
Re: How to find the problem in the object file Alla _ <modelling.data@gmail.com> - 2017-01-26 08:29 -0800
Re: How to find the problem in the object file Richard Heathfield <rjh@cpax.org.uk> - 2017-01-26 16:34 +0000
Re: How to find the problem in the object file Alla _ <modelling.data@gmail.com> - 2017-01-26 09:48 -0800
Re: How to find the problem in the object file Keith Thompson <kst-u@mib.org> - 2017-01-26 08:52 -0800
Re: How to find the problem in the object file James Kuyper <jameskuyper@verizon.net> - 2017-01-26 13:53 -0500
Re: How to find the problem in the object file supercat@casperkitty.com - 2017-01-26 11:00 -0800
Re: How to find the problem in the object file David Brown <david.brown@hesbynett.no> - 2017-01-26 23:49 +0100
Re: How to find the problem in the object file Alla _ <modelling.data@gmail.com> - 2017-01-27 06:08 -0800
Re: How to find the problem in the object file David Brown <david.brown@hesbynett.no> - 2017-01-27 16:20 +0100
Re: How to find the problem in the object file Keith Thompson <kst-u@mib.org> - 2017-01-26 08:41 -0800
Re: How to find the problem in the object file m.labanowicz@gmail.com - 2017-01-27 01:26 -0800
csiph-web