Commit 65958285 by Ziemowit Laski Committed by Ziemowit Laski

c-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.

[gcc/ChangeLog]
2004-11-02  Ziemowit Laski  <zlaski@apple.com>

	* c-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
	(c_types_compatible_p): Move function definition...
	* c-objc-common.c (c_types_compatible_p): ...here.
	* c-objc-common.h (LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from
	c-lang.c.

[gcc/cp/ChangeLog]
2004-11-02  Ziemowit Laski  <zlaski@apple.com>

	* cp-lang.c (cxx_types_compatible_p): Remove prototype and definition.
	(LANG_HOOKS_TYPES_COMPATIBLE_P): Move to cp-objcp-common.h.
	* cp-objcp-common.c (cxx_types_compatible_p): Moved definition here
	from cp-lang.c.
	* cp-objcp-common.h (cxx_types_compatible_p): Moved prototype here
	from cp-lang.c.
	(LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from cp-lang.c.

From-SVN: r89997
parent bd80bd9b
2004-11-02 Ziemowit Laski <zlaski@apple.com>
* c-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove.
(c_types_compatible_p): Move function definition...
* c-objc-common.c (c_types_compatible_p): ...here.
* c-objc-common.h (LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from
c-lang.c.
2004-11-02 Steven Bosscher <stevenb@suse.de> 2004-11-02 Steven Bosscher <stevenb@suse.de>
* cfgloop.h (struct loop): Update comment. * cfgloop.h (struct loop): Update comment.
......
...@@ -44,8 +44,6 @@ enum c_language_kind c_language = clk_c; ...@@ -44,8 +44,6 @@ enum c_language_kind c_language = clk_c;
#define LANG_HOOKS_NAME "GNU C" #define LANG_HOOKS_NAME "GNU C"
#undef LANG_HOOKS_INIT #undef LANG_HOOKS_INIT
#define LANG_HOOKS_INIT c_objc_common_init #define LANG_HOOKS_INIT c_objc_common_init
#undef LANG_HOOKS_TYPES_COMPATIBLE_P
#define LANG_HOOKS_TYPES_COMPATIBLE_P c_types_compatible_p
/* Each front end provides its own lang hook initializer. */ /* Each front end provides its own lang hook initializer. */
const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER; const struct lang_hooks lang_hooks = LANG_HOOKS_INITIALIZER;
...@@ -92,10 +90,4 @@ finish_file (void) ...@@ -92,10 +90,4 @@ finish_file (void)
{ {
} }
int
c_types_compatible_p (tree x, tree y)
{
return comptypes (TYPE_MAIN_VARIANT (x), TYPE_MAIN_VARIANT (y));
}
#include "gtype-c.h" #include "gtype-c.h"
...@@ -296,3 +296,9 @@ c_initialize_diagnostics (diagnostic_context *context) ...@@ -296,3 +296,9 @@ c_initialize_diagnostics (diagnostic_context *context)
/* It is safe to free this object because it was previously XNEW()'d. */ /* It is safe to free this object because it was previously XNEW()'d. */
XDELETE (base); XDELETE (base);
} }
int
c_types_compatible_p (tree x, tree y)
{
return comptypes (TYPE_MAIN_VARIANT (x), TYPE_MAIN_VARIANT (y));
}
...@@ -66,6 +66,8 @@ extern void c_initialize_diagnostics (diagnostic_context *); ...@@ -66,6 +66,8 @@ extern void c_initialize_diagnostics (diagnostic_context *);
#define LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL c_warn_unused_global_decl #define LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL c_warn_unused_global_decl
#undef LANG_HOOKS_PRINT_IDENTIFIER #undef LANG_HOOKS_PRINT_IDENTIFIER
#define LANG_HOOKS_PRINT_IDENTIFIER c_print_identifier #define LANG_HOOKS_PRINT_IDENTIFIER c_print_identifier
#undef LANG_HOOKS_TYPES_COMPATIBLE_P
#define LANG_HOOKS_TYPES_COMPATIBLE_P c_types_compatible_p
#undef LANG_HOOKS_FUNCTION_ENTER_NESTED #undef LANG_HOOKS_FUNCTION_ENTER_NESTED
#define LANG_HOOKS_FUNCTION_ENTER_NESTED c_push_function_context #define LANG_HOOKS_FUNCTION_ENTER_NESTED c_push_function_context
#undef LANG_HOOKS_FUNCTION_LEAVE_NESTED #undef LANG_HOOKS_FUNCTION_LEAVE_NESTED
......
2004-11-02 Ziemowit Laski <zlaski@apple.com>
* cp-lang.c (cxx_types_compatible_p): Remove prototype and definition.
(LANG_HOOKS_TYPES_COMPATIBLE_P): Move to cp-objcp-common.h.
* cp-objcp-common.c (cxx_types_compatible_p): Moved definition here
from cp-lang.c.
* cp-objcp-common.h (cxx_types_compatible_p): Moved prototype here
from cp-lang.c.
(LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from cp-lang.c.
2004-11-01 Nathan Sidwell <nathan@codesourcery.com> 2004-11-01 Nathan Sidwell <nathan@codesourcery.com>
PR c++/18064 PR c++/18064
......
...@@ -39,16 +39,12 @@ enum c_language_kind c_language = clk_cxx; ...@@ -39,16 +39,12 @@ enum c_language_kind c_language = clk_cxx;
/* Lang hooks common to C++ and ObjC++ are declared in cp/cp-objcp-common.h; /* Lang hooks common to C++ and ObjC++ are declared in cp/cp-objcp-common.h;
consequently, there should be very few hooks below. */ consequently, there should be very few hooks below. */
static int cxx_types_compatible_p (tree, tree);
#undef LANG_HOOKS_NAME #undef LANG_HOOKS_NAME
#define LANG_HOOKS_NAME "GNU C++" #define LANG_HOOKS_NAME "GNU C++"
#undef LANG_HOOKS_INIT #undef LANG_HOOKS_INIT
#define LANG_HOOKS_INIT cxx_init #define LANG_HOOKS_INIT cxx_init
#undef LANG_HOOKS_DECL_PRINTABLE_NAME #undef LANG_HOOKS_DECL_PRINTABLE_NAME
#define LANG_HOOKS_DECL_PRINTABLE_NAME cxx_printable_name #define LANG_HOOKS_DECL_PRINTABLE_NAME cxx_printable_name
#undef LANG_HOOKS_TYPES_COMPATIBLE_P
#define LANG_HOOKS_TYPES_COMPATIBLE_P cxx_types_compatible_p
#undef LANG_HOOKS_FOLD_OBJ_TYPE_REF #undef LANG_HOOKS_FOLD_OBJ_TYPE_REF
#define LANG_HOOKS_FOLD_OBJ_TYPE_REF cp_fold_obj_type_ref #define LANG_HOOKS_FOLD_OBJ_TYPE_REF cp_fold_obj_type_ref
...@@ -99,25 +95,6 @@ const char *const tree_code_name[] = { ...@@ -99,25 +95,6 @@ const char *const tree_code_name[] = {
/* Lang hook routines common to C++ and ObjC++ appear in cp/cp-objcp-common.c; /* Lang hook routines common to C++ and ObjC++ appear in cp/cp-objcp-common.c;
there should be very few routines below. */ there should be very few routines below. */
/* This compares two types for equivalence ("compatible" in C-based languages).
This routine should only return 1 if it is sure. It should not be used
in contexts where erroneously returning 0 causes problems. */
static int cxx_types_compatible_p (tree x, tree y)
{
if (same_type_ignoring_top_level_qualifiers_p (x, y))
return 1;
/* Once we get to the middle-end, references and pointers are
interchangeable. FIXME should we try to replace all references with
pointers? */
if (POINTER_TYPE_P (x) && POINTER_TYPE_P (y)
&& same_type_p (TREE_TYPE (x), TREE_TYPE (y)))
return 1;
return 0;
}
/* The following function does something real, but only in Objective-C++. */ /* The following function does something real, but only in Objective-C++. */
tree tree
......
...@@ -148,6 +148,26 @@ cxx_initialize_diagnostics (diagnostic_context *context) ...@@ -148,6 +148,26 @@ cxx_initialize_diagnostics (diagnostic_context *context)
free (base); free (base);
} }
/* This compares two types for equivalence ("compatible" in C-based languages).
This routine should only return 1 if it is sure. It should not be used
in contexts where erroneously returning 0 causes problems. */
int
cxx_types_compatible_p (tree x, tree y)
{
if (same_type_ignoring_top_level_qualifiers_p (x, y))
return 1;
/* Once we get to the middle-end, references and pointers are
interchangeable. FIXME should we try to replace all references with
pointers? */
if (POINTER_TYPE_P (x) && POINTER_TYPE_P (y)
&& same_type_p (TREE_TYPE (x), TREE_TYPE (y)))
return 1;
return 0;
}
/* Stubs to keep c-opts.c happy. */ /* Stubs to keep c-opts.c happy. */
void void
push_file_scope (void) push_file_scope (void)
......
...@@ -30,6 +30,7 @@ extern tree cp_expr_size (tree); ...@@ -30,6 +30,7 @@ extern tree cp_expr_size (tree);
extern size_t cp_tree_size (enum tree_code); extern size_t cp_tree_size (enum tree_code);
extern bool cp_var_mod_type_p (tree, tree); extern bool cp_var_mod_type_p (tree, tree);
extern void cxx_initialize_diagnostics (struct diagnostic_context *); extern void cxx_initialize_diagnostics (struct diagnostic_context *);
extern int cxx_types_compatible_p (tree, tree);
/* In cp/cp-lang.c and objcp/objcp-lang.c. */ /* In cp/cp-lang.c and objcp/objcp-lang.c. */
...@@ -86,6 +87,8 @@ extern tree objcp_tsubst_copy_and_build (tree, tree, tsubst_flags_t, ...@@ -86,6 +87,8 @@ extern tree objcp_tsubst_copy_and_build (tree, tree, tsubst_flags_t,
#define LANG_HOOKS_PRINT_TYPE cxx_print_type #define LANG_HOOKS_PRINT_TYPE cxx_print_type
#undef LANG_HOOKS_PRINT_IDENTIFIER #undef LANG_HOOKS_PRINT_IDENTIFIER
#define LANG_HOOKS_PRINT_IDENTIFIER cxx_print_identifier #define LANG_HOOKS_PRINT_IDENTIFIER cxx_print_identifier
#undef LANG_HOOKS_TYPES_COMPATIBLE_P
#define LANG_HOOKS_TYPES_COMPATIBLE_P cxx_types_compatible_p
#undef LANG_HOOKS_PRINT_ERROR_FUNCTION #undef LANG_HOOKS_PRINT_ERROR_FUNCTION
#define LANG_HOOKS_PRINT_ERROR_FUNCTION cxx_print_error_function #define LANG_HOOKS_PRINT_ERROR_FUNCTION cxx_print_error_function
#undef LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL #undef LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment