Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #94565

Re: Why I use gcc

From BartC <bc@freeuk.com>
Newsgroups comp.lang.c
Subject Re: Why I use gcc
Date 2016-10-07 19:47 +0100
Organization A noiseless patient Spider
Message-ID <nt8qk1$ill$1@dont-email.me> (permalink)
References (7 earlier) <a01a11b7-2b73-48ec-a951-4d0a83b6b262@googlegroups.com> <nt8693$744$1@dont-email.me> <046cb5f6-3629-4320-a71e-8a3e9420cc01@googlegroups.com> <nt8ito$lio$1@dont-email.me> <7ab1eac2-0132-4b4d-9a03-bc92cd50579b@googlegroups.com>

Show all headers | View raw


On 07/10/2016 18:38, Thiago Adams wrote:
> On Friday, October 7, 2016 at 1:36:33 PM UTC-3, Bart wrote:
> ...
>> But C's inside-out type declarations are tricky to get right, to
>> minimise the number of parentheses, and to format nicely.
>
> I got it right after to read:
>
> The C Programming Language  - Second edition
> Page 102.
> 5.12 Complicated Declarations

(On page 122 actually.) That section acknowledges that there are 
problems and goes on to demonstrate what may be an early version of 
Cdecl. That is, a program that converts to and from C declarations. It 
doesn't suggest a way of making it easier for for humans! Not without 
using some artificial aid.

I need to tweak my generator to do the conversion then hopefully I never 
need to understand these things again.

>>> Looks like this part on C grammar
>>>
>>> pointer:
>>> calling-convention
>>> calling-conventionOpt * type-qualifier-listopt
>>> calling-conventionOpt * type-qualifier-listopt pointer
>>>
>>> calling-convention:
>>> __fastcall
>>> etc...
>>
>> Where is that from? I can't find it in the C99 standard.
>
> The part that exists in C grammar is: (just)
>
> 6.7.6 Declarators
>
> ...
> pointer:
>   * type-qualifier-listopt
>   * type-qualifier-listopt pointer
>
> I add the imaginary "calling-convention" just to try to understand where it would be added (if exists) in the C grammar.

Type-qualifiers seem be 'const' and 'volatile'. Trouble is I've no idea 
where they go either! Especially in relation to functions as they 
wouldn't make sense there.

> Today, for my parser, I add macros
> #define __fastcall
> etc..
> If this is something very common for many compilers I was thinking to make it "build-in".

(I used to use:

#define function
#define proc void
#define global

Then I could write:

global function int foo(void);
global proc bar(void);

But I've dropped such things from the generator for less clutter (and to 
make the output more C-like. People who know C well apparently can see 
instantly where a function starts and ends).)

Among the calling conventions, I currently have to be aware of these:

__stdcall
__declspec(dllimport)
__attribute__ ((force_align_arg_pointer))

The last one is for call-backs from Windows, and is to do I think with 
keeping the x64 stack-pointer aligned to 16 bytes. It's only for gcc so 
uses this macro:

#ifdef __GNUC__
   #define gcc_callback __attribute__ ((force_align_arg_pointer))
#else
   #define gcc_callback
#endif

Then 'gcc_callback' is used. Since this is only for gcc, the positioning 
is not so critical.

-- 
Bartc

Back to comp.lang.c | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

