Commit 7771032e by Dave Brolley Committed by Dave Brolley

stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for arrays of bits.

Thu Aug 20 13:15:11 1998  Dave Brolley  <brolley@cygnus.com>
	* stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for
	arrays of bits.
	* cpplib.c (cpp_define): Handle macros with parameters.

From-SVN: r21872
parent ee712d65
Thu Aug 20 13:15:11 1998 Dave Brolley <brolley@cygnus.com>
* stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for
arrays of bits.
* cpplib.c (cpp_define): Handle macros with parameters.
Wed Aug 19 21:33:19 1998 David Edelsohn <edelsohn@mhpcc.edu>
* rs6000.c (rs6000_output_load_toc_table): Use ld for 64-bit.
......
......@@ -534,6 +534,12 @@ cpp_define (pfile, str)
}
while (is_idchar[*++p])
;
if (*p == '(') {
while (is_idchar[*++p] || *p == ',' || is_hor_space[*p])
;
if (*p++ != ')')
p = (U_CHAR *) str; /* Error */
}
if (*p == 0)
{
buf = (U_CHAR *) alloca (p - buf + 4);
......
......@@ -834,8 +834,12 @@ layout_type (type)
size directly, rather than do some division thing below.
This optimization helps Fortran assumed-size arrays
(where the size of the array is determined at runtime)
substantially. */
if (TYPE_SIZE_UNIT (element) != 0)
substantially.
Note that we can't do this in the case where the size of
the elements is one bit since TYPE_SIZE_UNIT cannot be
set correctly in that case. */
if (TYPE_SIZE_UNIT (element) != 0
&& element_size != integer_one_node)
{
TYPE_SIZE_UNIT (type)
= size_binop (MULT_EXPR, TYPE_SIZE_UNIT (element), length);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment