# Copyright 1998, 1999, 2000, 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/>.

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

# This file is part of the gdb testsuite
#
# tests for pointer arithmetic and pointer dereferencing
# with integer type variables and pointers to integers
# 

if $tracelevel then {
	strace $tracelevel
	}

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

set testfile "pointers"
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}

if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug nowarnings}] != "" } {
     untested pointers.exp
     return -1
    }

if [get_compiler_info ${binfile}] {
    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
}

gdb_test "next " "more_code.*;" "continuing after dummy()"


#
# let's see if gdb catches some illegal operations on pointers
#
# I must comment these out because strict type checking is not
# supported in this version of GDB. I do not really know
# what the expected gdb reply is.
#

#send_gdb "print v_int_pointer2 = &v_int_pointer\n"
#gdb_expect {
#    -re ".*.*$gdb_prompt $" {
#        pass "illegal pointer assignment rejected"
#      }
#    -re ".*$gdb_prompt $" { fail "illegal pointer assignment rejected" }
#    timeout           { fail "(timeout) illegal pointer assignment rejected" }    
#  }


#send_gdb "print v_unsigned_int_pointer = &v_int\n"
#gdb_expect {
#    -re ".*.*$gdb_prompt $" {
#        pass "illegal pointer assignment rejected"
#      }
#    -re ".*$gdb_prompt $" { fail "illegal pointer assignment rejected" }
#    timeout           { fail "(timeout) ilegal pointer assignment rejected" }    
#  }

#send_gdb "print v_unsigned_int_pointer == v_double_pointer\n"
#gdb_expect {
#    -re ".*.*$gdb_prompt $" {
#        pass "illegal pointer operation (+) rejected"
#      }
#    -re ".*$gdb_prompt $" { fail "illegal pointer operation (+) rejected" }
#    timeout           { fail "(timeout) illegal pointer operation (+) rejected" }    
#  }


#send_gdb "print v_unsigned_int_pointer * v_double_pointer\n"
#gdb_expect {
#    -re ".*Argument to arithmetic operation not a number or boolean.*$gdb_prompt $" {
#        pass "illegal pointer operation (*) rejected"
#      }
#    -re ".*$gdb_prompt $" { fail "illegal pointer operation (*) rejected" }
#    timeout           { fail "(timeout) illegal pointer operation (*) rejected" }    
#  }


#send_gdb "print v_unsigned_int_pointer = v_double_pointer\n"
#gdb_expect {
#    -re ".*.*$gdb_prompt $" {
#        pass "ilegal pointer assignment rejected"
#      }
#    -re ".*$gdb_prompt $" { fail "illegal pointer assignment rejected" }
#    timeout           { fail "(timeout) illegal pointer assignment rejected" }    
#  }


#send_gdb "print v_unsigned_int_pointer = v_unsigned_int\n"
#gdb_expect {
#    -re ".*.*$gdb_prompt $" {
#        pass "illegal pointer assignment rejected"
#      }
#    -re ".*$gdb_prompt $" { fail "illegal pointer assignment rejected" }
#    timeout           { fail "(timeout) illegal pointer assignment rejected" }    
#  }

gdb_test "set variable v_int_pointer=&v_int_array\[0\]" "" "set pointer to beginning of array"
gdb_test "set variable v_int_pointer2=&v_int_array\[1\]" "" "set pointer to end of array"


send_gdb "print *v_int_pointer\n"
gdb_expect {
    -re ".*= 6.*$gdb_prompt $" {
        pass "print object pointed to"
      }
    -re ".*$gdb_prompt $" { fail "print object pointed to" }
    timeout           { fail "(timeout) print object pointed to" }    
  }
  
send_gdb "print *v_int_pointer2\n"
gdb_expect {
    -re ".*= 18.*$gdb_prompt $" {
        pass "print object pointed to"
      }
    -re ".*$gdb_prompt $" { fail "print object pointed to" }
    timeout           { fail "(timeout) print object pointed to" }    
  }


send_gdb "print v_int_pointer == v_int_pointer2\n"
gdb_expect {
    -re ".*= $false.*$gdb_prompt $" {
        pass "pointer1==pointer2"
      }
    -re ".*$gdb_prompt $" { fail "pointer1==pointer2" }
    timeout           { fail "(timeout) pointer1==pointer2" }    
  }

