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


Groups > comp.std.c > #1572

Re: When is the complete type of an external definition known?

From Wojtek Lerch <wojtek_l@yahoo.ca>
Newsgroups comp.std.c
Subject Re: When is the complete type of an external definition known?
Date 2012-08-20 16:58 -0400
Message-ID <a9fmnoFhphU1@mid.individual.net> (permalink)
References (3 earlier) <slrn3vfsk32o91.221.ike@iceland.freeshell.org> <fdc7ea7c-759a-4300-b396-36aad059fb58@googlegroups.com> <ln1uj2l2tk.fsf@nuthaus.mib.org> <a9f1hmFe4bU1@mid.individual.net> <lnipcdjpt4.fsf@nuthaus.mib.org>

Show all headers | View raw


On 20-Aug-12 4:01 PM, Keith Thompson wrote:
> Wojtek Lerch <wojtek_l@yahoo.ca> writes:
>>> [...]
>>>>>     static int a[];
>>>>>
>>>>> violates 6.9.2 p3:
...
>> Out of curiosity, does anybody know the reason for this restriction?  It
>> sounds like a useful thing to be able to do.  (And I have to admit that
>> did it more than once, before I knew about this.)  Is it because
>> different compilers used to interpret it differently back in the day,
>> and the standard didn't want to break them?  The Rationale doesn't seem
>> to mention "tentative" at all.
>
> And assuming the restriction is necessary, why isn't it a constraint?

If the reason is because at the time all compilers treated this 
construct as valid but interpreted it with different semantics, then 
making it a constraint would mean that some compilers would need to 
change (and start to produce a diagnostic).

Compare this to 6.9p5, which makes it undefined behaviour to have 
multiple definitions of the same symbol with external linkage, or a 
missing definition of a symbol that is referenced.  I don't think I have 
ever worked with a linker that wouldn't treat those as fatal errors, but 
I assume that the reason this is not a constraint either is because back 
in the eighties some linkers accepted it.

> Is it difficult for a compiler to detect a violation?

As far as I can tell, recognizing that the type is incomplete is the 
only non-trivial part.

Back to comp.std.c | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

When is the complete type of an external definition known? Vlad from Moscow <vlad.moscow@mail.ru> - 2012-08-19 13:40 -0700
  Re: When is the complete type of an external definition known? Keith Thompson <kst-u@mib.org> - 2012-08-19 14:06 -0700
    Re: When is the complete type of an external definition known? Vlad from Moscow <vlad.moscow@mail.ru> - 2012-08-19 14:30 -0700
      Re: When is the complete type of an external definition known? Ike Naar <ike@iceland.freeshell.org> - 2012-08-19 21:56 +0000
        Re: When is the complete type of an external definition known? Vlad from Moscow <vlad.moscow@mail.ru> - 2012-08-19 16:42 -0700
          Re: When is the complete type of an external definition known? Keith Thompson <kst-u@mib.org> - 2012-08-19 19:22 -0700
            Re: When is the complete type of an external definition known? Wojtek Lerch <wojtek_l@yahoo.ca> - 2012-08-20 10:57 -0400
              Re: When is the complete type of an external definition known? Keith Thompson <kst-u@mib.org> - 2012-08-20 13:01 -0700
                Re: When is the complete type of an external definition known? Wojtek Lerch <wojtek_l@yahoo.ca> - 2012-08-20 16:58 -0400
              Re: When is the complete type of an external definition known? pacman@kosh.dhis.org (Alan Curry) - 2012-08-21 00:44 +0000
          Re: When is the complete type of an external definition known? Ike Naar <ike@sverige.freeshell.org> - 2012-08-20 05:57 +0000
            Re: When is the complete type of an external definition known? Vlad from Moscow <vlad.moscow@mail.ru> - 2012-08-20 03:22 -0700
              Re: When is the complete type of an external definition known? Ike Naar <ike@sverige.freeshell.org> - 2012-08-20 12:27 +0000
                Re: When is the complete type of an external definition known? Jens Gustedt <jens.gustedt@loria.fr> - 2012-08-20 17:04 +0200
                Re: When is the complete type of an external definition known? Ike Naar <ike@iceland.freeshell.org> - 2012-08-20 16:35 +0000
                Re: When is the complete type of an external definition known? Jens Gustedt <jens.gustedt@loria.fr> - 2012-08-20 20:43 +0200
          Re: When is the complete type of an external definition known? James Kuyper <jameskuyper@verizon.net> - 2012-08-20 08:46 -0400
  Re: When is the complete type of an external definition known? Vlad from Moscow <vlad.moscow@mail.ru> - 2012-08-19 14:24 -0700
  Re: When is the complete type of an external definition known? "Ersek, Laszlo" <lacos@caesar.elte.hu> - 2012-08-19 23:36 +0200
    Re: When is the complete type of an external definition known? Vlad from Moscow <vlad.moscow@mail.ru> - 2012-08-19 14:46 -0700

csiph-web