Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* Re: gdb.c++ testsuite 1.3: member_data_static.exp (resend)
@ 2002-05-29  8:34 Michael Elizabeth Chastain
  0 siblings, 0 replies; 13+ messages in thread
From: Michael Elizabeth Chastain @ 2002-05-29  8:34 UTC (permalink / raw)
  To: bkoz; +Cc: drow, gdb-patches

> template class __gnu_test::gnu_obj_3<long>;
> template class __gnu_test::gnu_obj_2<int>;

I'm happy with this.  It's better than my "refer" kludge.

I'll try this out on the next iteration, which will be in a day or two
(my test bed is busy right now).

Michael C


^ permalink raw reply	[flat|nested] 13+ messages in thread
* Re: gdb.c++ testsuite 1.3: member_data_static.exp (resend)
@ 2002-05-30 12:29 Michael Elizabeth Chastain
  0 siblings, 0 replies; 13+ messages in thread
From: Michael Elizabeth Chastain @ 2002-05-30 12:29 UTC (permalink / raw)
  To: bkoz; +Cc: drow, gdb-patches

Committed.

All tests PASS in all configurations tested: native i686-pc-linux-gnu,
v2 and v3, dwarf-2 and stabs+, -g2 and -g3.

Thanks Benjamin for the new tests.

Michael C

2002-05-30  Michael Chastain  <mec@shout.net>
From Benjamin Kosnik  <bkoz@redhat.com>

        * gdb.c++/m-static.cc: New file.
	* gdb.c++/m-static.exp: New file.


^ permalink raw reply	[flat|nested] 13+ messages in thread
* Re: gdb.c++ testsuite 1.3: member_data_static.exp (resend)
@ 2002-05-30 12:12 Michael Elizabeth Chastain
  0 siblings, 0 replies; 13+ messages in thread
From: Michael Elizabeth Chastain @ 2002-05-30 12:12 UTC (permalink / raw)
  To: bkoz; +Cc: drow, gdb-patches

Benjamin Kosnik writes:

> template class __gnu_test::gnu_obj_3<long>;
> template class __gnu_test::gnu_obj_2<int>;

This technique works for me in all tested configurations.

I added an instantiation for gnu_obj_2<long> as well.

I'm about to commit these files.  Here is what I'm committing.

Michael C

=== m-static.cc

// 2002-05-13

namespace __gnu_test
{
  enum 	region { oriental, egyptian, greek, etruscan, roman };

  // Test one.
  class gnu_obj_1
  {
  protected:
    typedef region antiquities;
    static const bool 	test = true;
    static const int 	key1 = 5;
    static long       	key2;

    static antiquities 	value;

  public:
    gnu_obj_1(antiquities a, long l) {}
  };

  const bool gnu_obj_1::test;
  const int gnu_obj_1::key1;
  long gnu_obj_1::key2 = 77;
  gnu_obj_1::antiquities gnu_obj_1::value = oriental;


  // Test two.
  template<typename T>
    class gnu_obj_2: public virtual gnu_obj_1
    {
    public:
      static antiquities	value_derived;
      
    public:
      gnu_obj_2(antiquities b): gnu_obj_1(oriental, 7) { }
    }; 

  template<typename T>
    typename gnu_obj_2<T>::antiquities gnu_obj_2<T>::value_derived = etruscan;

  // Test three.
  template<typename T>
    class gnu_obj_3
    {
    public:
      typedef region antiquities;
      static gnu_obj_2<int>   	data;
      
    public:
      gnu_obj_3(antiquities b) { }
    }; 

  template<typename T>
    gnu_obj_2<int> gnu_obj_3<T>::data(etruscan);
} 

// instantiate templates explicitly so their static members will exist
template class __gnu_test::gnu_obj_2<int>;
template class __gnu_test::gnu_obj_2<long>;
template class __gnu_test::gnu_obj_3<long>;

int main()
{
  using namespace __gnu_test;

  gnu_obj_1		test1(egyptian, 4589);
  gnu_obj_2<long>	test2(roman);
  gnu_obj_3<long>	test3(greek);

  return 0;
}

=== m-static.exp

# Copyright 2002 Free Software Foundation, Inc.

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  

# Tests for member static data
# 2002-05-13  Benjamin Kosnik  <bkoz@redhat.com>

# This file is part of the gdb testsuite

if $tracelevel then {
        strace $tracelevel
        }

if { [skip_cplus_tests] } { continue }

#
# test running programs
#
set prms_id 0
set bug_id 0

