# 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 '\.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" }
  }

