public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Ulrich Weigand <weigand@immd1.informatik.uni-erlangen.de>
To: kenner@vlsi1.ultra.nyu.edu (Richard Kenner)
Cc: weigand@immd1.informatik.uni-erlangen.de,
	gcc-patches@gcc.gnu.org, gcc@gcc.gnu.org
Subject: Re: DATA_ALIGNMENT vs. DECL_USER_ALIGNMENT
Date: Thu, 10 Apr 2003 20:28:00 -0000	[thread overview]
Message-ID: <200304102009.WAA11822@faui11.informatik.uni-erlangen.de> (raw)
In-Reply-To: <10304101940.AA01772@vlsi1.ultra.nyu.edu> from "Richard Kenner" at Apr 10, 2003 03:40:53 PM

Richard Kenner wrote:

> After extensive discussion, I think the proper thing is for the Ada
> front end to set TYPE_USER_ALIGN on all (or nearly all) types, but
> not to set DECL_USER_ALIGN on any decls.  However, when I looked, I see
> that is indeed what it *does* do, so I'm now confused about the problem
> you are seeing.

Well, it looks like DECL_USER_ALIGN is copied from TYPE_USER_ALIGN
in do_type_align (stor-layout.c), called via this call chain:

#0  do_type_align (type=0x100001ff000, decl=0x1000025a680) at ../../gcc-head/gcc/stor-layout.c:369
#1  0x0000000080685996 in layout_decl (decl=0x1000025a680, known_align=0) at ../../gcc-head/gcc/stor-layout.c:429
#2  0x00000000806ae7b8 in build_decl (code=VAR_DECL, name=0x10000258438, type=0x100001ff000) at ../../gcc-head/gcc/tree.c:2428
#3  0x0000000080038a88 in create_var_decl (var_name=0x10000258438, asm_name=0x10000258438, type=0x100001ff000, var_init=0x100001ccb40, const_flag=0,
    public_flag=1, extern_flag=0, static_flag=0, attr_list=0x0) at ../../gcc-head/gcc/ada/utils.c:1290
#4  0x000000008000ae98 in gnat_to_gnu_entity (gnat_entity=1370, gnu_expr=0x100001ccb40, definition=1) at ../../gcc-head/gcc/ada/decl.c:1021
#5  0x0000000080064864 in tree_transform (gnat_node=1376) at ../../gcc-head/gcc/ada/trans.c:773
#6  0x00000000800625b4 in gnat_to_code (gnat_node=1376) at ../../gcc-head/gcc/ada/trans.c:238
#7  0x0000000080075d72 in process_decls (gnat_decls=-99999987, gnat_decls2=0, gnat_end_list=0, pass1p=1, pass2p=1) at ../../gcc-head/gcc/ada/trans.c:4332
#8  0x00000000800712fa in tree_transform (gnat_node=1355) at ../../gcc-head/gcc/ada/trans.c:3229
#9  0x00000000800625b4 in gnat_to_code (gnat_node=1355) at ../../gcc-head/gcc/ada/trans.c:238
#10 0x000000008006256a in gigi (gnat_root=1355, max_gnat_node=1874, number_name=1117, nodes_ptr=0x1000023f010, next_node_ptr=0x100003f7010,
    prev_node_ptr=0x10000428010, elists_ptr=0x80c4f450, elmts_ptr=0x80c4faa0, strings_ptr=0x80cb1c90, string_chars_ptr=0x80cb0900, list_headers_ptr=0x80cd33b0,
    number_units=2, file_info_ptr=0x1ffffffee28 "\021á¦0", standard_integer=42, standard_long_long_float=66, standard_exception_type=1033,
    gigi_operating_mode=0) at ../../gcc-head/gcc/ada/trans.c:221
