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

standard_testfile .c

if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug nowarnings}] != "" } {
     untested "failed to compile"
     return -1
    }

clean_restart ${binfile}


#
# set it up at a breakpoint so we can play with the variable values
#

if {![runto_main]} {
    return
}

# These are used as expected result values.
set false 0
set true 1

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"

with_test_prefix "post-increment" {
    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"
}


with_test_prefix "pre-decrement" {
    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 \\*"

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 \\*"

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

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

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 \\*"

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

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

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

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

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

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

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

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

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

# Regression test for a crash.

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