diff options
author | Paolo Bonzini <bonzini@gnu.org> | 2004-02-03 11:22:41 +0000 |
---|---|---|
committer | Paolo Carlini <paolo@gcc.gnu.org> | 2004-02-03 11:22:41 +0000 |
commit | e57e265ba61a2e07623521dc872a2b7e82e70b37 (patch) | |
tree | 38cfca602874b8689177b11b1cd223ef979c0667 /gcc/objc | |
parent | 0251aa4518e9c18d00509b52149754e23396777b (diff) | |
download | gcc-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.in | 3 | ||||
-rw-r--r-- | gcc/objc/objc-act.c | 11 | ||||
-rw-r--r-- | gcc/objc/objc-lang.c | 2 |
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 |