OSDN Git Service

gdb/testsuite/
authorjkratoch <jkratoch>
Fri, 25 Feb 2011 17:28:06 +0000 (17:28 +0000)
committerjkratoch <jkratoch>
Fri, 25 Feb 2011 17:28:06 +0000 (17:28 +0000)
* gdb.dwarf2/dw2-ranges.S: Rename to ...
* gdb.dwarf2/dw2-ranges.c: ... here, convert it to C.
* gdb.dwarf2/dw2-ranges.exp: Skip the testcase on !$gcc_compiled.
Rename srcfile, srcfile2 and srcfile3, new asmfile, asmfile2 and
asmfile3.  Comment the STABS (#3) file compilation.  Compile
everything through assembler.  Provide KFAIL for symtab/12497.
* gdb.dwarf2/dw2-ranges2.S: Rename to ...
* gdb.dwarf2/dw2-ranges2.c: ... here, convert it to C.
* gdb.dwarf2/dw2-ranges3.S: Rename to ...
* gdb.dwarf2/dw2-ranges3.c: ... here, convert it to C.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.dwarf2/dw2-ranges.S [deleted file]
gdb/testsuite/gdb.dwarf2/dw2-ranges.c [moved from gdb/testsuite/gdb.dwarf2/dw2-ranges3.S with 70% similarity]
gdb/testsuite/gdb.dwarf2/dw2-ranges.exp
gdb/testsuite/gdb.dwarf2/dw2-ranges2.c [moved from gdb/testsuite/gdb.dwarf2/dw2-ranges2.S with 59% similarity]
gdb/testsuite/gdb.dwarf2/dw2-ranges3.c [new file with mode: 0644]

index 033aad8..deedcd9 100644 (file)
@@ -1,3 +1,16 @@
+2011-02-25  Jan Kratochvil  <jan.kratochvil@redhat.com>
+
+       * gdb.dwarf2/dw2-ranges.S: Rename to ...
+       * gdb.dwarf2/dw2-ranges.c: ... here, convert it to C.
+       * gdb.dwarf2/dw2-ranges.exp: Skip the testcase on !$gcc_compiled.
+       Rename srcfile, srcfile2 and srcfile3, new asmfile, asmfile2 and
+       asmfile3.  Comment the STABS (#3) file compilation.  Compile
+       everything through assembler.  Provide KFAIL for symtab/12497.
+       * gdb.dwarf2/dw2-ranges2.S: Rename to ...
+       * gdb.dwarf2/dw2-ranges2.c: ... here, convert it to C.
+       * gdb.dwarf2/dw2-ranges3.S: Rename to ...
+       * gdb.dwarf2/dw2-ranges3.c: ... here, convert it to C.
+
 2011-02-24  Michael Snyder  <msnyder@vmware.com>
 
        * gdb.base/break.exp: Remove debugging 'printf' accidentally
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges.S b/gdb/testsuite/gdb.dwarf2/dw2-ranges.S
deleted file mode 100644 (file)
index f87e289..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
-   Copyright 2007, 2008, 2009, 2010, 2011 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/>.
- */
-
-/* Despite the sections below will be adjacent the assembler has to produce
-   DW_AT_ranges as the linker could place both sections at arbitrary locations.
-   */
-
-       /* Such directive is required by GAS for builds without `-g'.  */
-       .file   1 "dw2-ranges.S"
-
-       /* Without this directive GAS will not emit DWARF2 unless we provide an
-          instruction to assemble.  We want to avoid any instructions to
-          remain architecture independent.  */
-       .loc_mark_labels        1
-
-       .text
-
-       .globl  main
-       .func   main
-main:  .int    0
-       .endfunc
-       .size   main, . - main
-
-       /* `.fini' section is here to make sure `dw2-ranges.S'
-          vs. `dw2-ranges2.S' overlap their DW_AT_ranges with each other.  */
-       .section        .fini, "ax", @progbits
-
-       .globl  func
-       .func   func
-func:  .int    0
-       .endfunc
-       .size   func, . - func
similarity index 70%
rename from gdb/testsuite/gdb.dwarf2/dw2-ranges3.S
rename to gdb/testsuite/gdb.dwarf2/dw2-ranges.c
index e1539ce..3572645 100644 (file)
    DW_AT_ranges as the linker could place both sections at arbitrary locations.
    */
 
-       /* Such directive is required by GAS for builds without `-g'.  */
-       .file   1 "dw2-ranges3.S"
+/* `.fini' section is here to make sure `dw2-ranges.c'
+   vs. `dw2-ranges2.c' overlap their DW_AT_ranges with each other.  */
 
-       /* Without this directive GAS will not emit DWARF2 unless we provide an
-          instruction to assemble.  We want to avoid any instructions to
-          remain architecture independent.  */
-       .loc_mark_labels        1
+void __attribute__ ((section (".fini")))
+func (void)
+{
+}
 
-       .text
-
-       .globl  main3
-       .func   main3
-main3: .int    0
-       .endfunc
-       .size   main3, . - main3
+int
+main (void)
+{
+  return 0;
+}
index d3b8fe5..39fb21e 100644 (file)
@@ -23,24 +23,47 @@ if {![dwarf2_support]} {
     return 0  
 }
 
+# The .c files use __attribute__.
+if [get_compiler_info unused] {
+    return -1;
+}
+if !$gcc_compiled {
+    verbose "Skipping DW_AT_ranges test."
+    return 0  
+}
+
 set testfile "dw2-ranges"
-set srcfile ${testfile}.S
-set srcfile2 ${testfile}2.S
-set srcfile3 ${testfile}3.S
+set srcfile ${testfile}.c
+set srcfile2 ${testfile}2.c
+set srcfile3 ${testfile}3.c
+set asmfile ${objdir}/${subdir}/${testfile}.s
+set asmfile2 ${objdir}/${subdir}/${testfile}2.s
+set asmfile3 ${objdir}/${subdir}/${testfile}3.s
 set objfile ${objdir}/${subdir}/${testfile}.o
 set objfile2 ${objdir}/${subdir}/${testfile}2.o
 set objfile3 ${objdir}/${subdir}/${testfile}3.o
 set binfile ${objdir}/${subdir}/${testfile}
 
-if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${objfile}" object {additional_flags=-gdwarf-2}] != "" } {
+# Generate .s without debug info but provide debug info by the assembler.
+# This way we get DW_TAG_compile_unit DIE and only that DIE.
+
+if {[gdb_compile "${srcdir}/${subdir}/${srcfile}" "${asmfile}" assembly {}] != ""
+    || [gdb_compile "${asmfile}" "${objfile}" object {additional_flags=-gdwarf-2}] != "" } {
     return -1
 }
-if {[gdb_compile "${srcdir}/${subdir}/${srcfile2}" "${objfile2}" object {additional_flags=-gdwarf-2}] != "" } {
+if {[gdb_compile "${srcdir}/${subdir}/${srcfile2}" "${asmfile2}" assembly {}] != ""
+    || [gdb_compile "${asmfile2}" "${objfile2}" object {additional_flags=-gdwarf-2}] != "" } {
     return -1
 }
-if {[gdb_compile "${srcdir}/${subdir}/${srcfile3}" "${objfile3}" object {additional_flags=-gstabs}] != "" } {
+
+# STABS compilation is intentional as it tests the STABS lookup where is no
+# partial_symtab->psymtabs_addrmap supported for that CU (Compilation Unit) in
+# a file containing psymtabs_addrmap-supporting DWARF CUs.
+if {[gdb_compile "${srcdir}/${subdir}/${srcfile3}" "${asmfile3}" assembly {}] != ""
+    || [gdb_compile "${asmfile3}" "${objfile3}" object {additional_flags=-gstabs}] != "" } {
     return -1
 }
+
 if {[gdb_compile "${objfile} ${objfile2} ${objfile3}" "${binfile}" executable {}] != "" } {
     return -1
 }
@@ -62,4 +85,13 @@ gdb_test "info line main" "Line \[0-9\]* of .* starts at address .* and ends at
 gdb_test "info line func" "Line \[0-9\]* of .* starts at address .* and ends at .*"
 gdb_test "info line main2" "Line \[0-9\]* of .* starts at address .* and ends at .*"
 gdb_test "info line func2" "Line \[0-9\]* of .* starts at address .* and ends at .*"
-gdb_test "info line main3" "Line \[0-9\]* of .* starts at address .* and ends at .*"
+
+set test "info line main3"
+gdb_test_multiple $test $test {
+    -re "Line \[0-9\]* of .* starts at address .* and ends at .*\r\n$gdb_prompt $" {
+       pass $test
+    }
+    -re "Line \[0-9\]* of .* is at address .* but contains no code\\.\r\n$gdb_prompt $" {
+       kfail symtab/12497 $test
+    }
+}
similarity index 59%
rename from gdb/testsuite/gdb.dwarf2/dw2-ranges2.S
rename to gdb/testsuite/gdb.dwarf2/dw2-ranges2.c
index e41e5b3..538dbe5 100644 (file)
    DW_AT_ranges as the linker could place both sections at arbitrary locations.
    */
 
-       /* Such directive is required by GAS for builds without `-g'.  */
-       .file   1 "dw2-ranges2.S"
+/* `.fini' section is here to make sure `dw2-ranges.c'
+   vs. `dw2-ranges2.c' overlap their DW_AT_ranges with each other.  */
 
-       /* Without this directive GAS will not emit DWARF2 unless we provide an
-          instruction to assemble.  We want to avoid any instructions to
-          remain architecture independent.  */
-       .loc_mark_labels        1
+void __attribute__ ((section (".fini")))
+func2 (void)
+{
+}
 
-       .text
-
-       .globl  main2
-       .func   main2
-main2: .int    0
-       .endfunc
-       .size   main2, . - main2
-
-       /* `.fini' section is here to make sure `dw2-ranges.S'
-          vs. `dw2-ranges2.S' overlap their DW_AT_ranges with each other.  */
-       .section        .fini, "ax", @progbits
-
-       .globl  func2
-       .func   func2
-func2: .int    0
-       .endfunc
-       .size   func2, . - func2
+void
+main2 (void)
+{
+}
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-ranges3.c b/gdb/testsuite/gdb.dwarf2/dw2-ranges3.c
new file mode 100644 (file)
index 0000000..b42a98d
--- /dev/null
@@ -0,0 +1,21 @@
+/*
+   Copyright 2007, 2008, 2009, 2010, 2011 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/>.
+ */
+
+void
+main3 (void)
+{
+}