# Copyright (C) 1998 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 2 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, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  

# Please email any bugs, comments, and/or additions to this file to:
# bug-gdb@prep.ai.mit.edu


# This file is part of the gdb testsuite
# file written by Elena Zannoni (ezannoni@cygnus.com)

#
# tests for expressions with struct/array elements and mixed operator types
# with elementary types
# 

if $tracelevel then {
        strace $tracelevel
        }

#
# test running programs
#
set prms_id 0
set bug_id 0

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

if  { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug additional_flags=-w}] != "" } {
    gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail."
}

if [get_compiler_info ${binfile}] {
    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
}

send_gdb "break marker1\n" ; gdb_expect -re ".*$gdb_prompt $"

    send_gdb "cont\n"
    gdb_expect {
        -re "Break.* marker1 \\(\\) at .*:$decimal.*$gdb_prompt $" {
            send_gdb "up\n"
            gdb_expect {
                -re ".*$gdb_prompt $" {}
                timeout { fail "up from marker1" }
            }
        }
        -re "$gdb_prompt $" { fail "continue to marker1"  }
        timeout { fail "(timeout) continue to marker1"  }
    }

global hex

send_gdb "print &ibig.i\[0\]\n"
gdb_expect {
    -re ".\[0-9\]* = \\(int \\*\\) $hex.*$gdb_prompt $" {
        pass "print value of &ibig.i\[0\]"
      }
    -re ".*$gdb_prompt $" { fail "print value of &ibig.i\[0\]" }
    timeout           { fail "(timeout) print value of &ibig.i\[0\]" }
  }

send_gdb "print &cbig.c\[0\]\n"
gdb_expect {
    -re ".\[0-9\]* = $hex \"\".*$gdb_prompt $" {
        pass "print value of &cbig.c\[0\]"
      }
    -re ".\[0-9\]* = $hex \"*\".*$gdb_prompt $" {
        pass "print value of &cbig.c\[0\]"
      }
    -re ".*$gdb_prompt $" { fail "print value of &cbig.c\[0\]" }
    timeout           { fail "(timeout) print value of &cbig.c\[0\]" }
  }

send_gdb "print &fbig.f\[0\]\n"
gdb_expect {
    -re ".\[0-9\]* = \\(float \\*\\) $hex.*$gdb_prompt $" {
        pass "print value of &fbig.f\[0\]"
      }
    -re ".*$gdb_prompt $" { fail "print value of &fbig.f\[0\]" }
    timeout           { fail "(timeout) print value of &fbig.f\[0\]" }
  }

send_gdb "print &dbig.d\[0\]\n"
gdb_expect {
    -re ".\[0-9\]* = \\(double \\*\\) $hex.*$gdb_prompt $" {
        pass "print value of &dbig.d\[0\]"
      }
    -re ".*$gdb_prompt $" { fail "print value of &dbig.d\[0\]" }
    timeout           { fail "(timeout) print value of &dbig.d\[0\]" }
  }

send_gdb "print &sbig.s\[0\]\n"
gdb_expect {
    -re ".\[0-9\]* = \\(short \\*\\) $hex.*$gdb_prompt $" {
        pass "print value of &sbig.s\[0\]"
    }
    -re ".\[0-9\]* = \\(short int \\*\\) $hex.*$gdb_prompt $" {
        pass "print value of &sbig.s\[0\]"
    }
    -re ".*$gdb_prompt $" { fail "print value of &sbig.s\[0\]" }
    timeout           { fail "(timeout) print value of &sbig.s\[0\]" }
  }

send_gdb "print &lbig.l\[0\]\n"
gdb_expect {
    -re ".\[0-9\]* = \\(long \\*\\) $hex.*$gdb_prompt $" {
        pass "print value of &lbig.l\[0\]"
    }
    -re ".\[0-9\]* = \\(long int \\*\\) $hex.*$gdb_prompt $" {
        pass "print value of &lbig.l\[0\]"
    }
    -re ".*$gdb_prompt $" { fail "print value of &lbig.l\[0\]" }
    timeout           { fail "(timeout) print value of &lbig.l\[0\]" }
  }


send_gdb "print ibig.i\[100\] | 1\n"
gdb_expect {
    -re ".\[0-9\]* = 5.*$gdb_prompt $" {
        pass "print value of ibig.i\[100\] | 1"
      }
    -re ".*$gdb_prompt $" { fail "print value of ibig.i\[100\] | 1" }
    timeout           { fail "(timeout) print value of ibig.i\[100\] | 1" }
  }


send_gdb "print sbig.s\[90\] & 127\n"
gdb_expect {
    -re ".\[0-9\]* = 127.*$gdb_prompt $" {
        pass "print value of sbig.s\[90\] & 127"
      }
    -re ".*$gdb_prompt $" { fail "print value of sbig.s\[90\] & 127" }
    timeout           { fail "(timeout) print value of sbig.s\[90\] & 127" }
  }

send_gdb "print !ibig.i\[100\]\n"
gdb_expect {
    -re ".\[0-9\]* = $false.*$gdb_prompt $" {
        pass "print value of !ibig.i\[100\]"
      }
    -re ".*$gdb_prompt $" { fail "print value of !ibig.i\[100\]" }
    timeout           { fail "(timeout) print value of !ibig.i\[100\]" }
  }

