From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28504 invoked by alias); 21 Apr 2003 16:47:05 -0000 Mailing-List: contact gcc-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-owner@gcc.gnu.org Received: (qmail 28417 invoked from network); 21 Apr 2003 16:46:53 -0000 Received: from unknown (HELO vlsi1.ultra.nyu.edu) (128.122.140.213) by sources.redhat.com with SMTP; 21 Apr 2003 16:46:53 -0000 Received: by vlsi1.ultra.nyu.edu (4.1/1.34) id AA29704; Mon, 21 Apr 03 12:51:12 EDT Date: Mon, 21 Apr 2003 17:25:00 -0000 From: kenner@vlsi1.ultra.nyu.edu (Richard Kenner) Message-Id: <10304211651.AA29704@vlsi1.ultra.nyu.edu> To: aoliva@redhat.com Subject: Re: DATA_ALIGNMENT vs. DECL_USER_ALIGNMENT Cc: gcc-patches@gcc.gnu.org, gcc@gcc.gnu.org X-SW-Source: 2003-04/txt/msg00991.txt.bz2 So if you turn: T i __attribute__((align(2))); T j __attribute__((align(2))); into typedef T T2 __attribute__((align(2))); T2 i, j; you say we could get different code? I say so, yes. And the reason is as I said: you specify alignment for a type both for interface and efficiency reasons, but for an object only for the latter. So there is a difference in meaning between these two constructs.