aboutsummaryrefslogtreecommitdiff
path: root/gcc/objc
diff options
context:
space:
mode:
authorPaolo Bonzini <bonzini@gnu.org>2004-02-03 11:22:41 +0000
committerPaolo Carlini <paolo@gcc.gnu.org>2004-02-03 11:22:41 +0000
commite57e265ba61a2e07623521dc872a2b7e82e70b37 (patch)
tree38cfca602874b8689177b11b1cd223ef979c0667 /gcc/objc
parent0251aa4518e9c18d00509b52149754e23396777b (diff)
downloadgcc-e57e265ba61a2e07623521dc872a2b7e82e70b37.zip
gcc-e57e265ba61a2e07623521dc872a2b7e82e70b37.tar.gz
gcc-e57e265ba61a2e07623521dc872a2b7e82e70b37.tar.bz2
re PR c/11658 (Wrong error message)
2004-02-03 Paolo Bonzini <bonzini@gnu.org> PR c/11658 PR c/13994 * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend on langhooks.h. * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h. * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c: Include langhooks.h. Replace c_common_truthvalue_conversion with the truthvalue_conversion language hook throughout. (expr_no_commas): Call default_conversion before save_expr for the first term of the production 'x ? : y'. * c-common.c (c_common_truthvalue_conversion): Remove obsolete block. Invoke recursively the hook instead of this function. * c-convert.c (convert): handle ERROR_MARK_NODE. * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE returned by the truthvalue_conversion language hook. * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use c_objc_common_truthvalue_conversion. * c-objc-common.c (c_objc_common_truthvalue_conversion): New function. * c-tree.h (c_objc_common_truthvalue_conversion): Declare it. * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use c_objc_common_truthvalue_conversion. From-SVN: r77168
Diffstat (limited to 'gcc/objc')
-rw-r--r--gcc/objc/Make-lang.in3
-rw-r--r--gcc/objc/objc-act.c11
-rw-r--r--gcc/objc/objc-lang.c2
3 files changed, 9 insertions, 7 deletions
diff --git a/gcc/objc/Make-lang.in b/gcc/objc/Make-lang.in
index 022453f..1b0665c 100644
--- a/gcc/objc/Make-lang.in
+++ b/gcc/objc/Make-lang.in
@@ -64,7 +64,8 @@ objc/objc-lang.o : objc/objc-lang.c \
objc/objc-parse.o : objc/objc-parse.c \
$(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(C_TREE_H) \
- toplev.h $(GGC_H) c-pragma.h input.h flags.h output.h objc/objc-act.h
+ toplev.h $(GGC_H) c-pragma.h input.h flags.h output.h objc/objc-act.h \
+ langhooks.h
objc/objc-act.o : objc/objc-act.c \
$(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) $(TM_P_H) \
diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c
index c135292..c29c4fa 100644
--- a/gcc/objc/objc-act.c
+++ b/gcc/objc/objc-act.c
@@ -50,6 +50,7 @@ Boston, MA 02111-1307, USA. */
#include "c-tree.h"
#include "c-common.h"
#include "flags.h"
+#include "langhooks.h"
#include "objc-act.h"
#include "input.h"
#include "except.h"
@@ -2850,7 +2851,7 @@ objc_build_try_enter_fragment (void)
cond = build_unary_op (TRUTH_NOT_EXPR,
build_function_call (objc_setjmp_decl, func_params),
0);
- c_expand_start_cond (c_common_truthvalue_conversion (cond),
+ c_expand_start_cond ((*lang_hooks.truthvalue_conversion) (cond),
0, if_stmt);
objc_enter_block ();
}
@@ -2978,7 +2979,7 @@ objc_build_try_epilogue (int also_catch_prologue)
val_stack_push (&catch_count_stack, 1);
if_stmt = c_begin_if_stmt ();
if_nesting_count++;
- c_expand_start_cond (c_common_truthvalue_conversion (boolean_false_node),
+ c_expand_start_cond ((*lang_hooks.truthvalue_conversion) (boolean_false_node),
0, if_stmt);
objc_enter_block ();
@@ -3068,7 +3069,7 @@ objc_build_catch_stmt (tree catch_expr)
cond = build_function_call (objc_exception_match_decl, func_params);
}
- c_expand_start_cond (c_common_truthvalue_conversion (cond),
+ c_expand_start_cond ((*lang_hooks.truthvalue_conversion) (cond),
0, if_stmt);
objc_enter_block ();
objc_declare_variable (RID_REGISTER, var_name,
@@ -3138,7 +3139,7 @@ objc_build_finally_prologue (void)
tree if_stmt = c_begin_if_stmt ();
if_nesting_count++;
- c_expand_start_cond (c_common_truthvalue_conversion
+ c_expand_start_cond ((*lang_hooks.truthvalue_conversion)
(build_unary_op
(TRUTH_NOT_EXPR,
TREE_VALUE (objc_rethrow_exception), 0)),
@@ -3166,7 +3167,7 @@ objc_build_finally_epilogue (void)
if_nesting_count++;
c_expand_start_cond
- (c_common_truthvalue_conversion (TREE_VALUE (objc_rethrow_exception)),
+ ((*lang_hooks.truthvalue_conversion) (TREE_VALUE (objc_rethrow_exception)),
0, if_stmt);
objc_enter_block ();
objc_build_throw_stmt (TREE_VALUE (objc_rethrow_exception));
diff --git a/gcc/objc/objc-lang.c b/gcc/objc/objc-lang.c
index 3f70122..72c772c 100644
--- a/gcc/objc/objc-lang.c
+++ b/gcc/objc/objc-lang.c
@@ -60,7 +60,7 @@ enum c_language_kind c_language = clk_objc;
#undef LANG_HOOKS_MARK_ADDRESSABLE
#define LANG_HOOKS_MARK_ADDRESSABLE c_mark_addressable
#undef LANG_HOOKS_TRUTHVALUE_CONVERSION
-#define LANG_HOOKS_TRUTHVALUE_CONVERSION c_common_truthvalue_conversion
+#define LANG_HOOKS_TRUTHVALUE_CONVERSION c_objc_common_truthvalue_conversion
#undef LANG_HOOKS_FINISH_INCOMPLETE_DECL
#define LANG_HOOKS_FINISH_INCOMPLETE_DECL c_finish_incomplete_decl
#undef LANG_HOOKS_UNSAFE_FOR_REEVAL