# Tests for reference types with short type variables in GDB.
# Copyright 1998, 1999, 2000, 2004, 2007, 2008 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/>.

# written by Elena Zannoni (ezannoni@cygnus.com)

if $tracelevel then {
        strace $tracelevel
        }

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

if { [skip_cplus_tests] } { continue }

set testfile "ref-types"
set srcfile ${testfile}.cc
set binfile ${objdir}/${subdir}/${testfile}

if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug c++}] != "" } {
     untested ref-types.exp
     return -1
}

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


#
# set it up at a breakpoint so we can play with the variable values
#
if ![runto_main] then {
    perror "couldn't run to breakpoint"
    continue
}

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

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

proc gdb_start_again {} {
    global srcdir
    global subdir
    global binfile
    global gdb_prompt
    global decimal

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

    #
    # set it up at a breakpoint so we can play with the variable values
    #
    if ![runto_main] then {
	perror "couldn't run to breakpoint"
	continue
    }

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

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



send_gdb "print s\n"
gdb_expect {
    -re ".\[0-9\]* = -1.*$gdb_prompt $" {
        pass "print value of s"
      }
    -re ".*$gdb_prompt $" { fail "print value of s" }
    timeout           { fail "(timeout) print value of s" }
  }


send_gdb "ptype s\n"
gdb_expect {
    -re "type = short.*$gdb_prompt $"  { pass "ptype s" }
    -re ".*$gdb_prompt $"   {  fail "ptype s" }
    timeout             { fail "(timeout) ptype s" }
}


send_gdb "print *ps\n"
gdb_expect {
    -re ".\[0-9\]* = -1.*$gdb_prompt $" {
        pass "print value of ps"
      }
    -re ".*$gdb_prompt $" { fail "print value of ps" }
    timeout           { fail "(timeout) print value of ps" }
  }


send_gdb "ptype ps\n"
gdb_expect {
    -re "type = short \*.*$gdb_prompt $"  { pass "ptype ps" }
    -re ".*$gdb_prompt $"   {  fail "ptype ps" }
    timeout             { fail "(timeout) ptype ps" }
}

send_gdb "print as\[0\]\n"
gdb_expect {
    -re ".\[0-9\]* = 0.*$gdb_prompt $" {
        pass "print value of as\[0\]"
      }
    -re ".*$gdb_prompt $" { fail "print value of as\[0\]" }
    timeout           { fail "(timeout) print value of as\[0\]" }
  }


send_gdb "ptype as\n"
gdb_expect {
    -re "type = short \\\[4\\\].*$gdb_prompt $"  { pass "ptype as" }
    -re "type = short int \\\[4\\\].*$gdb_prompt $"  { pass "ptype as" }
    -re ".*$gdb_prompt $"   {  fail "ptype as" }
    timeout             { fail "(timeout) ptype as" }
}

send_gdb "print as\[1\]\n"
gdb_expect {
    -re ".\[0-9\]* = 1.*$gdb_prompt $" {
        pass "print value of as\[1\]"
      }
    -re ".*$gdb_prompt $" { fail "print value of as\[1\]" }
    timeout           { fail "(timeout) print value of as\[1\]" }
  }

send_gdb "print as\[2\]\n"
gdb_expect {
    -re ".\[0-9\]* = 2.*$gdb_prompt $" {
        pass "print value of as\[2\]"
      }
    -re ".*$gdb_prompt $" { fail "print value of as\[2\]" }
    timeout           { fail "(timeout) print value of as\[2\]" }
  }

send_gdb "print as\[3\]\n"
gdb_expect {
    -re ".\[0-9\]* = 3.*$gdb_prompt $" {
        pass "print value of as\[3\]"
      }
    -re ".*$gdb_prompt $" { fail "print value of as\[3\]" }
    timeout           { fail "(timeout) print value of as\[3\]" }
  }

send_gdb "print rs\n"
gdb_expect {
    -re ".\[0-9\]* = \\(short &\\) @$hex: -1.*$gdb_prompt $" {
        pass "print value of rs"
    }
    -re ".\[0-9\]* = \\(short int &\\) @$hex: -1.*$gdb_prompt $" {
        pass "print value of rs"
    }
    -re ".*$gdb_prompt $" { fail "print value of rs" }
    timeout           { fail "(timeout) print value of rs" }
    eof { fail "print rs ($GDB dumped core) (FIXME)" ; gdb_start_again ; }

  }

send_gdb "ptype rs\n"
gdb_expect {
    -re "type = short &.*$gdb_prompt $"  { pass "ptype rs" }
    -re "type = short int &.*$gdb_prompt $"  { pass "ptype rs" }
    -re ".*$gdb_prompt $"   {  fail "ptype rs" }
    timeout             { fail "(timeout) ptype rs" }
}


send_gdb "print *rps\n"
gdb_expect {
    -re ".\[0-9\]* = -1.*$gdb_prompt $" {
        pass "print value of *rps"
      }
    -re ".*$gdb_prompt $" { fail "print value of *rps" }
    timeout           { fail "(timeout) print value of *rps" }
  }


send_gdb "ptype rps\n"
gdb_expect {
    -re "type = short \\*&.*$gdb_prompt $"  { pass "ptype rps" }
    -re "type = short int \\*&.*$gdb_prompt $"  { pass "ptype rps" }
    -re ".*$gdb_prompt $"   {  fail "ptype rps" }
    timeout             { fail "(timeout) ptype rps" }
}



send_gdb "print ras\[0\]\n"
gdb_expect {
    -re ".\[0-9\]* = 0.*$gdb_prompt $" {
        pass "print value of ras\[0\]"
      }
    -re ".*$gdb_prompt $" { fail "print value of ras\[0\]" }
    timeout           { fail "(timeout) print value of ras\[0\]" }
  }


send_gdb "ptype ras\n"
gdb_expect {
    -re "type = short \\\(&\\\)\\\[4\\\].*$gdb_prompt $"  { pass "ptype ras" }
    -re "type = short int \\\(&\\\)\\\[4\\\].*$gdb_prompt $"  { pass "ptype ras" }
    -re ".*$gdb_prompt $"   {  fail "ptype ras" }
    timeout             { fail "(timeout) ptype ras" }
}

send_gdb "print ras\[1\]\n"
gdb_expect {
    -re ".\[0-9\]* = 1.*$gdb_prompt $" {
        pass "print value of ras\[1\]"
      }
    -re ".*$gdb_prompt $" { fail "print value of ras\[1\]" }
    timeout           { fail "(timeout) print value of ras\[1\]" }
  }

send_gdb "print ras\[2\]\n"
gdb_expect {
    -re ".\[0-9\]* = 2.*$gdb_prompt $" {
        pass "print value of ras\[2\]"
      }
    -re ".*$gdb_prompt $" { fail "print value of ras\[2\]" }
    timeout           { fail "(timeout) print value of ras\[2\]" }
  }

send_gdb "print ras\[3\]\n"
gdb_expect {
    -re ".\[0-9\]* = 3.*$gdb_prompt $" {
        pass "print value of ras\[3\]"
      }
    -re ".*$gdb_prompt $" { fail "print value of ras\[3\]" }
    timeout           { fail "(timeout) print value of ras\[3\]" }
  }


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

gdb_test "up" ".main2.*" "up from f"

send_gdb "print C\n"
gdb_expect {
    -re ".\[0-9\]* = 65 \'A\'.*$gdb_prompt $" {
        pass "print value of C"
      }
    -re ".*$gdb_prompt $" { fail "print value of C" }
    timeout           { fail "(timeout) print value of C" }
  }


send_gdb "ptype C\n"
gdb_expect {
    -re "type = char.*$gdb_prompt $"  { pass "ptype C" }
    -re ".*$gdb_prompt $"   {  fail "ptype C" }
    timeout             { fail "(timeout) ptype C" }
}


send_gdb "print UC\n"
gdb_expect {
    -re ".\[0-9\]* = 21 '\.025'\.*$gdb_prompt $" {
        pass "print value of UC"
      }
    -re ".*$gdb_prompt $" { fail "print value of UC" }
    timeout           { fail "(timeout) print value of UC" }
  }


send_gdb "ptype UC\n"
gdb_expect {
    -re "type = unsigned char.*$gdb_prompt $"  { pass "ptype UC" }
    -re ".*$gdb_prompt $"   {  fail "ptype UC" }
    timeout             { fail "(timeout) ptype UC" }
}


send_gdb "print S\n"
gdb_expect {
    -re ".\[0-9\]* = -14.*$gdb_prompt $" {
        pass "print value of S"
      }
    -re ".*$gdb_prompt $" { fail "print value of S" }
    timeout           { fail "(timeout) print value of S" }
  }


send_gdb "ptype S\n"
gdb_expect {
    -re "type = short.*$gdb_prompt $"  { pass "ptype S" }
    -re ".*$gdb_prompt $"   {  fail "ptype S" }
    timeout             { fail "(timeout) ptype S" }
}


send_gdb "print US\n"
gdb_expect {
    -re ".\[0-9\]* = 7.*$gdb_prompt $" {
        pass "print value of US"
      }
    -re ".*$gdb_prompt $" { fail "print value of US" }
    timeout           { fail "(timeout) print value of US" }
  }


send_gdb "ptype US\n"
gdb_expect {
    -re "type = unsigned short.*$gdb_prompt $"  { pass "ptype US" }
    -re "type = short unsigned.*$gdb_prompt $"  { pass "ptype US" }
    -re ".*$gdb_prompt $"   {  fail "ptype US" }
    timeout             { fail "(timeout) ptype US" }
}


send_gdb "print I\n"
gdb_expect {
    -re ".\[0-9\]* = 102.*$gdb_prompt $" {
        pass "print value of I"
      }
    -re ".*$gdb_prompt $" { fail "print value of I" }
    timeout           { fail "(timeout) print value of I" }
  }


send_gdb "ptype I\n"
gdb_expect {
    -re "type = int.*$gdb_prompt $"  { pass "ptype I" }
    -re ".*$gdb_prompt $"   {  fail "ptype I" }
    timeout             { fail "(timeout) ptype I" }
}


send_gdb "print UI\n"
gdb_expect {
    -re ".\[0-9\]* = 1002.*$gdb_prompt $" {
        pass "print value of UI"
      }
    -re ".*$gdb_prompt $" { fail "print value of UI" }
    timeout           { fail "(timeout) print value of UI" }
  }


send_gdb "ptype UI\n"
gdb_expect {
    -re "type = unsigned int.*$gdb_prompt $"  { pass "ptype UI" }
    -re ".*$gdb_prompt $"   {  fail "ptype UI" }
    timeout             { fail "(timeout) ptype UI" }
}


send_gdb "print L\n"
gdb_expect {
    -re ".\[0-9\]* = -234.*$gdb_prompt $" {
        pass "print value of L"
      }
    -re ".*$gdb_prompt $" { fail "print value of L" }
    timeout           { fail "(timeout) print value of L" }
  }


send_gdb "ptype L\n"
gdb_expect {
    -re "type = long.*$gdb_prompt $"  { pass "ptype L" }
    -re ".*$gdb_prompt $"   {  fail "ptype L" }
    timeout             { fail "(timeout) ptype L" }
}


send_gdb "print UL\n"
gdb_expect {
    -re ".\[0-9\]* = 234.*$gdb_prompt $" {
        pass "print value of UL"
      }
    -re ".*$gdb_prompt $" { fail "print value of UL" }
    timeout           { fail "(timeout) print value of UL" }
  }


send_gdb "ptype UL\n"
gdb_expect {
    -re "type = unsigned long.*$gdb_prompt $"  { pass "ptype UL" }
    -re "type = long unsigned.*$gdb_prompt $"  { pass "ptype UL" }
    -re ".*$gdb_prompt $"   {  fail "ptype UL" }
    timeout             { fail "(timeout) ptype UL" }
}


send_gdb "print F\n"
gdb_expect {
    -re ".\[0-9\]* = 1.2\[0-9\]*e\\+10.*$gdb_prompt $" {
        pass "print value of F"
      }
    -re ".*$gdb_prompt $" { fail "print value of F" }
    timeout           { fail "(timeout) print value of F" }
  }



send_gdb "ptype F\n"
gdb_expect {
    -re "type = float.*$gdb_prompt $"  { pass "ptype F" }
    -re ".*$gdb_prompt $"   {  fail "ptype F" }
    timeout             { fail "(timeout) ptype F" }
}


send_gdb "print D\n"
gdb_expect {
    -re ".\[0-9\]* = -1.375e-123.*$gdb_prompt $" {
        pass "print value of D"
      }
    -re ".*$gdb_prompt $" { fail "print value of D" }
    timeout           { fail "(timeout) print value of D" }
  }


send_gdb "ptype D\n"
gdb_expect {
    -re "type = double.*$gdb_prompt $"  { pass "ptype D" }
    -re ".*$gdb_prompt $"   {  fail "ptype D" }
    timeout             { fail "(timeout) ptype D" }
}



#
# test reference types
#




send_gdb "ptype rC\n"
gdb_expect {
    -re "type = char &.*$gdb_prompt $"  { pass "ptype rC" }
    -re ".*$gdb_prompt $"   {  fail "ptype rC" }
    timeout             { fail "(timeout) ptype rC" }
}




send_gdb "ptype rUC\n"
gdb_expect {
    -re "type = unsigned char &.*$gdb_prompt $"  { pass "ptype rUC" }
    -re ".*$gdb_prompt $"   {  fail "ptype rUC" }
    timeout             { fail "(timeout) ptype rUC" }
}



send_gdb "ptype rS\n"
gdb_expect {
    -re "type = short &.*$gdb_prompt $"  { pass "ptype rS" }
    -re "type = short int &.*$gdb_prompt $"  { pass "ptype rS" }
    -re ".*$gdb_prompt $"   {  fail "ptype rS" }
    timeout             { fail "(timeout) ptype rS" }
}



send_gdb "ptype rUS\n"
gdb_expect {
    -re "type = unsigned short &.*$gdb_prompt $"  { pass "ptype rUS" }
    -re "type = short unsigned int &.*$gdb_prompt $"  { pass "ptype rUS" }
    -re ".*$gdb_prompt $"   {  fail "ptype rUS" }
    timeout             { fail "(timeout) ptype rUS" }
}


send_gdb "ptype rI\n"
gdb_expect {
    -re "type = int &.*$gdb_prompt $"  { pass "ptype rI" }
    -re ".*$gdb_prompt $"   {  fail "ptype rI" }
    timeout             { fail "(timeout) ptype rI" }
}



send_gdb "ptype rUI\n"
gdb_expect {
    -re "type = unsigned int &.*$gdb_prompt $"  { pass "ptype rUI" }
    -re ".*$gdb_prompt $"   {  fail "ptype rUI" }
    timeout             { fail "(timeout) ptype rUI" }
}



send_gdb "ptype rL\n"
gdb_expect {
    -re "type = long &.*$gdb_prompt $"  { pass "ptype rL" }
    -re "type = long int &.*$gdb_prompt $"  { pass "ptype rL" }
    -re ".*$gdb_prompt $"   {  fail "ptype rL" }
    timeout             { fail "(timeout) ptype rL" }
}


send_gdb "ptype rUL\n"
gdb_expect {
    -re "type = unsigned long &.*$gdb_prompt $"  { pass "ptype rUL" }
    -re "type = long unsigned int &.*$gdb_prompt $"  { pass "ptype rUL" }
    -re ".*$gdb_prompt $"   {  fail "ptype rUL" }
    timeout             { fail "(timeout) ptype rUL" }
}


send_gdb "ptype rF\n"
gdb_expect {
    -re "type = float &.*$gdb_prompt $"  { pass "ptype rF" }
    -re ".*$gdb_prompt $"   {  fail "ptype rF" }
    timeout             { fail "(timeout) ptype rF" }
}


send_gdb "ptype rD\n"
gdb_expect {
    -re "type = double &.*$gdb_prompt $"  { pass "ptype rD" }
    -re ".*$gdb_prompt $"   {  fail "ptype rD" }
    timeout             { fail "(timeout) ptype rD" }
}


send_gdb "print rC\n"
gdb_expect {
    -re ".\[0-9\]* = \\(char &\\) @$hex: 65 \'A\'.*$gdb_prompt $" {
        pass "print value of rC"
      }
    -re ".*$gdb_prompt $" { fail "print value of rC" }
    timeout           { fail "(timeout) print value of rC" }
  }


send_gdb "print rUC\n"
gdb_expect {
    -re ".\[0-9\]* = \\(unsigned char &\\) @$hex: 21 \'.025\'.*$gdb_prompt $" {
        pass "print value of rUC"
      }
    -re ".*$gdb_prompt $" { fail "print value of rUC" }
    timeout           { fail "(timeout) print value of rUC" }
  }


send_gdb "print rS\n"
gdb_expect {
    -re ".\[0-9\]* = \\(short &\\) @$hex: -14.*$gdb_prompt $" {
        pass "print value of rS"
    }
    -re ".\[0-9\]* = \\(short int &\\) @$hex: -14.*$gdb_prompt $" {
        pass "print value of rS"
    }
    -re ".*$gdb_prompt $" { fail "print value of rS" }
    timeout           { fail "(timeout) print value of rS" }
  }


send_gdb "print rUS\n"
gdb_expect {
    -re ".\[0-9\]* = \\(unsigned short &\\) @$hex: 7.*$gdb_prompt $" {
        pass "print value of rUS"
    }
    -re ".\[0-9\]* = \\(short unsigned int &\\) @$hex: 7.*$gdb_prompt $" {
        pass "print value of rUS"
    }
    -re ".*$gdb_prompt $" { fail "print value of rUS" }
    timeout           { fail "(timeout) print value of rUS" }
  }


send_gdb "print rI\n"
gdb_expect {
    -re ".\[0-9\]* = \\(int &\\) @$hex: 102.*$gdb_prompt $" {
        pass "print value of rI"
      }
    -re ".*$gdb_prompt $" { fail "print value of rI" }
    timeout           { fail "(timeout) print value of rI" }
  }


send_gdb "print rUI\n"
gdb_expect {
    -re ".\[0-9\]* = \\(unsigned int &\\) @$hex: 1002.*$gdb_prompt $" {
        pass "print value of UI"
      }
    -re ".*$gdb_prompt $" { fail "print value of rUI" }
    timeout           { fail "(timeout) print value of rUI" }
  }


send_gdb "print rL\n"
gdb_expect {
    -re ".\[0-9\]* = \\(long &\\) @$hex: -234.*$gdb_prompt $" {
        pass "print value of rL"
    }
    -re ".\[0-9\]* = \\(long int &\\) @$hex: -234.*$gdb_prompt $" {
        pass "print value of rL"
    }
    -re ".*$gdb_prompt $" { fail "print value of rL" }
    timeout           { fail "(timeout) print value of rL" }
  }



send_gdb "print rUL\n"
gdb_expect {
    -re ".\[0-9\]* = \\(unsigned long &\\) @$hex: 234.*$gdb_prompt $" {
        pass "print value of rUL"
    }
    -re ".\[0-9\]* = \\(long unsigned int &\\) @$hex: 234.*$gdb_prompt $" {
        pass "print value of rUL"
    }
    -re ".*$gdb_prompt $" { fail "print value of rUL" }
    timeout           { fail "(timeout) print value of rUL" }
  }


send_gdb "print rF\n"
gdb_expect {
    -re ".\[0-9\]* = \\(float &\\) @$hex: 1.2\[0-9\]*e\\+10.*$gdb_prompt $" {
        pass "print value of rF"
      }
    -re ".*$gdb_prompt $" { fail "print value of rF" }
    timeout           { fail "(timeout) print value of rF" }
  }


send_gdb "print rD\n"
gdb_expect {
    -re ".\[0-9\]* = \\(double &\\) @$hex: -1.375e-123.*$gdb_prompt $" {
        pass "print value of rD"
      }
    -re ".*$gdb_prompt $" { fail "print value of rD" }
    timeout           { fail "(timeout) print value of rD" }
  }

