# Tests for reference types with short type variables in GDB.
# Copyright 1998, 1999, 2000, 2004, 2007, 2008, 2009
# 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 '\.25'\.*$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 \'.25\'.*$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" }
  }

