# Copyright 1998-2004, 2007-2012 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 3 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, see <http://www.gnu.org/licenses/>.

# This file was written by Elena Zannoni (ezannoni@cygnus.com)
# And rewritten by Michael Chastain <mec.gnu@mindspring.com>

# This file is part of the gdb testsuite

# tests for inheritance, with several derivations types combinations
# (private, public, protected) 
# classes have simple members and member functions.

set ws "\[\r\n\t \]+"
set nl "\[\r\n\]+"

# Start program.


if { [skip_cplus_tests] } { continue }

load_lib "cp-support.exp"

standard_testfile .cc

if {[prepare_for_testing $testfile.exp $testfile $srcfile {debug c++}]} {
    return -1
}

# Check inheritance of typedefs.
foreach klass {"A" "D" "E" "F"} {
    gdb_test "ptype ${klass}::value_type" "type = int"
    gdb_test "whatis ${klass}::value_type" "type = int"
    gdb_test "p (${klass}::value_type) 0" " = 0"
}
foreach klass {"Z" "ZZ"} {
    gdb_test "ptype ${klass}::value_type" "type = float"
    gdb_test "whatis ${klass}::value_type" "type = float"
    gdb_test "p (${klass}::value_type) 0" " = 0"
}

# Set it up at a breakpoint so we can play with the variable values.

if ![runto 'marker1'] then {
    perror "couldn't run to marker1"
    continue
}

gdb_test "up" ".*main.*" "up from marker1"

# Print class types and values.

# class A

gdb_test "print a_instance" "\\$\[0-9\]+ = \{a = 1, aa = 2\}" "print value of a_instance"

cp_test_ptype_class \
    "a_instance" "" "class" "A" \
    {
	{ field  public "A::value_type a;" }
	{ field  public "A::value_type aa;" }
	{ method public "A();" }
	{ method public "A::value_type afoo();" }
	{ method public "A::value_type foo();" }
	{ typedef public "typedef int value_type;" }
    }

# class D

gdb_test_multiple "print d_instance" "print value of d_instance" {
    -re "\\$\[0-9\]+ = \{<(class A|A)> = \{a = 1, aa = 2\}, <(class B|B)> = \{b = 3, bb = 4\}, <(class C|C)> = \{c = 5, cc = 6\}, d = 7, dd = 8\}$nl$gdb_prompt $" {
	pass "print value of d_instance"
    }
}

cp_test_ptype_class \
    "d_instance" "" "class" "D" \
    {
	{ base          "private A" }
	{ base          "public B" }
	{ base          "protected C" }
	{ field  public "A::value_type d;" }
	{ field  public "A::value_type dd;" }
	{ method public "D();" }
	{ method public "A::value_type dfoo();" }
	{ method public "A::value_type foo();" }
    } \
    "" \
    {
	{ "protected C" "private C" { setup_xfail "*-*-*" "gcc/13539" } }
    }

# class E

gdb_test_multiple "print e_instance" "print value of e_instance" {
    -re "\\$\[0-9\]+ = \{<(class A|A)> = \{a = 1, aa = 2\}, <(class B|B)> = \{b = 3, bb = 4\}, <(class C|C)> = \{c = 5, cc = 6\}, e = 9, ee = 10\}$nl$gdb_prompt $" {
	pass "print value of e_instance"
    }
}

cp_test_ptype_class \
    "e_instance" "" "class" "E" \
    {
	{ base          "public A" }
	{ base          "private B" }
	{ base          "protected C" }
	{ field  public "A::value_type e;" }
	{ field  public "A::value_type ee;" }
	{ method public "E();" }
	{ method public "A::value_type efoo();" }
	{ method public "A::value_type foo();" }
    } \
    "" \
    {
	{ "protected C" "private C" { setup_xfail "*-*-*" "gcc/13539" } }
    }

# class F

gdb_test_multiple "print f_instance" "print value of f_instance" {
    -re "\\$\[0-9\]+ = \{<(class A|A)> = \{a = 1, aa = 2\}, <(class B|B)> = \{b = 3, bb = 4\}, <(class C|C)> = \{c = 5, cc = 6\}, f = 11, ff = 12\}$nl$gdb_prompt $" {
	pass "print value of f_instance"
    }
}

cp_test_ptype_class \
    "f_instance" "" "class" "F" \
    {
	{ base          "private A" }
	{ base          "public B" }
	{ base          "private C" }
	{ field  public "A::value_type f;" }
	{ field  public "A::value_type ff;" }
	{ method public "F();" }
	{ method public "A::value_type ffoo();" }
	{ method public "A::value_type foo();" }
    }

