aboutsummaryrefslogtreecommitdiff
path: root/gcc/java
diff options
context:
space:
mode:
authorPer Bothner <bothner@gcc.gnu.org>1998-12-12 13:48:07 -0800
committerPer Bothner <bothner@gcc.gnu.org>1998-12-12 13:48:07 -0800
commit091c8dfd4c09098d29f8bd129d993e8a7788d61a (patch)
treee7d3b4a8e356829d88d60bb6369360c08aa7d446 /gcc/java
parent4cc4a45b0395603ae36223aa977075b129ea1935 (diff)
downloadgcc-091c8dfd4c09098d29f8bd129d993e8a7788d61a.zip
gcc-091c8dfd4c09098d29f8bd129d993e8a7788d61a.tar.gz
gcc-091c8dfd4c09098d29f8bd129d993e8a7788d61a.tar.bz2
Loks of changes so we can better compile from source.
� Loks of changes so we can better compile from source. See ChangeLog. From-SVN: r24278
Diffstat (limited to 'gcc/java')
-rw-r--r--gcc/java/class.c28
-rw-r--r--gcc/java/jcf-dump.c2
2 files changed, 29 insertions, 1 deletions
diff --git a/gcc/java/class.c b/gcc/java/class.c
index 76f2cb2..49c543b 100644
--- a/gcc/java/class.c
+++ b/gcc/java/class.c
@@ -637,6 +637,34 @@ build_class_ref (type)
{
char *name;
char buffer[25];
+ if (flag_emit_class_files)
+ {
+ char *prim_class_name;
+ tree prim_class;
+ if (type == char_type_node)
+ prim_class_name = "java.lang.Character";
+ else if (type == boolean_type_node)
+ prim_class_name = "java.lang.Boolean";
+ else if (type == byte_type_node)
+ prim_class_name = "java.lang.Byte";
+ else if (type == short_type_node)
+ prim_class_name = "java.lang.Short";
+ else if (type == int_type_node)
+ prim_class_name = "java.lang.Integer";
+ else if (type == long_type_node)
+ prim_class_name = "java.lang.Long";
+ else if (type == float_type_node)
+ prim_class_name = "java.lang.Float";
+ else if (type == double_type_node)
+ prim_class_name = "java.lang.Double";
+ else if (type == void_type_node)
+ prim_class_name = "java.lang.Void";
+ else
+ fatal ("internal error - bad type to build_class_ref");
+ prim_class = lookup_class (get_identifier (prim_class_name));
+ return build (COMPONENT_REF, NULL_TREE,
+ prim_class, TYPE_identifier_node);
+ }
decl_name = TYPE_NAME (type);
if (TREE_CODE (decl_name) == TYPE_DECL)
decl_name = DECL_NAME (decl_name);
diff --git a/gcc/java/jcf-dump.c b/gcc/java/jcf-dump.c
index f9be7bd..d5a47b3 100644
--- a/gcc/java/jcf-dump.c
+++ b/gcc/java/jcf-dump.c
@@ -792,7 +792,7 @@ DEFUN(main, (argc, argv),
for (; argi < argc; argi++)
{
char *arg = argv[argi];
- char* class_filename = find_class (arg, strlen (arg), jcf, 1);
+ char* class_filename = find_class (arg, strlen (arg), jcf, 0);
if (class_filename == NULL)
class_filename = find_classfile (arg, jcf, NULL);
if (class_filename == NULL)