diff options
author | Tom Tromey <tromey@cygnus.com> | 1999-01-29 15:16:12 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 1999-01-29 15:16:12 +0000 |
commit | 061ac426189161b669a2a0b6e67fab19e7fde25d (patch) | |
tree | e9a252b38e6851070778cdef256f821808caf208 /gcc/java/parse.h | |
parent | 5310566c09b16e37a1db3ea358f03e3efef7ee46 (diff) | |
download | gcc-061ac426189161b669a2a0b6e67fab19e7fde25d.zip gcc-061ac426189161b669a2a0b6e67fab19e7fde25d.tar.gz gcc-061ac426189161b669a2a0b6e67fab19e7fde25d.tar.bz2 |
parse.h (BUILD_APPEND): If ARG is a non-String object reference...
* parse.h (BUILD_APPEND): If ARG is a non-String object reference,
then cast it to Object before calling `append' method.
From-SVN: r24907
Diffstat (limited to 'gcc/java/parse.h')
-rw-r--r-- | gcc/java/parse.h | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/gcc/java/parse.h b/gcc/java/parse.h index 4cebd5b..13604eed 100644 --- a/gcc/java/parse.h +++ b/gcc/java/parse.h @@ -498,9 +498,16 @@ static jdeplist *reverse_jdep_list (); #define COMPLETE_CHECK_OP_2(NODE) COMPLETE_CHECK_OP(NODE, 2) /* Building invocations: append(ARG) and StringBuffer(ARG) */ -#define BUILD_APPEND(ARG) \ - build_method_invocation (wfl_append, \ - (ARG ? build_tree_list (NULL, (ARG)): NULL_TREE)) +#define BUILD_APPEND(ARG) \ + ((JSTRING_TYPE_P (TREE_TYPE (ARG)) || JPRIMITIVE_TYPE_P (TREE_TYPE (ARG))) \ + ? build_method_invocation (wfl_append, \ + ARG ? build_tree_list (NULL, (ARG)) : NULL_TREE)\ + : build_method_invocation (wfl_append, \ + ARG ? build_tree_list (NULL, \ + build1 (CONVERT_EXPR, \ + object_type_node,\ + (ARG))) \ + : NULL_TREE)) #define BUILD_STRING_BUFFER(ARG) \ build_new_invocation (wfl_string_buffer, \ (ARG ? build_tree_list (NULL, (ARG)) : NULL_TREE)) |