# Copyright 2014-2020 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/>.
load_lib dwarf.exp

# This test can only be run on targets which support DWARF-2 and use gas.
if {![dwarf2_support]} {
    return 0
}

standard_testfile dynarr-ptr.c dynarr-ptr-dw.S

# We need to know the size of integer and address types in order
# to write some of the debugging info we'd like to generate.
#
# For that, we ask GDB by debugging our dynarr-ptr.c program.
# Any program would do, but since we already have dynarr-ptr.c
# specifically for this testcase, might as well use that.

if { [prepare_for_testing "failed to prepare" ${testfile} ${srcfile}] } {
    return -1
}

# Make some DWARF for the test.
set asm_file [standard_output_file $srcfile2]
Dwarf::assemble $asm_file {
    cu {} {
 	DW_TAG_compile_unit {
                {DW_AT_language @DW_LANG_Ada95}
                {DW_AT_name     foo.adb}
                {DW_AT_comp_dir /tmp}
        } {
            declare_labels integer_label array_label array_ptr_label \
                array_typedef_label
            set ptr_size [get_sizeof "void *" 96]
	    set int_size [get_sizeof "int" 4]

            integer_label: DW_TAG_base_type {
                {DW_AT_byte_size $int_size DW_FORM_sdata}
                {DW_AT_encoding  @DW_ATE_signed}
                {DW_AT_name      integer}
            }

	    array_label: DW_TAG_array_type {
		{DW_AT_name foo__array_type}
		{DW_AT_type :$integer_label}
                {external 1 flag}
	    } {
		DW_TAG_subrange_type {
		    {DW_AT_type        :$integer_label}
                    {DW_AT_lower_bound {
                        DW_OP_push_object_address
                        DW_OP_const1u [expr {2 * $int_size}]
                        DW_OP_minus
                        DW_OP_deref_size $int_size
                    } SPECIAL_expr}
                    {DW_AT_upper_bound {
                        DW_OP_push_object_address
			DW_OP_const1u $int_size
                        DW_OP_minus
                        DW_OP_deref_size $int_size
                    } SPECIAL_expr}
		}
	    }
            array_ptr_label: DW_TAG_pointer_type {
                {DW_AT_byte_size $ptr_size DW_FORM_data1}
                {DW_AT_type :$array_label}
            }
            array_typedef_label: DW_TAG_typedef {
                {DW_AT_name "foo__array_ptr"}
                {DW_AT_type :$array_ptr_label}
            }
            DW_TAG_variable {
                {DW_AT_name foo__three_ptr}
                {DW_AT_type :$array_ptr_label}
                {DW_AT_location {
                    DW_OP_addr [gdb_target_symbol table_1_ptr]
                } SPECIAL_expr}
                {external 1 flag}
            }
            DW_TAG_variable {
                {DW_AT_name foo__three_ptr_tdef}
                {DW_AT_type :$array_typedef_label}
                {DW_AT_location {
                    DW_OP_addr [gdb_target_symbol table_1_ptr]
                } SPECIAL_expr}
                {external 1 flag}
            }
            DW_TAG_variable {
                {DW_AT_name foo__five_ptr}
                {DW_AT_type :$array_ptr_label}
                {DW_AT_location {
                    DW_OP_addr [gdb_target_symbol table_2_ptr]
                } SPECIAL_expr}
                {external 1 flag}
            }
            DW_TAG_variable {
                {DW_AT_name foo__five_ptr_tdef}
                {DW_AT_type :$array_typedef_label}
                {DW_AT_location {
                    DW_OP_addr [gdb_target_symbol table_2_ptr]
                } SPECIAL_expr}
                {external 1 flag}
            }
	}
    }
}

# Now that we've generated the DWARF debugging info, rebuild our
# program using our debug info instead of the info generated by
# the compiler.

if { [prepare_for_testing "failed to prepare" ${testfile} \
	  [list $srcfile $asm_file] {nodebug}] } {
    return -1
}

if ![runto_main] {
    return -1
}

gdb_test_no_output "set language ada"

# foo.three_ptr.all

gdb_test "print foo.three_ptr.all" \
         " = \\(1, 2, 3\\)"

gdb_test "print foo.three_ptr.all(1)" \
         " = 1"

gdb_test "print foo.three_ptr.all(2)" \
         " = 2"

gdb_test "print foo.three_ptr.all(3)" \
         " = 3"

gdb_test "print foo.three_ptr.all'first" \
         " = 1"

gdb_test "print foo.three_ptr.all'last" \
         " = 3"

gdb_test "print foo.three_ptr.all'length" \
         " = 3"

gdb_test "ptype foo.three_ptr.all" \
         " = array \\(<>\\) of integer"

# foo.three_ptr

gdb_test "print foo.three_ptr(1)" \
         " = 1"

gdb_test "print foo.three_ptr(2)" \
         " = 2"

gdb_test "print foo.three_ptr(3)" \
         " = 3"