set testfile "m-static"
set srcfile ${testfile}.cc
set binfile ${objdir}/${subdir}/${testfile}

if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}

if [get_compiler_info ${binfile} "c++"] {
    return -1
}

gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile}


if ![runto_main] then {
    perror "couldn't run to breakpoint"
    continue
}

# 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"

# simple object, static const bool
gdb_test "print test1.test" "\\$\[0-9\]* = true" "simple object, static const bool"

# simple object, static const int
gdb_test "print test1.key1" "\\$\[0-9\]* = 5" "simple object, static const int"

# simple object, static long
gdb_test "print test1.key2" "\\$\[0-9\]* = 77" "simple object, static long"

# simple object, static enum
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"

# derived template object, base static const bool
gdb_test "print test2.test" "\\$\[0-9\]* = true" "derived template object, base static const bool"

# derived template object, base static const int
gdb_test "print test2.key1" "\\$\[0-9\]* = 5" "derived template object, base static const int"

# derived template object, base static long
gdb_test "print test2.key2" "\\$\[0-9\]* = 77" "derived template object, base static long"

# derived template object, base static enum
gdb_test "print test2.value" "\\$\[0-9\].* = oriental" "derived template object, base static enum"

# derived template object, static enum
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"

# 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"

# template object, static derived template data member's base static const int
gdb_test "print test3.data.key1" "\\$\[0-9\].* = 5" "template object, static const int"

# template object, static derived template data member's base static long
gdb_test "print test3.data.key2" "\\$\[0-9\].* = 77" "template object, static long"

# template object, static derived template data member's base static enum
gdb_test "print test3.data.value" "\\$\[0-9\].* = oriental" "template object, static enum"

#  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"

gdb_exit
return 0


^ permalink raw reply	[flat|nested] 13+ messages in thread
* Re: gdb.c++ testsuite 1.3: member_data_static.exp (resend)
@ 2002-05-28 15:26 Michael Elizabeth Chastain
  2002-05-29  8:09 ` Benjamin Kosnik
  0 siblings, 1 reply; 13+ messages in thread
From: Michael Elizabeth Chastain @ 2002-05-28 15:26 UTC (permalink / raw)
  To: bkoz; +Cc: gdb-patches

Hi Benjamin,

mec>   (gdb) print test3
mec>   $2 = {static data = <optimized out>}

bk> ... which makes debugging C++ a pain in the ass, and the reason I sat
bk> down and wrote this file. I consider gdb to be broken. Hopefully this
bk> test case will facilitate a fix to the problem noted above.

As far as I can tell, gdb is reporting what's actually in the executable
file.  'test3' has one static member and no non-static members.
So perhaps gcc is broken, but I don't understand your view that 
gdb is broken.  Can you explain more?  What do you *want* gdb to print
here?

> Errr. No, unless you expect everybody using gdb and C++ do to this as
> well. In which case, you should put this in the FAQ.

Okay, I'll forget about my 'refer' kludge.  I thought that the 'refer'
kludge was working around a side issue, but optimizing away the static
data is the *main* issue for this test.  So I should not work around it.

Michael C


^ permalink raw reply	[flat|nested] 13+ messages in thread
* Re: gdb.c++ testsuite 1.3: member_data_static.exp (resend)
@ 2002-05-27 16:02 Michael Elizabeth Chastain
  2002-05-28  9:17 ` Benjamin Kosnik
  0 siblings, 1 reply; 13+ messages in thread
From: Michael Elizabeth Chastain @ 2002-05-27 16:02 UTC (permalink / raw)
  To: bkoz, gdb-patches

As usual, send_gdb/gdb_expect => gdb_test.

This test script has 6 FAILs in each configuration tested.

  FAIL: gdb.c++/m-static.exp: derived template object, static enum
  FAIL: gdb.c++/m-static.exp: template object, static const bool
  FAIL: gdb.c++/m-static.exp: template object, static const int
  FAIL: gdb.c++/m-static.exp: template object, static long
  FAIL: gdb.c++/m-static.exp: template object, static enum
  FAIL: gdb.c++/m-static.exp: template object, static enum

Something in the toolchain is optimizing away unused static objects.
When I run gdb by hand, I see this:

  (gdb) print test2
  $1 = {<gnu_obj_1> = {static test = true, static key1 = 5, static key2 = 77,
      static value = oriental}, _vptr.gnu_obj_2 = 0x804e76c,
    static value_derived = <optimized out>}

  (gdb) print test3
  $2 = {static data = <optimized out>}

