OSDN Git Service

Thu Aug 20 13:15:11 1998 Dave Brolley <brolley@cygnus.com>
authorbrolley <brolley@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 20 Aug 1998 10:29:22 +0000 (10:29 +0000)
committerbrolley <brolley@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 20 Aug 1998 10:29:22 +0000 (10:29 +0000)
* stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for
arrays of bits.
* cpplib.c (cpp_define): Handle macros with parameters.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@21872 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/cpplib.c
gcc/stor-layout.c

index 4c15996..16292f4 100644 (file)
@@ -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.
index 5b10349..b9ded52 100644 (file)
@@ -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);
index b44a411..3c7cf23 100644 (file)
@@ -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);