send_gdb "print v_int_pointer != v_int_pointer2\n"
gdb_expect {
    -re ".*= $true.*$gdb_prompt $" {
        pass "pointer1!=pointer2"
      }
    -re ".*$gdb_prompt $" { fail "pointer1!=pointer2" }
    timeout           { fail "(timeout) pointer1!=pointer2" }    
  }


send_gdb "print v_int_pointer <= v_int_pointer2\n"
gdb_expect {
    -re ".*= $true.*$gdb_prompt $" {
        pass "pointer1<=pointer2"
      }
    -re ".*$gdb_prompt $" { fail "pointer1<=pointer2" }
    timeout           { fail "(timeout) pointer1<=pointer2" }    
  }


send_gdb "print v_int_pointer >= v_int_pointer2\n"
gdb_expect {
    -re ".*= $false.*$gdb_prompt $" {
        pass "pointer1>=pointer2"
      }
    -re ".*$gdb_prompt $" { fail "pointer1>=pointer2" }
    timeout           { fail "(timeout) pointer1>=pointer2" }    
  }


send_gdb "print v_int_pointer < v_int_pointer2\n"
gdb_expect {
    -re ".*= $true.*$gdb_prompt $" {
        pass "pointer1<pointer2"
      }
    -re ".*$gdb_prompt $" { fail "pointer1<pointer2" }
    timeout           { fail "(timeout) pointer1<pointer2" }    
  }

send_gdb "print v_int_pointer > v_int_pointer2\n"
gdb_expect {
    -re ".*= $false.*$gdb_prompt $" {
        pass "pointer1>pointer2"
      }
    -re ".*$gdb_prompt $" { fail "pointer1>pointer2" }
    timeout           { fail "(timeout) pointer1>pointer2" }    
  }


gdb_test "set variable y = *v_int_pointer++" "" "set y = *v_int_pointer++"
send_gdb "print y\n"
gdb_expect {
    -re ".*= 6.*$gdb_prompt $" {
        send_gdb "print *v_int_pointer\n"
        gdb_expect {
             -re ".*= 18.*$gdb_prompt $" {
                 pass "pointer assignment and increment"
               }
             -re ".*$gdb_prompt $" { fail "pointer assignment and increment" }
             timeout           { fail "(timeout) pointer assignment and increment" }    
         }
         }
    -re ".*$gdb_prompt $" { fail "pointer assignment and increment" }
    timeout           { fail "(timeout) pointer assignment and increment" }    
  }




gdb_test "set variable y = *--v_int_pointer2" "" "set y = *--v_int_pointer2"
send_gdb "print y\n"
gdb_expect {
    -re ".*= 6.*$gdb_prompt $" {
        send_gdb "print *v_int_pointer2\n"
        gdb_expect {
             -re ".*= 6.*$gdb_prompt $" {
                 pass "pointer decrement and assignment"
               }
             -re ".*$gdb_prompt $" { fail "pointer decrement and assignment" }
             timeout           { fail "(timeout) pointer decrement and assignment" }    
         }
         }
    -re ".*$gdb_prompt $" { fail "pointer decrement and assignment" }
    timeout           { fail "(timeout) pointer decrement and assignment" }    
  }

gdb_test "set variable y =v_int_pointer-v_int_pointer2" "" "set y =v_int_pointer-v_int_pointer2"
send_gdb "print y\n"
gdb_expect {
    -re ".*= 1.*$gdb_prompt $" {
        pass "pointer1-pointer2"
      }
    -re ".*$gdb_prompt $" { fail "pointer1-pointer2" }
    timeout           { fail "(timeout) pointer1-pointer2" }    
  }

gdb_test "set variable v_int_pointer=v_int_array" "" "set v_int_pointer=v_int_array"
send_gdb "print *v_int_pointer\n"
gdb_expect {
    -re ".*= 6.*$gdb_prompt $" {
        pass "print array element through pointer"
      }
    -re ".*$gdb_prompt $" { fail "print array element through pointer" }
    timeout           { fail "(timeout) print array element through pointer" }    
  }


