This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Re-implement COMMON and EQUIVALENCE
- From: canqun at nudt dot edu dot cn
- To: Richard Henderson <rth at redhat dot com>
- Cc: Paul Brook <paul at nowt dot org>, gcc-patches at gcc dot gnu dot org,fortran at gcc dot gnu dot org
- Date: Thu, 4 Dec 2003 09:36:18 +0800 (HKT)
- Subject: Re: Re-implement COMMON and EQUIVALENCE
- Reply-to: canqun at nudt dot edu dot cn
Richard Henderson <rth@redhat.com>:
> On Thu, Dec 04, 2003 at 08:30:25AM +0800,
canqun@nudt.edu.cn wrote:
> > + * stor-layout.c: Make
update_alignment_for_field non-static.
>
> Should read like
>
> * stor-layout.c (update_alignment_for_field):
Export.
>
> Also, place a declaration for this function in tree.h
next to
> the other record layout functions. Remove it from
trans-common.c.
>
> Ok with those changes. Do you have cvs write
permission?
>
>
> r~
>
Yes, I have cvs write permission. Is it OK to commit
all (including my previous patch to gcc/fortran for
COMMON and EQUIVALENCE)?
+ 2003-12-04 Canqun Yang <canqun@nudt.edu.cn>
+
+ * stor-layout.c (update_alignment_for_field):
Export.
+ * tree.h (update_alignment_for_field):
Declare.
+
diff -c3p ./old/ChangeLog.tree-ssa ./new/ChangeLog.tree-ssa
*** ./old/ChangeLog.tree-ssa 2003-12-04 09:15:59.000000000 +0800
--- ./new/ChangeLog.tree-ssa 2003-12-04 09:17:18.000000000 +0800
***************
*** 1,3 ****
--- 1,8 ----
+ 2003-12-04 Canqun Yang <canqun@nudt.edu.cn>
+
+ * stor-layout.c (update_alignment_for_field): Export.
+ * tree.h (update_alignment_for_field): Declare.
+
2003-12-03 Jan Hubicka <jh@suse.cz>
* Makefile.in (tree-optimize.o): Depend on cgraph.h
diff -c3p ./old/stor-layout.c ./new/stor-layout.c
*** ./old/stor-layout.c 2003-12-04 09:15:23.000000000 +0800
--- ./new/stor-layout.c 2003-12-04 09:18:36.000000000 +0800
*************** static void place_union_field (record_la
*** 66,73 ****
static int excess_unit_span (HOST_WIDE_INT, HOST_WIDE_INT, HOST_WIDE_INT,
HOST_WIDE_INT, tree);
#endif
- static unsigned int update_alignment_for_field (record_layout_info, tree,
- unsigned int);
extern void debug_rli (record_layout_info);
/* SAVE_EXPRs for sizes of types and decls, waiting to be expanded. */
--- 66,71 ----
*************** rli_size_so_far (record_layout_info rli)
*** 682,688 ****
variable alignment fields in RLI, and return the alignment to give
the FIELD. */
! static unsigned int
update_alignment_for_field (record_layout_info rli, tree field,
unsigned int known_align)
{
--- 680,686 ----
variable alignment fields in RLI, and return the alignment to give
the FIELD. */
! unsigned int
update_alignment_for_field (record_layout_info rli, tree field,
unsigned int known_align)
{
diff -c3p ./old/tree.h ./new/tree.h
*** ./old/tree.h 2003-12-04 09:16:43.000000000 +0800
--- ./new/tree.h 2003-12-04 09:19:52.000000000 +0800
*************** extern void set_decl_origin_self (tree);
*** 3476,3481 ****
--- 3476,3483 ----
extern void set_min_and_max_values_for_integral_type (tree, int, bool);
extern void fixup_signed_type (tree);
extern void internal_reference_types (void);
+ extern unsigned int update_alignment_for_field (record_layout_info, tree,
+ unsigned int);
/* varasm.c */
extern void make_decl_rtl (tree, const char *);