OSDN Git Service

* c-decl.c (grokdeclarator): Allow for function definition where
[pf3gnuchains/gcc-fork.git] / libobjc / encoding.c
index 7bde284..dba2032 100644 (file)
@@ -1,23 +1,23 @@
 /* Encoding of types for Objective C.
-   Copyright (C) 1993, 1995, 1996, 1997, 1998, 2000, 2002
+   Copyright (C) 1993, 1995, 1996, 1997, 1998, 2000, 2002, 2004
    Free Software Foundation, Inc.
    Contributed by Kresten Krab Thorup
    Bitfield support by Ovidiu Predescu
 
-This file is part of GNU CC.
+This file is part of GCC.
 
-GNU CC is free software; you can redistribute it and/or modify
+GCC is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2, or (at your option)
 any later version.
 
-GNU CC is distributed in the hope that it will be useful,
+GCC is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING.  If not, write to
+along with GCC; see the file COPYING.  If not, write to
 the Free Software Foundation, 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.  */
 
@@ -79,14 +79,29 @@ Boston, MA 02111-1307, USA.  */
 /* Some ports (eg ARM) allow the structure size boundary to be
    selected at compile-time.  We override the normal definition with
    one that has a constant value for this compilation.  */
-#undef STRUCTURE_SIZE_BOUNDARY
+#ifndef BITS_PER_UNIT
+#define BITS_PER_UNIT 8
+#endif
+#undef  STRUCTURE_SIZE_BOUNDARY
 #define STRUCTURE_SIZE_BOUNDARY (BITS_PER_UNIT * sizeof (struct{char a;}))
 
 /* Some ROUND_TYPE_ALIGN macros use TARGET_foo, and consequently
-   target_flags.  Define a dummy entry here to so we don't die.  */
-/* ??? FIXME: As of 2002-06-21, the attribute `unused' doesn't seem to
-   eliminate the warning.  */
-static int __attribute__ ((__unused__)) target_flags = 0;
+   target_flags.  Define a dummy entry here to so we don't die.
+   We have to rename it because target_flags may already have been
+   declared extern.  */
+#define target_flags not_target_flags
+static int __attribute__ ((__unused__)) not_target_flags = 0;
+
+
+/*  FIXME: while this file has no business including tm.h, this
+    definitely has no business defining this macro but it
+    is only way around without really rewritting this file,
+    should look after the branch of 3.4 to fix this.  */
+#define rs6000_special_round_type_align(STRUCT, COMPUTED, SPECIFIED)   \
+  ((TYPE_FIELDS (STRUCT) != 0                                          \
+    && DECL_MODE (TYPE_FIELDS (STRUCT)) == DFmode)                     \
+   ? MAX (MAX (COMPUTED, SPECIFIED), 64)                               \
+   : MAX (COMPUTED, SPECIFIED))
 
 /*
   return the size of an object specified by type