PR c++/13356

* gdbtypes.c (strict_type_checking): New variable.
	(show_strict_type_checking): New function.
	(rank_one_type): Return NS_POINTER_INTEGER_CONVERSION_BADNESS
	if strict type checking is disabled.
	(_initialize_gdbtypes): Add "check type" subcommand.
	* gdbtypes.h (NS_INTEGER_POINTER_CONVERSION_BADNESS): New struct.

	PR c++/13356
	* gdb.base/default.exp: Update all "check type" tests.
	* gdb.base/help.exp: Likewise.
	* gdb.base/setshow.exp: Likewise.
	* gdb.cp/converts.cc (foo1_type_check): New function.
	(foo2_type_check): New function.
	(foo3_type_check): New function.
	(main): Call new functions.
	* converts.exp: Add tests for integer-to-pointer conversions
	with/without strict type-checking.

	PR c++/13356
	* gdb.texinfo (Type and Range Checking): Remove warning.
	Remove spurious commas.
	Update text and examples for re-implementation of set/show
	check type.
	(C and C++ Type and Range Checks): Likewise.

	* language.h (type_mode): Remove.
	(type_check): Remove.
	(struct language_defn): Remove la_type_check.
	(STRICT_TYPE): Remove unused macro.
	(type_error): Remove.
	* language.c (set_type_range_case): Renamed to ...
	(set_range_case): ... this.  Update all callers.
	Remove type_mode/type_check.
	(type_mode): Remove.
	(type_check): Remove.
	(show_type_command): Remove.
	(set_type_command): Remove.
	(language_info): Remove type checking output.
	(type_error): Remove unused function.
	(range_error): Update comment.
	(unknown_language_defn): Remove la_type_check.
	(auto_language_defn): Likewise.
	(local_language_defn): Likewise.
	(_initialize_language): Remove "check type" subcommand.
	* ada-lang.c (ada_language_defn): Remove la_type_check.
	* c-lang.c (c_language_defn): Likewise.
	(cplus_language_defn): Likewise.
	(asm_language_defn): Likewise.
	(minimal_language_defn): Likewise.
	* d-lang.c (d_language_defn): Likewise.
	* f-lang.c (f_language_defn): Likewise.
	* go-lang.c (go_language_defn): Likewise.
	* jv-lang.c (java_language_defn): Likewise.
	* m2-lang.c (m2_language_defn): Likewise.
	* objc-lang.c (objc_language_defn): Likewise.
	* opencl-lang.c (opencl_language_defn): Likewise.
	* p-lang.c (pascal_language_defn): Likewise.
This commit is contained in:
Keith Seitz 2012-08-17 17:37:03 +00:00
parent 7b458c12dc
commit a451cb65e3
23 changed files with 243 additions and 301 deletions

View file

@ -55,27 +55,6 @@ extern enum range_check
}
range_check;
/* type_mode ==
type_mode_auto: type_check set automatically to default of language.
type_mode_manual: type_check set manually by user. */
extern enum type_mode
{
type_mode_auto, type_mode_manual
}
type_mode;
/* type_check ==
type_check_on: Types are checked in GDB expressions, producing errors.
type_check_warn: Types are checked, producing warnings.
type_check_off: Types are not checked in GDB expressions. */
extern enum type_check
{
type_check_off, type_check_warn, type_check_on
}
type_check;
/* case_mode ==
case_mode_auto: case_sensitivity set upon selection of scope.
case_mode_manual: case_sensitivity set only by user. */
@ -162,10 +141,6 @@ struct language_defn
enum range_check la_range_check;
/* Default type checking. */
enum type_check la_type_check;
/* Default case sensitivity. */
enum case_sensitivity la_case_sensitivity;
@ -422,9 +397,6 @@ struct type *language_lookup_primitive_type_by_name (const struct language_defn
/* These macros define the behaviour of the expression
evaluator. */
/* Should we strictly type check expressions? */
#define STRICT_TYPE (type_check != type_check_off)
/* Should we range check values against the domain of their type? */
#define RANGE_CHECK (range_check != range_check_off)
@ -496,8 +468,6 @@ extern void binop_type_check (struct value *, struct value *, int);
/* Error messages */
extern void type_error (const char *, ...) ATTRIBUTE_PRINTF (1, 2);
extern void range_error (const char *, ...) ATTRIBUTE_PRINTF (1, 2);
/* Data: Does this value represent "truth" to the current language? */