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

# 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++}] != "" } {
     gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}

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