This happens with both -gdwarf-2 and -gstabs+ on all gcc's and binutil's
in my test bed.

I fixed this by adding references to the data fields, like this:

  refer(&test2.value_derived);
  refer(&test3.data);
  refer(&test3.data.value_derived);
 
I'm not going to commit these test files yet.  Here are the files.
Can you let me know whether these are okay?

Michael C

===

// 2002-05-13

namespace __gnu_test
{
  enum 	region { oriental, egyptian, greek, etruscan, roman };

  // Test one.
  class gnu_obj_1
  {
  protected:
    typedef region antiquities;
    static const bool 	test = true;
    static const int 	key1 = 5;
    static long       	key2;

    static antiquities 	value;

  public:
    gnu_obj_1(antiquities a, long l) {}
  };

  const bool gnu_obj_1::test;
  const int gnu_obj_1::key1;
  long gnu_obj_1::key2 = 77;
  gnu_obj_1::antiquities gnu_obj_1::value = oriental;


  // Test two.
  template<typename T>
    class gnu_obj_2: public virtual gnu_obj_1
    {
    public:
      static antiquities	value_derived;
      
    public:
      gnu_obj_2(antiquities b): gnu_obj_1(oriental, 7) { }
    }; 

  template<typename T>
    typename gnu_obj_2<T>::antiquities gnu_obj_2<T>::value_derived = etruscan;

  // Test three.
  template<typename T>
    class gnu_obj_3
    {
    public:
      typedef region antiquities;
      static gnu_obj_2<int>   	data;
      
    public:
      gnu_obj_3(antiquities b) { }
    }; 

  template<typename T>
    gnu_obj_2<int> gnu_obj_3<T>::data(etruscan);
} 

// gcc optimizes out unused template statics
void refer(const void *) { }

int main()
{
  using namespace __gnu_test;

  gnu_obj_1		test1(egyptian, 4589);
  gnu_obj_2<long>	test2(roman);
  gnu_obj_3<long>	test3(greek);

  refer(&test2.value_derived);
  refer(&test3.data);
  refer(&test3.data.value_derived);

  return 0;
}

===

# Copyright 2002 Free Software Foundation, Inc.

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  

# Tests for member static data
# 2002-05-13  Benjamin Kosnik  <bkoz@redhat.com>

# This file is part of the gdb testsuite

if $tracelevel then {
        strace $tracelevel
        }

if { [skip_cplus_tests] } { continue }

#
# test running programs
#
set prms_id 0
set bug_id 0

set testfile "m-static"
set srcfile ${testfile}.cc
set binfile ${objdir}/${subdir}/${testfile}

if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}

if [get_compiler_info ${binfile} "c++"] {
    return -1
}

gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile}


if ![runto_main] then {
    perror "couldn't run to breakpoint"
    continue
}

# One.
gdb_test "break 66" "Breakpoint \[0-9\]*.*line 66\\."
gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*m-static\\.cc:66\r\n.*" "continue to 66"

# simple object, static const bool
gdb_test "print test1.test" "\\$\[0-9\]* = true" "simple object, static const bool"

# simple object, static const int
gdb_test "print test1.key1" "\\$\[0-9\]* = 5" "simple object, static const int"

# simple object, static long
gdb_test "print test1.key2" "\\$\[0-9\]* = 77" "simple object, static long"

# simple object, static enum
gdb_test "print test1.value" "\\$\[0-9\]* = oriental" "simple object, static enum"

# Two.
gdb_test "break 67" "Breakpoint \[0-9\]*.*line 67\\."
gdb_test "continue" "Continuing\\.\r\n\r\nBreakpoint.*at.*m-static\\.cc:67\r\n.*" "continue to 67"

# derived template object, base static const bool
gdb_test "print test2.test" "\\$\[0-9\]* = true" "derived template object, base static const bool"

# derived template object, base static const int
gdb_test "print test2.key1" "\\$\[0-9\]* = 5" "derived template object, base static const int"

# derived template object, base static long
gdb_test "print test2.key2" "\\$\[0-9\]* = 77" "derived template object, base static long"

# derived template object, base static enum
gdb_test "print test2.value" "\\$\[0-9\].* = oriental" "derived template object, base static enum"

# derived template object, static enum
gdb_test "print test2.value_derived" "\\$\[0-9\].* = etruscan" "derived template object, static enum"

# Three.
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"

# 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"

# template object, static derived template data member's base static const int
gdb_test "print test3.data.key1" "\\$\[0-9\].* = 5" "template object, static const int"