Why I use gcc BartC <bc@freeuk.com> - 2016-09-26 14:31 +0100
  Re: Why I use gcc David Brown <david.brown@hesbynett.no> - 2016-09-26 15:45 +0200
    Re: Why I use gcc BartC <bc@freeuk.com> - 2016-09-26 15:22 +0100
      Re: Why I use gcc David Brown <david.brown@hesbynett.no> - 2016-09-26 16:31 +0200
      Re: Why I use gcc Tim Rentsch <txr@alumni.caltech.edu> - 2016-09-27 15:05 -0700
        Re: Why I use gcc BartC <bc@freeuk.com> - 2016-09-28 00:42 +0100
          Re: Why I use gcc Tim Rentsch <txr@alumni.caltech.edu> - 2016-09-28 09:50 -0700
            Re: Why I use gcc BartC <bc@freeuk.com> - 2016-09-28 18:39 +0100
              Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-07 12:28 +0100
                Re: Why I use gcc Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-10-07 04:36 -0700
              Re: Why I use gcc Thiago Adams <thiago.adams@gmail.com> - 2016-10-07 05:31 -0700
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-07 14:00 +0100
                Re: Why I use gcc Thiago Adams <thiago.adams@gmail.com> - 2016-10-07 07:48 -0700
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-07 17:36 +0100
                Re: Why I use gcc Thiago Adams <thiago.adams@gmail.com> - 2016-10-07 10:38 -0700
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-07 19:47 +0100
                Re: Why I use gcc Keith Thompson <kst-u@mib.org> - 2016-10-07 12:25 -0700
                Re: Why I use gcc Thiago Adams <thiago.adams@gmail.com> - 2016-10-07 12:26 -0700
                Re: Why I use gcc Keith Thompson <kst-u@mib.org> - 2016-10-07 13:10 -0700
                Re: Why I use gcc Thiago Adams <thiago.adams@gmail.com> - 2016-10-07 13:22 -0700
                Re: Why I use gcc Keith Thompson <kst-u@mib.org> - 2016-10-07 14:13 -0700
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-08 01:15 +0100
                Re: Why I use gcc James Harris <james.harris.1@gmail.com> - 2016-10-08 10:42 +0100
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-08 11:36 +0100
                Re: Why I use gcc Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-10-08 14:25 +0100
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-08 15:05 +0100
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-08 16:29 +0100
                Re: Why I use gcc Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-10-08 17:21 +0100
                Re: Why I use gcc Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-10-08 16:39 +0100
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-08 16:58 +0100
                Re: Why I use gcc Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-10-08 21:15 +0100
                Re: Why I use gcc supercat@casperkitty.com - 2016-10-08 11:27 -0700
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-08 20:09 +0100
                Re: Why I use gcc Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-10-08 21:16 +0100
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-08 21:28 +0100
                Re: Why I use gcc Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-10-09 01:19 +0100
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-09 01:36 +0100
                Re: Why I use gcc Thiago Adams <thiago.adams@gmail.com> - 2016-10-08 09:32 -0700
                Re: Why I use gcc Tim Rentsch <txr@alumni.caltech.edu> - 2016-10-09 03:44 -0700
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-09 12:07 +0100
                Re: Why I use gcc Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-10-09 12:12 +0100
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-09 12:37 +0100
                Re: Why I use gcc Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-10-09 13:57 +0100
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-09 14:32 +0100
                Re: Why I use gcc Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-10-09 20:00 +0100
                Re: Why I use gcc Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-10-09 13:14 -0700
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-09 22:54 +0100
                Re: Why I use gcc Tim Rentsch <txr@alumni.caltech.edu> - 2016-10-15 14:40 -0700
                Re: Why I use gcc James Kuyper <jameskuyper@verizon.net> - 2016-10-07 10:37 -0400
                Re: Why I use gcc supercat@casperkitty.com - 2016-10-07 07:52 -0700
                Re: Why I use gcc jameskuyper@verizon.net - 2016-10-07 09:10 -0700
                Re: Why I use gcc supercat@casperkitty.com - 2016-10-07 10:48 -0700
                Re: Why I use gcc jameskuyper@verizon.net - 2016-10-07 16:21 -0700
                Re: Why I use gcc supercat@casperkitty.com - 2016-10-08 11:15 -0700
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-07 17:12 +0100
                Re: Why I use gcc Keith Thompson <kst-u@mib.org> - 2016-10-07 12:20 -0700
                Re: Why I use gcc Thiago Adams <thiago.adams@gmail.com> - 2016-10-07 12:32 -0700
  Re: Why I use gcc Richard Heathfield <rjh@cpax.org.uk> - 2016-09-26 14:45 +0100
    Re: Why I use gcc BartC <bc@freeuk.com> - 2016-09-26 15:12 +0100
      Re: Why I use gcc Richard Heathfield <rjh@cpax.org.uk> - 2016-09-26 15:26 +0100
        Re: Why I use gcc supercat@casperkitty.com - 2016-09-26 08:00 -0700
          Re: Why I use gcc Tim Rentsch <txr@alumni.caltech.edu> - 2016-09-28 10:49 -0700
        Re: Why I use gcc BartC <bc@freeuk.com> - 2016-09-26 17:30 +0100
          Re: Why I use gcc David Brown <david.brown@hesbynett.no> - 2016-09-26 21:12 +0200
            Re: Why I use gcc jacobnavia <jacob@jacob.remcomp.fr> - 2016-09-26 22:09 +0200
            Re: Why I use gcc supercat@casperkitty.com - 2016-09-26 13:32 -0700
              Re: Why I use gcc jacobnavia <jacob@jacob.remcomp.fr> - 2016-09-26 23:14 +0200
                Re: Why I use gcc Richard Heathfield <rjh@cpax.org.uk> - 2016-09-26 22:47 +0100
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-09-27 01:13 +0100
                Re: Why I use gcc Richard Heathfield <rjh@cpax.org.uk> - 2016-09-27 01:18 +0100
                Re: Why I use gcc Keith Thompson <kst-u@mib.org> - 2016-09-26 17:41 -0700
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-09-27 02:01 +0100
                Re: Why I use gcc Keith Thompson <kst-u@mib.org> - 2016-09-27 08:41 -0700
                Re: Why I use gcc James Harris <james.harris.1@gmail.com> - 2016-09-27 01:41 +0100
                Re: Why I use gcc jameskuyper@verizon.net - 2016-09-26 18:15 -0700
                Re: Why I use gcc Gareth Owen <gwowen@gmail.com> - 2016-09-27 20:59 +0100
                Re: Why I use gcc Richard Heathfield <rjh@cpax.org.uk> - 2016-09-27 21:50 +0100
                Re: Why I use gcc Tim Rentsch <txr@alumni.caltech.edu> - 2016-09-28 06:26 -0700
                Re: Why I use gcc gazelle@shell.xmission.com (Kenny McCormack) - 2016-09-27 23:23 +0000
                Re: Why I use gcc Noob <root@127.0.0.1> - 2016-10-08 00:12 +0200
                Re: Why I use gcc James Kuyper <jameskuyper@verizon.net> - 2016-10-07 23:11 -0400
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-08 10:58 +0100
                Re: Why I use gcc jameskuyper@verizon.net - 2016-10-08 07:07 -0700
                Re: Why I use gcc Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-10-07 21:44 -0700
              Re: Why I use gcc David Brown <david.brown@hesbynett.no> - 2016-09-27 09:48 +0200
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-09-27 11:22 +0100
                Re: Why I use gcc David Brown <david.brown@hesbynett.no> - 2016-09-27 13:52 +0200
                Re: Why I use gcc jacobnavia <jacob@jacob.remcomp.fr> - 2016-09-27 14:47 +0200
                Re: Why I use gcc David Brown <david.brown@hesbynett.no> - 2016-09-27 15:18 +0200
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-09-27 14:38 +0100
                Re: Why I use gcc jacobnavia <jacob@jacob.remcomp.fr> - 2016-09-27 17:21 +0200
                Re: Why I use gcc jacobnavia <jacob@jacob.remcomp.fr> - 2016-09-27 17:17 +0200
                Re: Why I use gcc Keith Thompson <kst-u@mib.org> - 2016-09-27 08:52 -0700
                Re: Why I use gcc Robert Wessel <robertwessel2@yahoo.com> - 2016-09-30 02:00 -0500
                Re: Why I use gcc supercat@casperkitty.com - 2016-09-27 07:18 -0700
                Re: Why I use gcc Keith Thompson <kst-u@mib.org> - 2016-09-27 08:46 -0700
                Re: Why I use gcc supercat@casperkitty.com - 2016-09-27 09:11 -0700
                Re: Why I use gcc Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-09-27 13:33 +0100
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-09-27 14:13 +0100
                Re: Why I use gcc Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-09-27 15:30 +0100
                Re: Why I use gcc supercat@casperkitty.com - 2016-09-27 08:29 -0700
                Re: Why I use gcc supercat@casperkitty.com - 2016-09-27 07:11 -0700
            Re: Why I use gcc BartC <bc@freeuk.com> - 2016-09-26 21:43 +0100
            Re: Why I use gcc raltbos@xs4all.nl (Richard Bos) - 2016-09-30 17:50 +0000
          Re: Why I use gcc BartC <bc@freeuk.com> - 2016-09-27 01:04 +0100
            Re: Why I use gcc Keith Thompson <kst-u@mib.org> - 2016-09-26 17:39 -0700
              Re: Why I use gcc BartC <bc@freeuk.com> - 2016-09-27 01:49 +0100
                Re: Why I use gcc Ben Bacarisse <ben.usenet@bsb.me.uk> - 2016-09-27 11:39 +0100
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-09-27 11:56 +0100
                Re: Why I use gcc Tim Rentsch <txr@alumni.caltech.edu> - 2016-09-27 15:15 -0700
                Re: Why I use gcc David Brown <david.brown@hesbynett.no> - 2016-09-28 08:55 +0200
    Re: Why I use gcc jacobnavia <jacob@jacob.remcomp.fr> - 2016-09-26 22:11 +0200
      Re: Why I use gcc Richard Heathfield <rjh@cpax.org.uk> - 2016-09-26 22:04 +0100
  Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-10 11:39 +0100
    Re: Why I use gcc already5chosen@yahoo.com - 2016-10-10 07:32 -0700
      Re: Why I use gcc Richard Heathfield <rjh@cpax.org.uk> - 2016-10-10 16:17 +0100
        Re: Why I use gcc Robert Wessel <robertwessel2@yahoo.com> - 2016-10-10 21:09 -0500
          Re: Why I use gcc Richard Heathfield <rjh@cpax.org.uk> - 2016-10-11 04:18 +0100
          Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-11 10:56 +0100
            Re: Why I use gcc already5chosen@yahoo.com - 2016-10-11 04:08 -0700
              Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-11 13:36 +0100
                Re: Why I use gcc already5chosen@yahoo.com - 2016-10-11 06:20 -0700
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-11 14:29 +0100
                Re: Why I use gcc Keith Thompson <kst-u@mib.org> - 2016-10-11 09:31 -0700
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-11 19:38 +0100
                Re: Why I use gcc supercat@casperkitty.com - 2016-10-11 12:23 -0700
                Re: Why I use gcc jacobnavia <jacob@jacob.remcomp.fr> - 2016-10-11 23:19 +0200
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-11 23:26 +0100
                Re: Why I use gcc jacobnavia <jacob@jacob.remcomp.fr> - 2016-10-12 09:01 +0200
                Re: Why I use gcc supercat@casperkitty.com - 2016-10-12 08:55 -0700
                Re: Why I use gcc already5chosen@yahoo.com - 2016-10-12 10:52 -0700
                Re: Why I use gcc supercat@casperkitty.com - 2016-10-12 12:34 -0700
                Re: Why I use gcc Keith Thompson <kst-u@mib.org> - 2016-10-12 13:18 -0700
                Re: Why I use gcc luser droog <luser.droog@gmail.com> - 2016-10-12 13:24 -0700
                Re: Why I use gcc crankypuss <undisclosedUserid@gmail.com> - 2016-10-13 13:31 -0600
                Re: Why I use gcc Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-10-16 03:00 -0700
                Re: Why I use gcc crankypuss <undisclosedUserid@gmail.com> - 2016-10-16 04:46 -0600
                Re: Why I use gcc Malcolm McLean <malcolm.mclean5@btinternet.com> - 2016-10-16 04:05 -0700
                Re: Why I use gcc Keith Thompson <kst-u@mib.org> - 2016-10-11 12:28 -0700
                Re: Why I use gcc Thiago Adams <thiago.adams@gmail.com> - 2016-10-11 13:24 -0700
                Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-11 21:28 +0100
                Re: Why I use gcc gazelle@shell.xmission.com (Kenny McCormack) - 2016-10-11 20:43 +0000
                Re: Why I use gcc Robert Wessel <robertwessel2@yahoo.com> - 2016-10-11 23:40 -0500
            Re: Why I use gcc already5chosen@yahoo.com - 2016-10-11 04:40 -0700
      Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-10 18:19 +0100
    Re: Why I use gcc Keith Thompson <kst-u@mib.org> - 2016-10-10 09:08 -0700
      Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-10 18:04 +0100
        Re: Why I use gcc supercat@casperkitty.com - 2016-10-10 10:39 -0700
        Re: Why I use gcc Keith Thompson <kst-u@mib.org> - 2016-10-10 11:25 -0700
      Re: Why I use gcc Jerry Stuckle <jstucklex@attglobal.net> - 2016-10-10 17:05 -0400
        Re: Why I use gcc supercat@casperkitty.com - 2016-10-10 14:46 -0700
    Re: Why I use gcc BartC <bc@freeuk.com> - 2016-10-15 13:39 +0100
      Re: Why I use gcc Keith Thompson <kst-u@mib.org> - 2016-10-15 13:40 -0700
        Re: Why I use gcc already5chosen@yahoo.com - 2016-10-15 13:46 -0700

csiph-web