Index: gdb/testsuite/gdb.arch/i386-sse-stack-align.exp |
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.exp b/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp |
similarity index 50% |
copy from gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.exp |
copy to gdb/testsuite/gdb.arch/i386-sse-stack-align.exp |
index 72a075c86e4d3125f2adfc6f9e2edde4e4623f1a..5a04c7484dbb7b7eb25fe79c079ffafc99530930 100644 |
--- a/gdb/testsuite/gdb.dwarf2/dw2-simple-locdesc.exp |
+++ b/gdb/testsuite/gdb.arch/i386-sse-stack-align.exp |
@@ -1,4 +1,4 @@ |
-# Copyright 2011-2012 Free Software Foundation, Inc. |
+# Copyright 2012 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 |
@@ -12,36 +12,49 @@ |
# |
# 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 |
+if ![is_x86_like_target] { |
+ verbose "Skipping x86 SSE stack alignment tests." |
+ return |
} |
-set testfile "dw2-simple-locdesc" |
+set testfile "i386-sse-stack-align" |
set srcfile ${testfile}.S |
-set executable ${testfile}.x |
+set csrcfile ${testfile}.c |
+set executable ${testfile} |
set binfile ${objdir}/${subdir}/${executable} |
+set opts {} |
-if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" object {}] != "" } { |
+if [info exists COMPILE] { |
+ set srcfile ${csrcfile} |
+ lappend opts debug optimize=-O2 additional_flags=-msse |
+} |
+ |
+if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable $opts] != "" } { |
+ unsupported "cannot compile ${srcfile}" |
return -1 |
} |
clean_restart $executable |
-# Re: [patch 2/2] Fix decode_locdesc for gcc-4.7.x optimized DWARF |
-# http://sourceware.org/ml/gdb-patches/2011-07/msg00766.html |
-set test "p &s.shl" |
-gdb_test_multiple $test $test { |
- -re " = \\(int \\*\\) 0x1000000\r\n$gdb_prompt $" { |
- pass $test |
+if ![runto_main] then { |
+ return -1 |
+} |
+ |
+set args "" |
+foreach i {0 1 2 3 4} { |
+ set test "print g$i ($args)" |
+ gdb_test_multiple $test $test { |
+ -re " = 2\r\n$gdb_prompt $" { |
+ pass $test |
+ } |
+ -re "Program received signal SIGSEGV, Segmentation fault\\..*\r\n$gdb_prompt $" { |
+ fail $test |
+ } |
} |
- -re " = \\(int \\*\\) 0x14\r\n$gdb_prompt $" { |
- kfail "symtab/13307" $test |
+ |
+ if {$args != ""} { |
+ set args "$args, " |
} |
+ set args "$args[expr $i + 1]" |
} |
- |
-# Re: RFC: fix DW_AT_data_member_location buglet |
-# http://sourceware.org/ml/gdb-patches/2011-05/msg00291.html |
-gdb_test "p &s.data4" { = \(int \*\) 0x10000} |