send_gdb "print *(v_int_pointer+1)\n"
gdb_expect {
    -re ".*= 18.*$gdb_prompt $" {
        pass "print array element through pointer"
      }
    -re ".*$gdb_prompt $" { fail "print array element through pointer" }
    timeout           { fail "(timeout) print array element through pointer" }    
  }

# test print elements of array through pointers

send_gdb "print (*rptr)\[0\]\n"
gdb_expect {
    -re ".*= 0.*$gdb_prompt $" {
        pass "print array element through pointer"
      }
    -re ".*$gdb_prompt $" { fail "print array element through pointer" }
    timeout           { fail "(timeout) print array element through pointer" }    
  }

send_gdb "print (*rptr)\[1\]\n"
gdb_expect {
    -re ".*= 1.*$gdb_prompt $" {
        pass "print array element through pointer"
      }
    -re ".*$gdb_prompt $" { fail "print array element through pointer" }
    timeout           { fail "(timeout) print array element through pointer" }    
  }


send_gdb "print (*rptr)\[2\]\n"
gdb_expect {
    -re ".*= 2.*$gdb_prompt $" {
        pass "print array element through pointer"
      }
    -re ".*$gdb_prompt $" { fail "print array element through pointer" }
    timeout           { fail "(timeout) print array element through pointer" }    
  }

gdb_test "set variable rptr = rptr+1" "" "increment rptr"

send_gdb "print (*rptr)\[0\]\n"
gdb_expect {
    -re ".*= 3.*$gdb_prompt $" {
        pass "print array element through pointer"
      }
    -re ".*$gdb_prompt $" { fail "print array element through pointer" }
    timeout           { fail "(timeout) print array element through pointer" }    
  }


send_gdb "print (*rptr)\[1\]\n"
gdb_expect {
    -re ".*= 4.*$gdb_prompt $" {
        pass "print array element through pointer"
      }
    -re ".*$gdb_prompt $" { fail "print array element through pointer" }
    timeout           { fail "(timeout) print array element through pointer" }    
  }


send_gdb "print (*rptr)\[2\]\n"
gdb_expect {
    -re ".*= 5.*$gdb_prompt $" {
        pass "print array element through pointer"
      }
    -re ".*$gdb_prompt $" { fail "print array element through pointer" }
    timeout           { fail "(timeout) print array element through pointer" }    
  }


send_gdb "print *( *(matrix+1) +2)\n"
gdb_expect {
    -re ".*= 5.*$gdb_prompt $" {
        pass "print array element w/ pointer arithmetic"
      }
    -re ".*$gdb_prompt $" { fail "print array element w/ pointer arithemtic" }
    timeout           { fail "(timeout) print array element w/ pointer arithmetic" }    
  }


send_gdb "print **ptr_to_ptr_to_float\n"
gdb_expect {
    -re ".*= 100.*$gdb_prompt $" {
        pass "print through ptr to ptr"
      }
    -re ".*$gdb_prompt $" { fail "print through ptr to ptr" }
    timeout           { fail "(timeout) print through ptr to ptr" }    
  }

# tests for pointers 
# with elementary type variables and pointers.
# 

send_gdb "break marker1\n" ; gdb_expect -re ".*$gdb_prompt $"

send_gdb "cont\n"
gdb_expect {
    -re "Break.* marker1 \\(\\) at .*:$decimal.*$gdb_prompt $" {
	pass "continue to marker1"
	send_gdb "up\n"
	gdb_expect {
	    -re ".*more_code.*$gdb_prompt $" {
		pass "up from marker1"
	    }
	    -re ".*$gdb_prompt $" {
		fail "up from marker1"
	    }
	    timeout { fail "up from marker1 (timeout)" }
	}
    }
    -re "$gdb_prompt $" {
	fail "continue to marker1"
    }
    timeout {
	fail "continue to marker1 (timeout)"
    }
}


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


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

send_gdb "print *pS\n"
gdb_expect {
    -re ".\[0-9\]* = -14.*$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 "type = short int \\*.*$gdb_prompt $"  { pass "ptype pS" }
    -re ".*$gdb_prompt $"   {  fail "ptype pS" }
    timeout             { fail "(timeout) ptype pS" }
}

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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


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

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

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

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

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

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

# Regression test for a crash.

gdb_test "p instance.array_variable + 0" \
  " = \\(long int \\*\\) 0x\[0-9a-f\]*"
