# Copyright 2014-2021 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 .c -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"
