# Copyright 1997-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/>.  */

# written by Elena Zannoni (elz@apollo.hp.com)
#
# This file is part of the gdb testsuite
#
# tests for const variables
#           const pointers to vars
#           pointers to const variables
#           const pointers to const vars
# with mixed types

#
# test running programs
#

set testfile "constvars"
set srcfile ${testfile}.c
set binfile ${objdir}/${subdir}/${testfile}

# Create and source the file that provides information about the compiler
# used to compile the test case.
if [get_compiler_info] {
    return -1;
}

if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable debug ] != "" } {
    untested constvars.exp
    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
}

get_debug_format

# Many tests xfail with gcc 2 -gstabs+.
# TODO: check out the hp side of this.

proc local_compiler_xfail_check { } {
    if { [test_compiler_info gcc-2-*] } then {
	if { ![test_debug_format "HP"] \
		&& ![test_debug_format "DWARF 2"] } then {
	    setup_xfail "*-*-*" 
	}
    }

    global hp_cc_compiler
    if { $hp_cc_compiler } {
	setup_xfail "hppa*-*-hpux*"
    }
}

# A few tests still xfail with gcc 3 -gstabs+ and gcc 4 -gstabs+.

proc local_compiler_xfail_check_2 { } {
    if { [test_compiler_info gcc-3-*] || [test_compiler_info gcc-4-*] } {
	if { [test_debug_format "stabs" ] } {
	    setup_xfail "*-*-*"
	}
    }
}

gdb_test "break marker1" "Breakpoint $decimal at .*" 

gdb_test_multiple "cont" "up from marker1" {
    -re "Break.* marker1 \\(\\) at .*:$decimal.*$gdb_prompt $" {
	pass "continue to marker1"
	gdb_test "up" " main .*" "up from marker1"
    }
    -re "Break.* marker1__.* \\(\\) at .*:$decimal.*$gdb_prompt $" {
	fail "continue to marker1 (demangling)"
	gdb_test "up" " main .*" "up from marker1"
    }
}

# test function parameters

local_compiler_xfail_check
local_compiler_xfail_check_2

gdb_test "ptype qux1" \
    "type = int \\(const char, const char, const char \\*, char \\* const\\).*"

# test vars and pointers

