diff options
author | Ian Lance Taylor <iant@google.com> | 2012-04-22 18:51:44 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2012-04-22 18:51:44 +0000 |
commit | f12e8bd5c3e7063f4e616bda3cab540ea73ac446 (patch) | |
tree | dc74fb1f36cb378bbb8295d9aa9daefe37eff0f2 /gcc | |
parent | 970aa0b9a95103d518c7e96c70794ba32d074368 (diff) | |
download | gcc-f12e8bd5c3e7063f4e616bda3cab540ea73ac446.zip gcc-f12e8bd5c3e7063f4e616bda3cab540ea73ac446.tar.gz gcc-f12e8bd5c3e7063f4e616bda3cab540ea73ac446.tar.bz2 |
godump.c (go_output_typedef): Dump size of structs.
* godump.c (go_output_typedef): Dump size of structs.
mksysinfo, syscall: Change Sizeof names from var to const.
From-SVN: r186678
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/godump.c | 20 |
2 files changed, 24 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7a59d01..6756c5d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2012-04-22 Ian Lance Taylor <iant@google.com> + + * godump.c (go_output_typedef): Dump size of structs. + 2012-04-22 Razya Ladelsky <razya@il.ibm.com> Correcting transform_to_exit_first_loop + fix to PR46886 diff --git a/gcc/godump.c b/gcc/godump.c index a42e641..ab1edc6 100644 --- a/gcc/godump.c +++ b/gcc/godump.c @@ -1024,12 +1024,25 @@ go_output_typedef (struct godump_container *container, tree decl) fprintf (go_dump_file, "type _%s ", IDENTIFIER_POINTER (DECL_NAME (decl))); go_output_type (container); + + if (RECORD_OR_UNION_TYPE_P (TREE_TYPE (decl))) + { + HOST_WIDE_INT size = int_size_in_bytes (TREE_TYPE (decl)); + + if (size > 0) + fprintf (go_dump_file, + "\nconst _sizeof_%s = " HOST_WIDE_INT_PRINT_DEC, + IDENTIFIER_POINTER (DECL_NAME (decl)), + size); + } + pointer_set_insert (container->decls_seen, decl); } else if (RECORD_OR_UNION_TYPE_P (TREE_TYPE (decl))) { void **slot; const char *type; + HOST_WIDE_INT size; type = IDENTIFIER_POINTER (TYPE_NAME (TREE_TYPE ((decl)))); /* If type defined already, skip. */ @@ -1047,6 +1060,13 @@ go_output_typedef (struct godump_container *container, tree decl) fprintf (go_dump_file, "type _%s ", IDENTIFIER_POINTER (TYPE_NAME (TREE_TYPE (decl)))); go_output_type (container); + + size = int_size_in_bytes (TREE_TYPE (decl)); + if (size > 0) + fprintf (go_dump_file, + "\nconst _sizeof_%s = " HOST_WIDE_INT_PRINT_DEC, + IDENTIFIER_POINTER (TYPE_NAME (TREE_TYPE (decl))), + size); } else return; |