# Copyright 1998-2013 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
# 

#
# test running programs
#

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] {
    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_no_output "set variable v_int_pointer=&v_int_array\[0\]" \
    "set pointer to beginning of array"
gdb_test_no_output "set variable v_int_pointer2=&v_int_array\[1\]" \
    "set pointer to end of array"


gdb_test "print *v_int_pointer" " = 6" "print object pointed to"

gdb_test "print *v_int_pointer2" " = 18" "print object pointed to \#2"

gdb_test "print v_int_pointer == v_int_pointer2" " = $false" \
    "pointer1==pointer2"

gdb_test "print v_int_pointer != v_int_pointer2" " = $true" \
    "pointer1!=pointer2"

gdb_test "print v_int_pointer <= v_int_pointer2" " = $true" \
    "pointer1<=pointer2"

gdb_test "print v_int_pointer >= v_int_pointer2" " = $false" \
    "pointer1>=pointer2"

gdb_test "print v_int_pointer < v_int_pointer2" " = $true" \
    "pointer1<pointer2"

gdb_test "print v_int_pointer > v_int_pointer2" " = $false" \
    "pointer1>pointer2"

gdb_test_no_output "set variable y = *v_int_pointer++" \
    "set y = *v_int_pointer++"
gdb_test "print y" " = 6" "pointer assignment"
gdb_test "print *v_int_pointer" " = 18" "and post-increment"



gdb_test_no_output "set variable y = *--v_int_pointer2" \
    "set y = *--v_int_pointer2"
gdb_test "print y" " = 6" "pointer assignment"
gdb_test "print *v_int_pointer2" " = 6" "and pre-decrement"



gdb_test_no_output "set variable y =v_int_pointer-v_int_pointer2" \
    "set y =v_int_pointer-v_int_pointer2"
gdb_test "print y" " = 1" "pointer1-pointer2"


gdb_test_no_output "set variable v_int_pointer=v_int_array" \
    "set v_int_pointer=v_int_array"
gdb_test "print *v_int_pointer" " = 6" \
    "print array element through pointer"

gdb_test "print *(v_int_pointer+1)" " = 18" \
    "print array element through pointer \#2"


# test print elements of array through pointers

gdb_test "print (*rptr)\[0\]" " = 0" \
    "print array element through pointer \#3"

gdb_test "print (*rptr)\[1\]" " = 1" \
    "print array element through pointer \#4"

gdb_test "print (*rptr)\[2\]" " = 2" \
    "print array element through pointer \#5"

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

gdb_test "print (*rptr)\[0\]" " = 3" \
    "print array element through pointer \#6"

gdb_test "print (*rptr)\[1\]" " = 4" \
    "print array element through pointer \#7"

gdb_test "print (*rptr)\[2\]" " = 5" \
    "print array element through pointer \#8"

gdb_test "print *( *(matrix+1) +2)" " = 5" \
    "print array element w/ pointer arithmetic"

gdb_test "print **ptr_to_ptr_to_float" " = 100" \
    "print through ptr to ptr"

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

gdb_test "break marker1" ".*" ""
gdb_test "cont" "Break.* marker1 \\(\\) at .*:$decimal.*" \
    continue to marker1"
gdb_test "up" "more_code.*" "up from marker1"

gdb_test "print *pUC" " = 21 \'.025\'.*" "print value of *pUC"

gdb_test "ptype pUC" "type = unsigned char \\*" "ptype pUC"

gdb_test "print *pS" " = -14" "print value of *pS"

gdb_test_multiple "ptype pS" "ptype pS" {
    -re "type = short \\*.*$gdb_prompt $"  { pass "ptype pS" }
    -re "type = short int \\*.*$gdb_prompt $"  { pass "ptype pS" }
}    

gdb_test "print *pUS" " = 7" "print value of *pUS"

gdb_test_multiple "ptype pUS" "ptype pUS" {
    -re "type = unsigned short \\*.*$gdb_prompt $"  { pass "ptype pUS" }
    -re "type = short unsigned int \\*.*$gdb_prompt $"  { pass "ptype pUS" }
}

gdb_test "print *pI" " = 102" "print value of *pI"

gdb_test "ptype pI" "type = int \\*" "ptype pI"

gdb_test "print *pUI" " = 1002" "print value of *pUI"

gdb_test "ptype pUI" "type = unsigned int \\*" "ptype pUI"

gdb_test "print *pL" " = -234" "print value of *pL"

gdb_test_multiple "ptype pL" "ptype pL" {
    -re "type = long \\*.*$gdb_prompt $" { pass "ptype pL" }
    -re "type = long int \\*.*$gdb_prompt $" { pass "ptype pL" }
}

gdb_test "print *pUL" " = 234" "print value of *pUL"

gdb_test_multiple "ptype pUL" "ptype pUL" {
    -re "type = unsigned long \\*.*$gdb_prompt $"  { pass "ptype pUL" }
    -re "type = long unsigned int \\*.*$gdb_prompt $"  { pass "ptype pUL" }
}

gdb_test "print *pF" " = 1.2\[0-9\]*e\\+0?10" "print value of *pF"

gdb_test "ptype pF" "type = float \\*" "ptype pF"

gdb_test "print *pD" " = -1.2\[0-9\]*e\\-0?37" "print value of *pD"

gdb_test "ptype pD" "type = double \\*" "ptype pD"

gdb_test "print ******ppppppC" " = 65 \'A\'" \
    "print value of ******ppppppC"

gdb_test "ptype pC" "type = char \\*" "ptype pC"

gdb_test "ptype ppC" "type = char \\*\\*" "ptype ppC"

gdb_test "ptype pppC" "type = char \\*\\*\\*" "ptype pppC"

gdb_test "ptype ppppC" "type = char \\*\\*\\*\\*" "ptype ppppC"

gdb_test "ptype pppppC" "type = char \\*\\*\\*\\*\\*" "ptype pppppC"

gdb_test "ptype ppppppC" "type = char \\*\\*\\*\\*\\*\\*" "ptype ppppppC"

# Regression test for a crash.

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