class.c: Remove some unused variables.
authorPer Bothner <bothner@gcc.gnu.org>
Thu, 12 Nov 1998 14:26:08 +0000 (06:26 -0800)
committerPer Bothner <bothner@gcc.gnu.org>
Thu, 12 Nov 1998 14:26:08 +0000 (06:26 -0800)

* class.c:  Remove some unused variables.
* constants.c (find_string_constant):  New function.
(count_constant_pool_bytes):  Fix to correctly handle wide constants.
* decl.c (complete_start_java_method):  Don't _Jv_InitClass
if flag_emit_class_files.

From-SVN: r23616

gcc/java/class.c
gcc/java/constants.c
gcc/java/decl.c

index 47e9f5c93e600cd49b116d509ea6fb52500b269b..8539219e3c2d7f36acbcfa4c2469974f40eba2d1 100644 (file)
@@ -422,7 +422,7 @@ add_method (this_class, access_flags, name, method_sig)
      tree method_sig;
 {
   tree handle_class = CLASS_TO_HANDLE_TYPE (this_class);
-  tree function_type, method_type, fndecl;
+  tree function_type, fndecl;
   unsigned char *sig = (unsigned char*)IDENTIFIER_POINTER (method_sig);
   push_obstacks (&permanent_obstack, &permanent_obstack);
   if (sig[0] != '(')
@@ -1172,9 +1172,6 @@ append_gpp_mangled_type (obstack, type)
      struct obstack *obstack;
      tree type;
 {
-  char buf[8];
-  int len;
-  char *ptr;
   switch (TREE_CODE (type))
     {
       char code;
index 507d48473871e54161e13b9e3645fd09a4ac26a4..6d4ad2f8fca694118131bfee93120f638296ce6a 100644 (file)
@@ -140,6 +140,18 @@ find_class_constant (cpool, type)
                                        build_internal_class_name (type));
 }
 
+/* Allocate a CONSTANT_string entry given a STRING_CST. */
+
+int
+find_string_constant (cpool, string)
+     CPool *cpool;
+     tree string;
+{
+  string = get_identifier (TREE_STRING_POINTER (string));
+  return find_class_or_string_constant (cpool, CONSTANT_String, string);
+
+}
+
 /* Find (or create) a CONSTANT_NameAndType matching NAME and TYPE.
    Return its index in the constant pool CPOOL. */
 
@@ -202,8 +214,7 @@ count_constant_pool_bytes (cpool)
 {
   int size = 2;
   int i = 1;
-  jword *datap = &cpool->data[1];;
-  for ( ;  i < cpool->count;  i++, datap++)
+  for ( ;  i < cpool->count;  i++)
     {
       size++;
       switch (cpool->tags[i])
@@ -222,15 +233,19 @@ count_constant_pool_bytes (cpool)
          break;
        case CONSTANT_Long:
        case CONSTANT_Double:
-         size += 4;
+         size += 8;
+         i++;
          break;
        case CONSTANT_Utf8:
          {
-           tree t = (tree) *datap;
+           tree t = (tree) cpool->data[i];
            int len = IDENTIFIER_LENGTH (t);
            size += len + 2;
          }
          break;
+       default:
+         /* Second word of CONSTANT_Long and  CONSTANT_Double. */
+         size--;
        }
     }
   return size;
index 0831a37b89a25daa70207f734eadeb9d65b224f5..38b2badd28ebb8a5aeecf762bfbde81b4d17ad97 100644 (file)
@@ -1482,7 +1482,8 @@ complete_start_java_method (fndecl)
 
 #endif
 
-  if (METHOD_STATIC (fndecl) && ! METHOD_PRIVATE (fndecl))
+  if (METHOD_STATIC (fndecl) && ! METHOD_PRIVATE (fndecl)
+      && ! flag_emit_class_files)
     {
       tree clas = DECL_CONTEXT (fndecl);
       tree init = build (CALL_EXPR, void_type_node,