internal error - unimplemented function unk_lang_create_fundamental_type called.
(looks like my gdb doesn't like Ada ...)

What happens is that build_decl calls make_node (VAR_DECL), which 
returns a node with DECL_ALIGN == 1, and subsequently calls layout_decl,
which calls do_type_align:

static inline void
do_type_align (tree type, tree decl)
{
  if (TYPE_ALIGN (type) > DECL_ALIGN (decl))
    {
      DECL_ALIGN (decl) = TYPE_ALIGN (type);
      DECL_USER_ALIGN (decl) = TYPE_USER_ALIGN (type);
    }
}

and since TYPE_ALIGN is 8 and DECL_ALIGN is 1,
DECL_USER_ALIGN gets set to TYPE_USER_ALIGN (which is set).

Bye,
Ulrich

-- 
  Dr. Ulrich Weigand
  weigand@informatik.uni-erlangen.de

  reply	other threads:[~2003-04-10 20:13 UTC|newest]

Thread overview: 101+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-04-10 20:13 Richard Kenner
2003-04-10 20:28 ` Ulrich Weigand [this message]
  -- strict thread matches above, loose matches on Subject: below --
2003-04-23  3:29 Robert Dewar
2003-04-23  2:20 Richard Kenner
2003-04-23  5:31 ` Alexandre Oliva
2003-04-24  6:23   ` Jason Merrill
2003-04-24  8:43     ` Geert Bosch
2003-04-24 17:48       ` Jason Merrill
2003-04-24 18:04         ` Zack Weinberg
2003-04-24 19:31           ` Jason Merrill
2003-04-24 21:32         ` Geert Bosch
2003-04-24 23:24           ` Jason Merrill
2003-04-25  2:56     ` Richard Henderson
2003-04-22 15:08 Richard Kenner
2003-04-23  1:07 ` Alexandre Oliva
2003-04-22  0:15 Robert Dewar
2003-04-22  1:58 ` Jamie Lokier
2003-04-22  0:11 Robert Dewar
2003-04-22  1:35 ` Jamie Lokier
2003-04-21 21:25 Richard Kenner
2003-04-21 20:59 Richard Kenner
2003-04-21 21:14 ` Jamie Lokier
2003-04-21 20:45 Richard Kenner
2003-04-21 20:58 ` Jamie Lokier
2003-04-21 18:14 Richard Kenner
2003-04-21 20:33 ` Jamie Lokier
2003-04-21 17:25 Richard Kenner
2003-04-21 18:14 ` Jamie Lokier
2003-04-22  9:00 ` Alexandre Oliva
2003-04-20 21:28 Robert Dewar
2003-04-21 17:05 ` Alexandre Oliva
2003-04-20 21:19 Robert Dewar
2003-04-18 11:41 Richard Kenner
2003-04-18  8:06 Richard Kenner
2003-04-18  8:59 ` Richard Henderson
2003-04-17 21:41 Richard Kenner
2003-04-17 23:20 ` Alexandre Oliva
2003-04-18  1:16 ` Richard Henderson
2003-04-17 21:40 Richard Kenner
2003-04-17 11:56 Richard Kenner
2003-04-17 20:35 ` Alexandre Oliva
2003-04-17 22:41   ` Geert Bosch
2003-04-17 23:19     ` Alexandre Oliva
2003-04-17 10:44 Robert Dewar
2003-04-17 20:30 ` Alexandre Oliva
2003-04-17  8:12 Richard Kenner
2003-04-17  8:38 ` Alexandre Oliva
2003-04-11 22:26 Robert Dewar
2003-04-11 16:59 Robert Dewar
2003-04-11 18:49 ` Laurent Guerby
2003-04-11 16:51 Robert Dewar
2003-04-11 14:52 Robert Dewar
2003-04-11  4:45 Richard Kenner
2003-04-17  5:39 ` Alexandre Oliva
2003-04-11  0:45 Ulrich Weigand
2003-04-10 22:43 Richard Kenner
2003-04-11  0:31 ` Richard Henderson
2003-04-11  2:19   ` David Edelsohn
2003-04-10 22:23 Richard Kenner
2003-04-10 22:16 Richard Kenner
2003-04-10 22:07 Richard Kenner
2003-04-10 22:23 ` David Edelsohn
2003-04-10 22:05 Robert Dewar
2003-04-10 22:02 Richard Kenner
2003-04-10 22:24 ` Richard Henderson
2003-04-11 11:20   ` Laurent Guerby
2003-04-11 11:57     ` Arnaud Charlet
2003-04-11 14:16       ` Laurent Guerby
2003-04-10 21:56 Richard Kenner
2003-04-10 22:02 ` David Edelsohn
2003-04-10 21:45 Richard Kenner
2003-04-10 21:52 ` David Edelsohn
2003-04-10 21:57 ` Richard Henderson
2003-04-10 21:44 Richard Kenner
2003-04-10 21:32 Robert Dewar
2003-04-10 21:32 ` David Edelsohn
2003-04-10 21:31 Richard Kenner
2003-04-10 21:29 Robert Dewar
2003-04-10 21:10 Richard Kenner
2003-04-10 21:10 Robert Dewar
2003-04-10 21:17 ` David Edelsohn
2003-04-10 21:04 Richard Kenner
2003-04-10 21:41 ` Geoff Keating
2003-04-10 20:57 Robert Dewar
2003-04-10 21:07 ` Ulrich Weigand
2003-04-10 20:52 Robert Dewar
2003-04-10 20:39 Richard Kenner
2003-04-10 21:00 ` Geoff Keating
2003-04-10 21:01 ` Ulrich Weigand
2003-04-10 21:44 ` Richard Henderson
2003-04-10 19:20 Richard Kenner
2003-04-10  5:33 Richard Kenner
2003-04-10  7:20 ` Ulrich Weigand
2003-04-09 23:31 Ulrich Weigand
2003-04-10  2:27 ` Richard Henderson
2003-04-10  3:10   ` Ulrich Weigand
2003-04-10 16:20     ` Ulrich Weigand
2003-04-10 16:39       ` Geoff Keating
2003-04-10 16:44         ` Ulrich Weigand
2003-04-10 18:06       ` Richard Henderson
2003-04-08 17:47 Ulrich Weigand

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=200304102009.WAA11822@faui11.informatik.uni-erlangen.de \
    --to=weigand@immd1.informatik.uni-erlangen.de \
    --cc=gcc-patches@gcc.gnu.org \
    --cc=gcc@gcc.gnu.org \
    --cc=kenner@vlsi1.ultra.nyu.edu \
    /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).