proc do_constvar_tests {} {
    gdb_test "print lave" " = 66 'B'"
    gdb_test "ptype lave" "type = char"
    gdb_test "print lavish" " = 10 '\\\\n'"
    gdb_test "ptype lavish" "type = unsigned char"
    gdb_test "print lax" " = 20"
    gdb_test "ptype lax" "type = short.*"
    gdb_test "print lecherous" " = 30"
    gdb_test "ptype lecherous" "type = (unsigned short|short unsigned)( int)?"
    gdb_test "print lechery" " = 40"
    gdb_test "ptype lechery" "type = long.*"
    gdb_test "print lectern" " = 50"
    gdb_test "ptype lectern" "type = (unsigned long|long unsigned)( int)?"
    gdb_test "print leeway" " = 60"
    gdb_test "ptype leeway" "type = float"
    gdb_test "print legacy" " = 70"
    gdb_test "ptype legacy" "type = double"
    gdb_test "print laconic" " = 65 'A'"
    local_compiler_xfail_check
    gdb_test "ptype laconic" "type = const char"
    gdb_test "print laggard" " = 1 '.001'"
    local_compiler_xfail_check
    gdb_test "ptype laggard" "type = const unsigned char"
    gdb_test "print lagoon" " = 2"
    local_compiler_xfail_check
    gdb_test "ptype lagoon" "type = const short( int)?"
    gdb_test "print laity" " = 3"
    local_compiler_xfail_check
    gdb_test "ptype laity" "type = const (unsigned short|short unsigned)( int)?"
    gdb_test "print lambent" " = 4"
    local_compiler_xfail_check
    gdb_test "ptype lambent" "type = const long( int)?"
    gdb_test "print laminated" " = 5"
    local_compiler_xfail_check
    gdb_test "ptype laminated" "type = const (unsigned long|long unsigned)( int)?"
    gdb_test "print lampoon" " = 6"
    local_compiler_xfail_check
    gdb_test "ptype lampoon" "type = const float"
    gdb_test "print languid" " = 7"
    local_compiler_xfail_check
    gdb_test "ptype languid" "type = const double"
    gdb_test "print *legend" " = 66 'B'"
    local_compiler_xfail_check
    gdb_test "ptype legend" "type = const char \\*"
    gdb_test "print *legerdemain" " = 10 '\\\\n'"
    local_compiler_xfail_check
    gdb_test "ptype legerdemain" "type = const unsigned char \\*"
    gdb_test "print *leniency" " = 20"
    local_compiler_xfail_check
    gdb_test "ptype leniency" "type = const short( int)? \\*"
    gdb_test "print *leonine" " = 30"
    local_compiler_xfail_check
    gdb_test "ptype leonine" "type = const (unsigned short|short unsigned)( int)? \\*"
    gdb_test "print *lesion" " = 40"
    local_compiler_xfail_check
    gdb_test "ptype lesion" "type = const long( int)? \\*"
    gdb_test "print *lethal" " = 50"
    local_compiler_xfail_check
    gdb_test "ptype lethal" "type = const (unsigned long|long unsigned)( int)? \\*"
    gdb_test "print *lethargic" " = 60"
    local_compiler_xfail_check
    gdb_test "ptype lethargic" "type = const float \\*"
    gdb_test "print *levity" " = 70"
    local_compiler_xfail_check
    gdb_test "ptype levity" "type = const double \\*"
    gdb_test "print *lewd" " = 65 'A'"
    local_compiler_xfail_check
    gdb_test "ptype lewd" "type = const char \\* const"
    gdb_test "print *lexicographer" " = 1 '.001'"
    local_compiler_xfail_check
    gdb_test "ptype lexicographer" "type = const unsigned char \\* const"
    gdb_test "print *lexicon" " = 2"
    local_compiler_xfail_check
    gdb_test "ptype lexicon" "type = const short( int)? \\* const"
    gdb_test "print *liaison" " = 3"
    local_compiler_xfail_check
    gdb_test "ptype liaison" "type = const (unsigned short|short unsigned)( int)? \\* const"
    gdb_test "print *libation" " = 4"
    local_compiler_xfail_check
    gdb_test "ptype libation" "type = const long( int)? \\* const"
    gdb_test "print *libelous" " = 5"
    local_compiler_xfail_check
    gdb_test "ptype libelous" "type = const (unsigned long|long unsigned)( int)? \\* const"
    gdb_test "print *libertine" " = 6"
    local_compiler_xfail_check
    gdb_test "ptype libertine" "type = const float \\* const"
    gdb_test "print *libidinous" " = 7"
    local_compiler_xfail_check
    gdb_test "ptype libidinous" "type = const double \\* const"
    gdb_test "print *languish" " = 65 'A'"
    local_compiler_xfail_check
    gdb_test "ptype languish" "type = const char \\*"
    gdb_test "print *languor" " = 1 '.001'"
    local_compiler_xfail_check
    gdb_test "ptype languor" "type = const unsigned char \\*"
    gdb_test "print *lank" " = 2"
    local_compiler_xfail_check
    gdb_test "ptype lank" "type = const short( int)? \\*"
    gdb_test "print *lapidary" " = 3"
    local_compiler_xfail_check
    gdb_test "ptype lapidary" "type = const (unsigned short|short unsigned)( int)? \\*"
    gdb_test "print *larceny" " = 4"
    local_compiler_xfail_check
    gdb_test "ptype larceny" "type = const long( int)? \\*"
    gdb_test "print *largess" " = 5"
    local_compiler_xfail_check
    gdb_test "ptype largess" "type = const (unsigned long|long unsigned)( int)? \\*"
    gdb_test "print *lascivious" " = 6"
    local_compiler_xfail_check

    gdb_test "ptype lascivious" "type = const float \\*"
    gdb_test "print *lassitude" " = 7"
    local_compiler_xfail_check
    gdb_test "ptype lassitude" "type = const double \\*"
    gdb_test "print *lamprey" " = 66 'B'"
    local_compiler_xfail_check
    gdb_test "ptype lamprey" "type = char \\* const"
    gdb_test "print *lariat" " = 10 '\\\\n'"
    local_compiler_xfail_check
    gdb_test "ptype lariat" "type = unsigned char \\* const"
    gdb_test "print *laudanum" " = 20"
    local_compiler_xfail_check
    gdb_test "ptype laudanum" "type = short( int)? \\* const"
    gdb_test "print *lecithin" " = 30"
    local_compiler_xfail_check
    gdb_test "ptype lecithin" "type = (unsigned short|short unsigned)( int)? \\* const"
    gdb_test "print *leviathan" " = 40"
    local_compiler_xfail_check
    gdb_test "ptype leviathan" "type = long( int)? \\* const"
    gdb_test "print *libretto" " = 50"
    local_compiler_xfail_check
    gdb_test "ptype libretto" "type = (unsigned long|long unsigned)( int)? \\* const"
    gdb_test "print *lissome" " = 60"
    local_compiler_xfail_check
    gdb_test "ptype lissome" "type = float \\* const"
    gdb_test "print *locust" " = 70"
    local_compiler_xfail_check
    gdb_test "ptype locust" "type = double \\* const"

    local_compiler_xfail_check
    gdb_test "ptype logical" "type = const char \\\[2\\\]"
    local_compiler_xfail_check
    gdb_test "ptype lugged" "type = const unsigned char \\\[2\\\]"
    local_compiler_xfail_check
    gdb_test "ptype luck" "type = const short( int)? \\\[2\\\]"
    local_compiler_xfail_check
    gdb_test "ptype lunar" "type = const (unsigned short|short unsigned)( int)? \\\[2\\\]"
    local_compiler_xfail_check
    gdb_test "ptype lumen" "type = const long( int)? \\\[2\\\]"
    local_compiler_xfail_check
    gdb_test "ptype lurk" "type = const (unsigned long|long unsigned)( int)? \\\[2\\\]"
    local_compiler_xfail_check
    gdb_test "ptype lush" "type = const float \\\[2\\\]"
    local_compiler_xfail_check
    gdb_test "ptype lynx" "type = const double \\\[2\\\]"

    local_compiler_xfail_check
    local_compiler_xfail_check_2
    gdb_test "ptype crass" "type = struct crass \{\[\r\n\]+\[\ \t\]+char \\* const ptr;\[\r\n\]+\}"
    local_compiler_xfail_check
    gdb_test "ptype crisp" "type = struct crisp \{\[\r\n\]+\[\ \t\]+char \\* const \\*ptr;\[\r\n\]+\}"
}

do_constvar_tests
