diff options
author | Keith Seitz <keiths@redhat.com> | 2012-08-17 17:37:03 +0000 |
---|---|---|
committer | Keith Seitz <keiths@redhat.com> | 2012-08-17 17:37:03 +0000 |
commit | a451cb65e32f48d8b3cd71806da223c6c105cf94 (patch) | |
tree | 4edbaadee2cb321bf2975ff93b0af87e71adb798 /gdb/testsuite/gdb.cp/converts.exp | |
parent | 7b458c12dc33fc7af4c67c138feaa5f034351bac (diff) | |
download | gdb-a451cb65e32f48d8b3cd71806da223c6c105cf94.zip gdb-a451cb65e32f48d8b3cd71806da223c6c105cf94.tar.gz gdb-a451cb65e32f48d8b3cd71806da223c6c105cf94.tar.bz2 |
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.
Diffstat (limited to 'gdb/testsuite/gdb.cp/converts.exp')
-rw-r--r-- | gdb/testsuite/gdb.cp/converts.exp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.cp/converts.exp b/gdb/testsuite/gdb.cp/converts.exp index 9b8df58..414e2d0 100644 --- a/gdb/testsuite/gdb.cp/converts.exp +++ b/gdb/testsuite/gdb.cp/converts.exp @@ -70,9 +70,37 @@ gdb_test_multiple "p foo3_1 (0, 0)" $t { pass $t } } + gdb_test "p foo3_1 (0, 1)" \ "Cannot resolve function foo3_1 to any overloaded instance" gdb_test "p foo3_1 (0, (const char**) 1)" " = 31" gdb_test "p foo3_2 (0, 0)" "= 32" gdb_test "p foo3_2 (0, (char const**) 0)" " = 320" +# Test for strict type checking +set error_str "Cannot resolve function %s to any overloaded instance" +gdb_test "show check type" "Strict type checking is on\." +gdb_test "p foo1_type_check (123)" [format $error_str "foo1_type_check"] +gdb_test "p foo2_type_check (0, 1)" [format $error_str "foo2_type_check"] +gdb_test "p foo2_type_check (1, 0)" [format $error_str "foo2_type_check"] +gdb_test "p foo2_type_check (1, 1)" [format $error_str "foo2_type_check"] +gdb_test "p foo3_type_check (0, 0, 1)" [format $error_str "foo3_type_check"] +gdb_test "p foo3_type_check (0, 1, 0)" [format $error_str "foo3_type_check"] +gdb_test "p foo3_type_check (1, 0, 0)" [format $error_str "foo3_type_check"] +gdb_test "p foo3_type_check (0, 1, 1)" [format $error_str "foo3_type_check"] +gdb_test "p foo3_type_check (1, 1, 0)" [format $error_str "foo3_type_check"] +gdb_test "p foo3_type_check (1, 1, 1)" [format $error_str "foo3_type_check"] + +gdb_test_no_output "set check type off" +gdb_test "show check type" "Strict type checking is off\." +gdb_test "p foo1_type_check (123)" " = 1000" +gdb_test "p foo2_type_check (0, 1)" " = 1001" +gdb_test "p foo2_type_check (1, 0)" " = 1001" +gdb_test "p foo2_type_check (1, 1)" " = 1001" +gdb_test "p foo3_type_check (0, 0, 1)" " = 1002" +gdb_test "p foo3_type_check (0, 1, 0)" " = 1002" +gdb_test "p foo3_type_check (1, 0, 0)" " = 1002" +gdb_test "p foo3_type_check (0, 1, 1)" " = 1002" +gdb_test "p foo3_type_check (1, 1, 0)" " = 1002" +gdb_test "p foo3_type_check (1, 1, 1)" " = 1002" +gdb_test "p foo3_2 (1,1)" " = 32" |