Index: m-static.exp =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.c++/m-static.exp,v retrieving revision 1.1 diff -u -p -r1.1 m-static.exp --- m-static.exp 30 May 2002 19:09:47 -0000 1.1 +++ m-static.exp 16 Aug 2002 20:59:29 -0000 @@ -16,6 +16,7 @@ # Tests for member static data # 2002-05-13 Benjamin Kosnik +# 2002-08-16 David Carlton # This file is part of the gdb testsuite @@ -33,9 +34,10 @@ set bug_id 0 set testfile "m-static" set srcfile ${testfile}.cc +set srcfile1 ${testfile}1.cc set binfile ${objdir}/${subdir}/${testfile} -if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } { +if { [gdb_compile "${srcdir}/${subdir}/${srcfile} ${srcdir}/${subdir}/${srcfile1}" "${binfile}" executable {debug c++}] != "" } { gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." } @@ -55,8 +57,8 @@ if ![runto_main] then { } # One. -gdb_test "break 68" "Breakpoint \[0-9\]*.*line 68\\." -gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*m-static\\.cc:68\r\n.*" "continue to 68" +gdb_test "break 72" "Breakpoint \[0-9\]*.*line 72\\." +gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*m-static\\.cc:72\r\n.*" "continue to 72" # simple object, static const bool gdb_test "print test1.test" "\\$\[0-9\]* = true" "simple object, static const bool" @@ -71,8 +73,8 @@ gdb_test "print test1.key2" "\\$\[0-9\]* gdb_test "print test1.value" "\\$\[0-9\]* = oriental" "simple object, static enum" # Two. -gdb_test "break 69" "Breakpoint \[0-9\]*.*line 69\\." -gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*m-static\\.cc:69\r\n.*" "continue to 69" +gdb_test "break 73" "Breakpoint \[0-9\]*.*line 73\\." +gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*m-static\\.cc:73\r\n.*" "continue to 73" # derived template object, base static const bool gdb_test "print test2.test" "\\$\[0-9\]* = true" "derived template object, base static const bool" @@ -90,8 +92,11 @@ gdb_test "print test2.value" "\\$\[0-9\] gdb_test "print test2.value_derived" "\\$\[0-9\].* = etruscan" "derived template object, static enum" # Three. -gdb_test "break 71" "Breakpoint \[0-9\]*.*line 71\\." -gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*m-static\\.cc:71\r\n.*" "continue to 71" + +# Setting a breakpoint at the test4 initializer doesn't work, since +# execution won't stop there. +gdb_test "break 76" "Breakpoint \[0-9\]*.*line 76\\." +gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*m-static\\.cc:76\r\n.*" "continue to 76" # template object, static derived template data member's base static const bool gdb_test "print test3.data.test" "\\$\[0-9\].* = true" "template object, static const bool" @@ -107,6 +112,22 @@ gdb_test "print test3.data.value" "\\$\[ # template object, static derived template data member's static enum gdb_test "print test3.data.value_derived" "\\$\[0-9\].* = etruscan" "template object, static derived enum" + +# 2002-08-16 +# Four. + +# No breakpoint: see test3 comment. + +# static const int initialized in another file. +gdb_test "print test4.elsewhere" "\\$\[0-9\].* = 221" "static const int initialized elsewhere" + +# static const int that nobody initializes. From PR gdb/635. +gdb_test "print test4.nowhere" "field nowhere is nonexistent or has been optimised out" "static const int initialized nowhere" + +# Perhaps at some point test4 should also include a test for a static +# const int that was initialized in the header file. But I'm not sure +# that GDB's current behavior in such situations is either consistent +# across platforms or optimal, so I'm not including one now. gdb_exit return 0