# 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/>.

# Test that things still (sort of) work when compiled without -g.


set testfile nodebug
set srcfile $srcdir/$subdir/$testfile.c
set binfile $objdir/$subdir/$testfile

if [get_compiler_info] {
    return -1
}

if [test_compiler_info "xlc-*"] {
    # By default, IBM'x xlc compiler doesn't add static variables into the symtab.
    # Use "-qstatsym" to do so. 
    set exec_opts additional_flags=-qstatsym
} else {
    set exec_opts ""
}

if  { [gdb_compile $srcfile $binfile executable $exec_opts] != "" } {
    untested "Couldn't compile $srcfile."
    return -1
}

# Start with a fresh gdb.

gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load $binfile

if [runto inner] then {
    
    # Expect to find global/local symbols in each of text/data/bss.
    
    # The exact format for some of this output is not necessarily
    # ideal, particularly interpreting "p top" requires a fair bit of
    # savvy about gdb's workings and the meaning of the "{}"
    # construct.  So the details maybe could be tweaked.  But the
    # basic purpose should be maintained, which is (a) users should be
    # able to interact with these variables with some care (they have
    # to know how to interpret them according to their real type,
    # since gdb doesn't know the type), but (b) users should be able
    # to detect that gdb does not know the type, rather than just
    # being told they are ints or functions returning int like old
    # versions of gdb used to do.
    
    # On alpha (and other ecoff systems) the native compilers put
    # out debugging info for non-aggregate return values of functions
    # even without -g, which should be accepted.
    # Irix5, even though it is ELF, counts as "ecoff" because it
    # encapsulates ecoff debugging info in a .mdebug section.
    # Irix6 gcc emits no debug info at all for static functions and
    # variables, so all tests involving statics fail.
    
    if {![test_compiler_info "gcc-*"]} then { setup_xfail "mips-sgi-irix5*" "mips-sgi-irix6*" }
    gdb_test "p top" \
	"\{(<(text variable|function), no debug info>|short \\(int\\)|short \\(\\))\} \[0-9a-fx]* <\\.?top(\\(int\\)|)>"
    if {![test_compiler_info "gcc-*"]} then { setup_xfail "mips-sgi-irix5*" "mips-sgi-irix6*" }
    gdb_test "whatis top" \
	"(<(text variable|function), no debug info>|short \\(int\\)|short \\(\\))"
    if {![test_compiler_info "gcc-*"]} then { setup_xfail "mips-sgi-irix6*" }
    gdb_test "ptype top" "(short|int) \\((|void|int|<non-float parameter>|<non-float parameter>, <non-float parameter>)\\)"
    
    if {![test_compiler_info "gcc-*"]} then { setup_xfail "mips-sgi-irix5*" }
    setup_xfail "mips-sgi-irix6*"
    gdb_test "p middle" \
	"\{(<(text variable|function), no debug info>|short \\(int\\)|short \\(\\))\} \[0-9a-fx]* <\\.?middle(\\(int\\)|)>"
    if {![test_compiler_info "gcc-*"]} then { setup_xfail "mips-sgi-irix5*" }
    setup_xfail "mips-sgi-irix6*"
    gdb_test "whatis middle" \
	"(<(text variable|function), no debug info>|short \\(int\\)|short \\(\\))"
    setup_xfail "mips-sgi-irix6*"
    gdb_test "ptype middle" "(short|int) \\((|void|int|<non-float parameter>|<non-float parameter>, <non-float parameter>)\\)"
    
    gdb_test "p dataglobal" "= 3"
    gdb_test "whatis dataglobal" \
	"<(data variable|variable), no debug info>|int"
    gdb_test "ptype dataglobal" "<(data variable|variable), no debug info>|int"
    
    # The only symbol xcoff puts out for statics is for the TOC entry.
    # Possible, but hairy, for gdb to deal.  Right now it doesn't, it
    # doesn't know the variables exist at all.
    setup_xfail "rs6000*-*-aix*"
    setup_xfail "powerpc*-*-aix*"
    if [test_compiler_info "gcc-*"] {
        setup_xfail "mips-sgi-irix6*"
    } else {
        setup_xfail "hppa*-*-hpux*"
    }

    gdb_test "p datalocal" "= 4"

    setup_xfail "rs6000*-*-aix*"
    setup_xfail "powerpc*-*-aix*"
    if [test_compiler_info "gcc-*"] {
        setup_xfail "mips-sgi-irix6*"
    } else {
        setup_xfail "hppa*-*-hpux*"
    }

    gdb_test "whatis datalocal" "<(data variable|variable), no debug info>"

    setup_xfail "rs6000*-*-aix*"
    setup_xfail "powerpc*-*-aix*"
    if [test_compiler_info "gcc-*"] {
        setup_xfail "mips-sgi-irix6*"
    } else {
        setup_xfail "hppa*-*-hpux*"
    }

    gdb_test "ptype datalocal" "<(data variable|variable), no debug info>"
    gdb_test "p bssglobal" "= 0"
    gdb_test "whatis bssglobal" "<(data variable|variable), no debug info>|int"
    gdb_test "ptype bssglobal" "<(data variable|variable), no debug info>|int"
    
    setup_xfail "rs6000*-*-aix*"
    setup_xfail "powerpc*-*-aix*"
    if [test_compiler_info "gcc-*"] {
        setup_xfail "mips-sgi-irix6*"
    } else {
        setup_xfail "hppa*-*-hpux*"
    }

    gdb_test "p bsslocal" "= 0"

    setup_xfail "rs6000*-*-aix*"
    setup_xfail "powerpc*-*-aix*"
    if [test_compiler_info "gcc-*"] {
        setup_xfail "mips-sgi-irix6*"
    } else {
        setup_xfail "hppa*-*-hpux*"
    }

    gdb_test "whatis bsslocal" "<(data variable|variable), no debug info>"

    setup_xfail "rs6000*-*-aix*"
    setup_xfail "powerpc*-*-aix*"
    if [test_compiler_info "gcc-*"] {
        setup_xfail "mips-sgi-irix6*"
    } else {
        setup_xfail "hppa*-*-hpux*"
    }
    gdb_test "ptype bsslocal" "<(data variable|variable), no debug info>"
    
    if [test_compiler_info "gcc-*"] {
        setup_xfail "mips-sgi-irix6*" 
    }

    gdb_test "backtrace 10" "#0.*inner.*#1.*middle.*#2.*top.*#3.*main.*" \
	"backtrace from inner in nodebug.exp"
    # Or if that doesn't work, at least hope for the external symbols
    # Commented out because if we aren't going to xfail the above test
    # ever, why bother with a weaker test?
    #gdb_test "backtrace 10" "#0.*inner.*#1.*#2.*top.*#3.*main.*" \
	#    "backtrace from inner in nodebug.exp for externals"
    
    # This test is not as obscure as it might look.  `p getenv ("TERM")'
    # is a real-world example, at least on many systems.
    if { ! [test_compiler_info "gcc-*"]} {
        setup_xfail "mips-sgi-irix6*" 
    }
    if [target_info exists gdb,cannot_call_functions] {
	setup_xfail "*-*-*" 2416
	fail "p/c array_index(\"abcdef\",2)"
    } else {
	#
	# On HP-UX, a support function (__d_plt_call) necessary to
	# implement an inferior call is normally only available when
	# the inferior was compiled with -g.  Thus, we expect this
	# testpoint to fail on HP-UX.
	if { [istarget "hppa*-hpux*"] } {
	    gdb_test_multiple "p/c array_index(\"abcdef\",2)" \
		"p/c array_index(\"abcdef\",2)" {
		    -re ".*Suggest linking executable with -g.*$gdb_prompt $" {
			pass "p/c array_index(\"abcdef\",2)" 
		    }
		    -re ".*Cannot find __wdb_call_dummy in.*end.o.*" {
			pass "p/c array_index(\"abcdef\",2)" 
		    }
		-re ".*99 'c'.*" {
		    pass "p/c array_index(\"abcdef\",2)"
		}
	    }
	} else {
	    # We need to up this because this can be really slow on some boards.
	    # (malloc() is called as part of the test).
	    set prev_timeout $timeout
	    set timeout 60
	    gdb_test {p/c array_index("abcdef",2)} " = 99 'c'"
	    set timeout $prev_timeout
	}
    }
    
    # Now, try that we can give names of file-local symbols which happen
    # to be unique, and have it still work
    if [test_compiler_info "gcc-*"] {
        setup_xfail "mips-sgi-irix6*"
    }
    if [runto middle] then {
	gdb_test "backtrace 10" "#0.*middle.*#1.*top.*#2.*main.*" \
	    "backtrace from middle in nodebug.exp"
    }
}
