aboutsummaryrefslogtreecommitdiff
path: root/gcc/java/class.c
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2002-02-18 04:55:07 +0000
committerTom Tromey <tromey@gcc.gnu.org>2002-02-18 04:55:07 +0000
commit6b6294f11853a51dd444dbc5ed797c593459be52 (patch)
tree9d4dcd64a3dacde96384e1abe0d301b3d8973403 /gcc/java/class.c
parentaeb85a152cd80ead8a39d559f71acbc447e7df4e (diff)
downloadgcc-6b6294f11853a51dd444dbc5ed797c593459be52.zip
gcc-6b6294f11853a51dd444dbc5ed797c593459be52.tar.gz
gcc-6b6294f11853a51dd444dbc5ed797c593459be52.tar.bz2
java-tree.h (TYPE_STRICTFP): New macro.
* java-tree.h (TYPE_STRICTFP): New macro. (struct lang_type) [strictfp]: New field. (CLASS_STRICTFP): New macro. (METHOD_STRICTFP): New macro. (struct lang_decl) [strictfp]: New field. * parse.y (method_header): Disallow strictfp constructor or abstract method. (STRICT_TK): Move before MODIFIER_TK. * parse.h (CLASS_MODIFIERS): Added ACC_STRICT. (METHOD_MODIFIERS): Likewise. (INTERFACE_MODIFIERS): Likewise. * jcf-write.c (get_access_flags): Likewise. * class.c (set_class_decl_access_flags): Recognize ACC_STRICT. (add_method_1): Likewise. (get_access_flags_from_decl): Likewise. * jcf-dump.c (print_access_flags): Print in standard order. Also, recognize strictfp flag. * jcf.h (ACC_STRICT): New define. From-SVN: r49834
Diffstat (limited to 'gcc/java/class.c')
-rw-r--r--gcc/java/class.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/gcc/java/class.c b/gcc/java/class.c
index 5a799fe..e9cc58c 100644
--- a/gcc/java/class.c
+++ b/gcc/java/class.c
@@ -425,6 +425,7 @@ set_class_decl_access_flags (access_flags, class_decl)
if (access_flags & ACC_STATIC) CLASS_STATIC (class_decl) = 1;
if (access_flags & ACC_PRIVATE) CLASS_PRIVATE (class_decl) = 1;
if (access_flags & ACC_PROTECTED) CLASS_PROTECTED (class_decl) = 1;
+ if (access_flags & ACC_STRICT) CLASS_STRICTFP (class_decl) = 1;
}
/* Return length of inheritance chain of CLAS, where java.lang.Object is 0,
@@ -719,6 +720,7 @@ add_method_1 (handle_class, access_flags, name, function_type)
if (access_flags & ACC_SYNCHRONIZED) METHOD_SYNCHRONIZED (fndecl) = 1;
if (access_flags & ACC_ABSTRACT) METHOD_ABSTRACT (fndecl) = 1;
if (access_flags & ACC_TRANSIENT) METHOD_TRANSIENT (fndecl) = 1;
+ if (access_flags & ACC_STRICT) METHOD_STRICTFP (fndecl) = 1;
return fndecl;
}
@@ -1223,6 +1225,8 @@ get_access_flags_from_decl (decl)
access_flags |= ACC_PRIVATE;
if (CLASS_PROTECTED (decl))
access_flags |= ACC_PROTECTED;
+ if (CLASS_STRICTFP (decl))
+ access_flags |= ACC_STRICT;
return access_flags;
}
if (TREE_CODE (decl) == FUNCTION_DECL)
@@ -1245,6 +1249,8 @@ get_access_flags_from_decl (decl)
access_flags |= ACC_ABSTRACT;
if (METHOD_TRANSIENT (decl))
access_flags |= ACC_TRANSIENT;
+ if (METHOD_STRICTFP (decl))
+ access_flags |= ACC_STRICT;
return access_flags;
}
abort ();