# template object, static derived template data member's base static long
gdb_test "print test3.data.key2" "\\$\[0-9\].* = 77" "template object, static long"

# template object, static derived template data member's base static enum
gdb_test "print test3.data.value" "\\$\[0-9\].* = oriental" "template object, static enum"

#  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"

gdb_exit
return 0


^ permalink raw reply	[flat|nested] 13+ messages in thread
* gdb.c++ testsuite 1.3: member_data_static.exp (resend)
@ 2002-05-27  6:28 Benjamin Kosnik
  0 siblings, 0 replies; 13+ messages in thread
From: Benjamin Kosnik @ 2002-05-27  6:28 UTC (permalink / raw)
  To: gdb-patches, mec


# Copyright 2002 Free Software Foundation, Inc.

# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  

# Tests for member static data
# 2002-05-13  Benjamin Kosnik  <bkoz@redhat.com>

# This file is part of the gdb testsuite

if $tracelevel then {
        strace $tracelevel
        }

if { [skip_cplus_tests] } { continue }

#
# test running programs
#
set prms_id 0
set bug_id 0

set testfile "member_data_static"
set srcfile ${testfile}.cc
set binfile ${objdir}/${subdir}/${testfile}

if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}

if [get_compiler_info ${binfile} "c++"] {
    return -1
}

gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile}


if ![runto_main] then {
    perror "couldn't run to breakpoint"
    continue
}

# One.
send_gdb "break 62\n"
gdb_expect {
   -re "Breakpoint \[0-9\]*.*line 62\\.\r\n$gdb_prompt $" {
      pass "set break at 62"
    }
    -re ".*$gdb_prompt $" { fail "set break at 62" }
    timeout { fail "(timeout) set break at 62" }
}

send_gdb "continue\n"
gdb_expect {
   -re "Continuing\\.\r\n\r\nBreakpoint.*at.*member_data_static\\.cc:62\r\n.*$gdb_prompt $" {
      pass "continue to 62"
    }
    -re ".*$gdb_prompt $" { fail "continue to 62" }
    timeout { fail "(timeout) continue to 62" }
}

# simple object, static const bool
send_gdb "print test1.test\n"
gdb_expect {
   -re "true\r\n$gdb_prompt $" {
      pass "simple object, static const bool"
    }
    -re ".*$gdb_prompt $" { fail "simple object, static const bool" }
    timeout { fail "simple object, static const bool" }
}

# simple object, static const int
send_gdb "print test1.key1\n"
gdb_expect {
   -re "5\r\n$gdb_prompt $" {
      pass "simple object, static const int"
    }
    -re ".*$gdb_prompt $" { fail "simple object, static const int" }
    timeout { fail "simple object, static const int" }
}

# simple object, static long
send_gdb "print test1.key2\n"
gdb_expect {
   -re "77\r\n$gdb_prompt $" {
      pass "simple object, static long"
    }
    -re ".*$gdb_prompt $" { fail "simple object, static long" }
    timeout { fail "simple object, static long" }
}

# simple object, static enum
send_gdb "print test1.value\n"
gdb_expect {
   -re "oriental\r\n$gdb_prompt $" {
      pass "simple object, static enum"
    }
    -re ".*$gdb_prompt $" { fail "simple object, static enum" }
    timeout { fail "simple object, static enum" }
}

# Two.
send_gdb "break 63\n"
gdb_expect {
   -re "Breakpoint \[0-9\]*.*line 63\\.\r\n$gdb_prompt $" {
      pass "set break at 63"
    }
    -re ".*$gdb_prompt $" { fail "set break at 63" }
    timeout { fail "(timeout) set break at 63" }
}

send_gdb "continue\n"
gdb_expect {
   -re "Continuing\\.\r\n\r\nBreakpoint.*at.*member_data_static\\.cc:63\r\n.*$gdb_prompt $" {
      pass "continue to 63"
    }
    -re ".*$gdb_prompt $" { fail "continue to 63" }
    timeout { fail "(timeout) continue to 63" }
}

# derived template object, base static const bool
send_gdb "print test2.test\n"
gdb_expect {
   -re "true\r\n$gdb_prompt $" {
      pass "derived template object, base static const bool"
    }
    -re ".*$gdb_prompt $" { fail "derived template object, base static const bool" }
    timeout { fail "derived template object, base static const bool" }
}

