From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27948 invoked by alias); 20 Feb 2003 07:46:01 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 27933 invoked by uid 71); 20 Feb 2003 07:46:01 -0000 Date: Thu, 20 Feb 2003 07:46:00 -0000 Message-ID: <20030220074601.27931.qmail@sources.redhat.com> To: nobody@gcc.gnu.org Cc: gcc-prs@gcc.gnu.org, From: "Jan Beulich" Subject: Re: middle-end/9725: Invalid dependency determination Reply-To: "Jan Beulich" X-SW-Source: 2003-02/txt/msg00971.txt.bz2 List-Id: The following reply was made to PR middle-end/9725; it has been noted by GNATS. From: "Jan Beulich" To: Cc: , Subject: Re: middle-end/9725: Invalid dependency determination Date: Thu, 20 Feb 2003 08:39:50 +0100 Which doesn't work (and possibly doesn't have to as outlined in the other mail, depending on how you interpret the wording of the standard) when used as (&u.s)->f1 = x; (&u.s)->f2 = y; which is (supposedly) equivalent to the use of the . operator... Jan >>> Momchil Velikov 19.02.03 22:10:36 >>> >>>>> "Jan" == Jan Beulich writes: Jan> But why is the structure incompatible? Jan> "... an aggregate or union type that includes one of the aforementioned Jan> types among its Jan> members (including, recursively, a member of a subaggregate or Jan> contained union), ..." which means that you example should be coded as struct s { unsigned f1:16; unsigned f2:16; }; void test (unsigned *pf, unsigned x, unsigned y) { union { unsigned f; struct s s; } u; u.s.f1 = x; u.s.f2 = y; *pf = u.f; } ~velco