public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
From: Danny Smith <dannysmith@clear.net.nz>
To: nobody@gcc.gnu.org
Cc: gcc-prs@gcc.gnu.org,
Subject: Re: c/8859: [CygWin] Initializer element allegedly not constant
Date: Mon, 07 Apr 2003 21:56:00 -0000	[thread overview]
Message-ID: <20030407215600.12468.qmail@sources.redhat.com> (raw)

The following reply was made to PR c/8859; it has been noted by GNATS.

From: Danny Smith <dannysmith@clear.net.nz>
To: mlt@bredband.net, gcc-gnats@gcc.gnu.org, gcc-bugs@gcc.gnu.org,
 nobody@gcc.gnu.org, gcc-prs@gcc.gnu.org
Cc:  
Subject: Re: c/8859: [CygWin] Initializer element allegedly not constant
Date: Mon, 07 Apr 2003 22:49:35 +0100

 http://gcc.gnu.org/cgi-bin/gnatseb.pl?cmd=view%20audit-trail&database=gc
 c&pr=8859
 
 
 This is not a a regression, but  YA  "dllimport" expectation that the MS
 native compiler fulfills, but GCC does not.
 
 The dllimport attribute,  does this in config/i386/winnt.c
 (i386_pe_mark_dllimport):
 
 at line 343, config/i386/winnt.c:
 
   /* Can't treat a pointer to this as a constant address */
   DECL_NON_ADDR_CONST_P (decl) = 1;
 
 This is because:
 
 __attribute__((dllimport)) int foo;
 
 really means something like:
 
 extern int* _imp__foo;
 #define foo  *_imp__foo
 
 Because of this, the assignment error in the PR is actually valid: in C
 it is illegal
 to assign to non-constant at global scope. in C++  it works but requires
 dynamic
 global initialisation.
 
 Apparently, the native MS compiler ignores the the dllimport attribute
 in (some/all??) cases of assignment at global scope.
 
 Golly, I wonder if these MS rules are documented somewhere.
 I haven't found all the rules yet.
 
 
 Danny
 


             reply	other threads:[~2003-04-07 21:56 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-04-07 21:56 Danny Smith [this message]
  -- strict thread matches above, loose matches on Subject: below --
2003-04-07 13:52 bangerth

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20030407215600.12468.qmail@sources.redhat.com \
    --to=dannysmith@clear.net.nz \
    --cc=gcc-prs@gcc.gnu.org \
    --cc=nobody@gcc.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).