gdb_test "print foo.three_ptr'first" \
         " = 1"

gdb_test "print foo.three_ptr'last" \
         " = 3"

gdb_test "print foo.three_ptr'length" \
         " = 3"

gdb_test "ptype foo.three_ptr" \
         " = access array \\(<>\\) of integer"

# foo.three_ptr_tdef.all

gdb_test "print foo.three_ptr_tdef.all" \
         " = \\(1, 2, 3\\)"

gdb_test "print foo.three_ptr_tdef.all(1)" \
         " = 1"

gdb_test "print foo.three_ptr_tdef.all(2)" \
         " = 2"

gdb_test "print foo.three_ptr_tdef.all(3)" \
         " = 3"

gdb_test "print foo.three_ptr_tdef.all'first" \
         " = 1"

gdb_test "print foo.three_ptr_tdef.all'last" \
         " = 3"

gdb_test "print foo.three_ptr_tdef.all'length" \
         " = 3"

gdb_test "ptype foo.three_ptr_tdef.all" \
         " = array \\(<>\\) of integer"

# foo.three_ptr_tdef

gdb_test "print foo.three_ptr_tdef(1)" \
         " = 1"

gdb_test "print foo.three_ptr_tdef(2)" \
         " = 2"

gdb_test "print foo.three_ptr_tdef(3)" \
         " = 3"

gdb_test "print foo.three_ptr_tdef'first" \
         " = 1"

gdb_test "print foo.three_ptr_tdef'last" \
         " = 3"

gdb_test "print foo.three_ptr_tdef'length" \
         " = 3"

gdb_test "ptype foo.three_ptr_tdef" \
         " = access array \\(<>\\) of integer"

# foo.five_ptr.all

gdb_test "print foo.five_ptr.all" \
         " = \\(2 => 5, 8, 13, 21, 34\\)"

gdb_test "print foo.five_ptr.all(2)" \
         " = 5"

gdb_test "print foo.five_ptr.all(3)" \
         " = 8"

gdb_test "print foo.five_ptr.all(4)" \
         " = 13"

gdb_test "print foo.five_ptr.all(5)" \
         " = 21"

gdb_test "print foo.five_ptr.all(6)" \
         " = 34"

gdb_test "print foo.five_ptr.all'first" \
         " = 2"

gdb_test "print foo.five_ptr.all'last" \
         " = 6"

gdb_test "print foo.five_ptr.all'length" \
         " = 5"

gdb_test "ptype foo.five_ptr.all" \
         " = array \\(<>\\) of integer"

# foo.five_ptr

gdb_test "print foo.five_ptr(2)" \
         " = 5"

gdb_test "print foo.five_ptr(3)" \
         " = 8"

gdb_test "print foo.five_ptr(4)" \
         " = 13"

gdb_test "print foo.five_ptr(5)" \
         " = 21"

gdb_test "print foo.five_ptr(6)" \
         " = 34"

gdb_test "print foo.five_ptr'first" \
         " = 2"

gdb_test "print foo.five_ptr'last" \
         " = 6"

gdb_test "print foo.five_ptr'length" \
         " = 5"

gdb_test "ptype foo.five_ptr" \
         " = access array \\(<>\\) of integer"

# foo.five_ptr_tdef.all

gdb_test "print foo.five_ptr_tdef.all" \
         " = \\(2 => 5, 8, 13, 21, 34\\)"

gdb_test "print foo.five_ptr_tdef.all(2)" \
         " = 5"

gdb_test "print foo.five_ptr_tdef.all(3)" \
         " = 8"

gdb_test "print foo.five_ptr_tdef.all(4)" \
         " = 13"

gdb_test "print foo.five_ptr_tdef.all(5)" \
         " = 21"

gdb_test "print foo.five_ptr_tdef.all(6)" \
         " = 34"

gdb_test "print foo.five_ptr_tdef.all'first" \
         " = 2"

gdb_test "print foo.five_ptr_tdef.all'last" \
         " = 6"

gdb_test "print foo.five_ptr_tdef.all'length" \
         " = 5"

gdb_test "ptype foo.five_ptr_tdef.all" \
         " = array \\(<>\\) of integer"

# foo.five_ptr_tdef

gdb_test "print foo.five_ptr_tdef(2)" \
         " = 5"

gdb_test "print foo.five_ptr_tdef(3)" \
         " = 8"

gdb_test "print foo.five_ptr_tdef(4)" \
         " = 13"

gdb_test "print foo.five_ptr_tdef(5)" \
         " = 21"

gdb_test "print foo.five_ptr_tdef(6)" \
         " = 34"

gdb_test "print foo.five_ptr_tdef'first" \
         " = 2"

gdb_test "print foo.five_ptr_tdef'last" \
         " = 6"

gdb_test "print foo.five_ptr_tdef'length" \
         " = 5"

gdb_test "ptype foo.five_ptr_tdef" \
         " = access array \\(<>\\) of integer"
