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
This commit is contained in:
parent
ee712d650b
commit
7771032e79
3 changed files with 18 additions and 2 deletions
|
@ -1,3 +1,9 @@
|
|||
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);
|
||||
|
|
Loading…
Add table
Reference in a new issue