# class G
cp_test_ptype_class \
    "g_instance" "" "class" "G" \
    {
	{ base          "private A" }
	{ base          "public B" }
	{ base          "protected C" }
	{ field public "int g;" }
	{ field public "int gg;" }
	{ field public "int a;" }
	{ field public "int b;" }
	{ field public "int c;" }
	{ method public "int gfoo();" }
	{ method public "int foo();" }
    }

# Print individual fields.

gdb_test "print d_instance.a"  "\\$\[0-9\]+ = 1" "print value of d_instance.a"
gdb_test "print d_instance.aa" "\\$\[0-9\]+ = 2" "print value of d_instance.aa"
gdb_test "print d_instance.b"  "\\$\[0-9\]+ = 3" "print value of d_instance.b"
gdb_test "print d_instance.bb" "\\$\[0-9\]+ = 4" "print value of d_instance.bb"
gdb_test "print d_instance.c"  "\\$\[0-9\]+ = 5" "print value of d_instance.c"
gdb_test "print d_instance.cc" "\\$\[0-9\]+ = 6" "print value of d_instance.cc"
gdb_test "print d_instance.d"  "\\$\[0-9\]+ = 7" "print value of d_instance.d"
gdb_test "print d_instance.dd" "\\$\[0-9\]+ = 8" "print value of d_instance.dd"

# Print some fields which are defined in the top of class G
# and in its base classes.  This is not be ambiguous.

gdb_test "print g_instance.a"  "\\$\[0-9\]+ = 15" "print value of g_instance.a"
gdb_test "print g_instance.b"  "\\$\[0-9\]+ = 16" "print value of g_instance.b"
gdb_test "print g_instance.c"  "\\$\[0-9\]+ = 17" "print value of g_instance.c"

# Print a function call.

gdb_test "print g_instance.afoo()" "\\$\[0-9\]+ = 1" "print value of g_instance.afoo()"

# If GDB fails to restore the selected frame properly after the
# inferior function call above (see GDB PR 1155 for an explanation of
# why this might happen), all the subsequent tests will fail.  We
# should detect report that failure, but let the marker call finish so
# that the rest of the tests can run undisturbed.

gdb_test_multiple "frame" "re-selected 'main' frame after inferior call" {
    -re "#0  marker1.*$gdb_prompt $" {
        setup_kfail "gdb/1155" s390-*-linux-gnu
        fail "re-selected 'main' frame after inferior call"
        gdb_test "finish" ".*main.*at .*derivation.cc:.*// marker1-returns-here.*" \
            "finish call to marker1"
    }
    -re "#1  ($hex in )?main.*$gdb_prompt $" {
        pass "re-selected 'main' frame after inferior call"
    }
}

gdb_test "print g_instance.bfoo()" "\\$\[0-9\]+ = 2" "print value of g_instance.bfoo()"
gdb_test "print g_instance.cfoo()" "\\$\[0-9\]+ = 3" "print value of g_instance.cfoo()"

# Check typedefs of fields
foreach Klass {"C" "G"} {
    set klass [string tolower $Klass]
    set instance "${klass}_instance"
    set var "${instance}.$klass"
    gdb_test "whatis $var" "int"
    gdb_test "ptype $var" "int"
}

foreach Klass {"A" "B" "D" "E" "F"} {
    set klass [string tolower $Klass]
    set instance "${klass}_instance"
    set var "${instance}.$klass"
    gdb_test "whatis $var" "A::value_type"
    gdb_test "ptype $var" "int"
    if {![string equal $Klass "B"]} {
	gdb_test "p (${Klass}::value_type) 0" " = 0"
    }
}

foreach Klass {"Z" "ZZ"} {
    set klass [string tolower $Klass]
    set instance "${klass}_instance"
    set var "${instance}.$klass"
    gdb_test "whatis $var" "Z::value_type"
    gdb_test "ptype $var" "float"
    gdb_test "p (${Klass}::value_type) 0" " = 0"
}

# This is a regression test for a bug that caused a crash when trying
# to print the vtbl pointer.  We don't care about the output so much
# here (it is tested elsewhere), just that gdb doesn't crash.  We test
# "ptype" first because, before the gdb fix, that was the only code
# path calling get_vptr_fieldno.
gdb_test "ptype vderived" "type = .*"
gdb_test "print vderived" " = {.* inter = 0.*x = 0}"

# Test whether inheritance of typedefs is properly
# reported when stopped.
gdb_test "ptype N::value_type" "type = double"
gdb_test "ptype N::Derived::value_type" "type = int"

# Now run to N::Derived::doit and get the type of "value_type"
if {![runto "N::Derived::doit"]} {
    perrro "couldn't run to N::Derived::doit"
    continue
}

gdb_test "ptype value_type" "type = int"