# derived template object, base static const int
send_gdb "print test2.key1\n"
gdb_expect {
   -re "5\r\n$gdb_prompt $" {
      pass "derived template object, base static const int"
    }
    -re ".*$gdb_prompt $" { fail "derived template object, base static const int" }
    timeout { fail "derived template object, base static const int" }
}

# derived template object, base static long
send_gdb "print test2.key2\n"
gdb_expect {
   -re "77\r\n$gdb_prompt $" {
      pass "derived template object, base static long"
    }
    -re ".*$gdb_prompt $" { fail "derived template object, base static long" }
    timeout { fail "derived template object, base static long" }
}

# derived template object, base static enum
send_gdb "print test2.value\n"
gdb_expect {
   -re "oriental\r\n$gdb_prompt $" {
      pass "derived template object, base static enum"
    }
    -re ".*$gdb_prompt $" { fail "derived template object, base static enum" }
    timeout { fail "derived template object, base static enum" }
}

# derived template object, static enum
send_gdb "print test2.value_derived\n"
gdb_expect {
   -re "etruscan\r\n$gdb_prompt $" {
      pass "derived template object, static enum"
    }
    -re ".*$gdb_prompt $" { fail "derived template object, static enum" }
    timeout { fail "derived template object, static enum" }
}

# Three.
send_gdb "break 64\n"
gdb_expect {
   -re "Breakpoint \[0-9\]*.*line 64\\.\r\n$gdb_prompt $" {
      pass "set break at 64"
    }
    -re ".*$gdb_prompt $" { fail "set break at 64" }
    timeout { fail "(timeout) set break at 64" }
}

send_gdb "continue\n"
gdb_expect {
   -re "Continuing\\.\r\n\r\nBreakpoint.*at.*member_data_static\\.cc:64\r\n.*$gdb_prompt $" {
      pass "continue to 64"
    }
    -re ".*$gdb_prompt $" { fail "continue to 64" }
    timeout { fail "(timeout) continue to 64" }
}

# template object, static derived template data member's base static const bool
send_gdb "print test3.data.test\n"
gdb_expect {
   -re "true\r\n$gdb_prompt $" {
      pass "template object, static const bool"
    }
    -re ".*$gdb_prompt $" { fail "template object, static const bool" }
    timeout { fail "template object, static const bool" }
}

# template object, static derived template data member's base static const int
send_gdb "print test3.data.key1\n"
gdb_expect {
   -re "5\r\n$gdb_prompt $" {
      pass "template object, static const int"
    }
    -re ".*$gdb_prompt $" { fail "template object, static const int" }
    timeout { fail "template object, static const int" }
}

# template object, static derived template data member's base static long
send_gdb "print test3.data.key2\n"
gdb_expect {
   -re "77\r\n$gdb_prompt $" {
      pass "template object, static long"
    }
    -re ".*$gdb_prompt $" { fail "template object, static long" }
    timeout { fail "template object, static long" }
}

# template object, static derived template data member's base static enum
send_gdb "print test3.data.value\n"
gdb_expect {
   -re "oriental\r\n$gdb_prompt $" {
      pass "template object, static enum"
    }
    -re ".*$gdb_prompt $" { fail "template object, static enum" }
    timeout { fail "template object, static enum" }
}

#  template object, static derived template data member's static enum
send_gdb "print test3.data.value_derived\n"
gdb_expect {
   -re "etruscan\r\n$gdb_prompt $" {
      pass "template object, static enum"
    }
    -re ".*$gdb_prompt $" { fail "template object, static enum" }
    timeout { fail "template object, static enum" }
}

gdb_exit
return 0


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2002-05-30 19:12 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-05-29  8:34 gdb.c++ testsuite 1.3: member_data_static.exp (resend) Michael Elizabeth Chastain
  -- strict thread matches above, loose matches on Subject: below --
2002-05-30 12:29 Michael Elizabeth Chastain
2002-05-30 12:12 Michael Elizabeth Chastain
2002-05-28 15:26 Michael Elizabeth Chastain
2002-05-29  8:09 ` Benjamin Kosnik
2002-05-29  8:19   ` Daniel Jacobowitz
2002-05-29  8:34     ` B. Kosnik
2002-05-29  9:39       ` Daniel Jacobowitz
2002-05-30  7:56         ` Benjamin Kosnik
2002-05-27 16:02 Michael Elizabeth Chastain
2002-05-28  9:17 ` Benjamin Kosnik
2002-05-28  9:47   ` Daniel Jacobowitz
2002-05-27  6:28 Benjamin Kosnik

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox