# Copyright 1998-2022 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
    }

if [get_compiler_info] {
    return -1
}

clean_restart ${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"

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