send_gdb "print !sbig.s\[90\]\n"
gdb_expect {
    -re ".\[0-9\]* = $false.*$gdb_prompt $" {
        pass "print value of !sbig.s\[90\]"
      }
    -re ".*$gdb_prompt $" { fail "print value of !sbig.s\[90\]" }
    timeout           { fail "(timeout) print value of !sbig.s\[90\]" }
  }


send_gdb "print !fbig.f\[100\]\n"
gdb_expect {
    -re ".\[0-9\]* = $false.*$gdb_prompt $" {
        pass "print value of !ibig.i\[100\]"
      }
    -re ".*$gdb_prompt $" { fail "print value of !ibig.i\[100\]" }
    timeout           { fail "(timeout) print value of !ibig.i\[100\]" }
  }

send_gdb "print !dbig.d\[202\]\n"
gdb_expect {
    -re ".\[0-9\]* = $false.*$gdb_prompt $" {
        pass "print value of !ibig.i\[100\]"
      }
    -re ".*$gdb_prompt $" { fail "print value of !ibig.i\[100\]" }
    timeout           { fail "(timeout) print value of !ibig.i\[100\]" }
  }



send_gdb "print sbig.s\[90\] * 10\n"
gdb_expect {
    -re ".\[0-9\]* = 2550.*$gdb_prompt $" {
        pass "print value of !sbig.s\[90\] * 10"
      }
    -re ".*$gdb_prompt $" { fail "print value of !sbig.s\[90\] * 10" }
    timeout           { fail "(timeout) print value of !sbig.s\[90\] * 10" }
  }

send_gdb "print ibig.i\[100\] * sbig.s\[90\]\n"
gdb_expect {
    -re ".\[0-9\]* = 1275.*$gdb_prompt $" {
        pass "print value of ibig.i\[100\] * sbig.s\[90\]"
      }
    -re ".*$gdb_prompt $" { fail "print value of ibig.i\[100\] * sbig.s\[90\]" }
    timeout           { fail "(timeout) print value of ibig.i\[100\] * sbig.s\[90\]" }
  }

send_gdb "print fbig.f\[100\] * dbig.d\[202\]\n"
gdb_expect {
    -re ".\[0-9\]* = 119.99\[0-9\]*.*$gdb_prompt $" {
        pass "print value of fbig.f\[100\] * dbig.d\[202\]"
      }
    -re ".*$gdb_prompt $" { fail "print value of fbig.f\[100\] * dbig.d\[202\]" }
    timeout           { fail "(timeout) print value of fbig.f\[100\] * dbig.d\[202\]" }
  }

send_gdb "print !(sbig.s\[90\] * 2)\n"
gdb_expect {
    -re ".\[0-9\]* = $false.*$gdb_prompt $" {
        pass "print value of !(sbig.s\[90\] * 2)"
      }
    -re ".*$gdb_prompt $" { fail "print value of !(sbig.s\[90\] * 2)" }
    timeout           { fail "(timeout) print value of !(sbig.s\[90\] * 2)" }
  }


send_gdb "print sizeof(sbig)\n"
gdb_expect {
    -re ".\[0-9\]* = 800.*$gdb_prompt $" {
        pass "print value of sizeof(sbig)"
      }
    -re ".*$gdb_prompt $" { fail "print value of sizeof(sbig)" }
    timeout           { fail "(timeout) print value of sizeof(sbig)" }
  }


send_gdb "print sizeof(cbig)\n"
gdb_expect {
    -re ".\[0-9\]* = 100.*$gdb_prompt $" {
        pass "print value of sizeof(cbig)"
      }
    -re ".*$gdb_prompt $" { fail "print value of sizeof(cbig)" }
    timeout           { fail "(timeout) print value of sizeof(cbig)" }
  }


send_gdb "print sizeof(lbig)/sizeof(long)\n"
gdb_expect {
    -re ".\[0-9\]* = 900.*$gdb_prompt $" {
        pass "print value of sizeof(lbig)/sizeof(long)"
      }
    -re ".*$gdb_prompt $" { fail "print value of sizeof(lbig)/sizeof(long)" }
    timeout     { fail "(timeout) print value of sizeof(lbig)/sizeof(long)" }
  }

send_gdb "print ibig.i\[100\] << 2\n"
gdb_expect {
    -re ".\[0-9\]* = 20.*$gdb_prompt $" {
        pass "print value of ibig.i\[100\] << 2"
      }
    -re ".*$gdb_prompt $" { fail "print value of ibig.i\[100\] << 2" }
    timeout           { fail "(timeout) print value of ibig.i\[100\] << 2" }
  }

send_gdb "print sbig.s\[90\] >> 4\n"
gdb_expect {
    -re ".\[0-9\]* = 15.*$gdb_prompt $" {
        pass "print value of sbig.s\[90\] >> 4"
      }
    -re ".*$gdb_prompt $" { fail "print value of sbig.s\[90\] >> 4" }
    timeout           { fail "(timeout) print value of sbig.s\[90\] >> 4" }
  }

send_gdb "print lbig.l\[333\] >> 6\n"
gdb_expect {
    -re ".\[0-9\]* = 15624999.*$gdb_prompt $" {
        pass "print value of lbig.l\[333\] >> 6"
      }
    -re ".*$gdb_prompt $" { fail "print value of lbig.l\[333\] >> 6" }
    timeout           { fail "(timeout) print value of lbig.l\[333\] >> 6" }
  }
