[PATCH] Disable Clang's integrated assembler for two testcases

Gary Benson gbenson@redhat.com
Wed Aug 19 14:55:54 GMT 2020


Hi all,

gdb.dwarf2/dw2-dir-file-name.exp fails to build using Clang because
the generated assembly language contains .ascii directives with more
than one string literal.  gdb.dwarf2/dw2-restore.exp fails to build
using Clang because it contains .func and .endfunc directives.
This patch causes Clang to invoke the system assembler to assemble
the relevant files.

Checked on Fedora 32 x86_64, GCC and clang.  Ok to commit?

Cheers,
Gary

--
gdb/testsuite/ChangeLog:

	* gdb.dwarf2/dw2-dir-file-name.exp: Use system assembler
	when compiling with clang.
	* gdb.dwarf2/dw2-restore.exp: Likewise
---
 gdb/testsuite/ChangeLog                        | 6 ++++++
 gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp | 6 ++++++
 gdb/testsuite/gdb.dwarf2/dw2-restore.exp       | 9 ++++++++-
 3 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp b/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp
index 0de71f2..973325f 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-dir-file-name.exp
@@ -333,6 +333,12 @@ lappend opts "additional_flags=-DFDIR=\"fdir\""
 # CU's DW_AT_name and .debug_line's filename.
 lappend opts "additional_flags=-DFILE=\"${srctmpfile}\""
 
+# Clang's integrated assembler doesn't support .ascii directives
+# with multiple string literals.
+if { [test_compiler_info clang*] } {
+    lappend opts "additional_flags=-fno-integrated-as"
+}
+
 if { [gdb_compile "${asmsrcfile} ${srcdir}/${subdir}/$srcfile" "${binfile}" executable $opts] != "" } {
     untested "failed to compile"
     return -1
diff --git a/gdb/testsuite/gdb.dwarf2/dw2-restore.exp b/gdb/testsuite/gdb.dwarf2/dw2-restore.exp
index 993f79f..04887db 100644
--- a/gdb/testsuite/gdb.dwarf2/dw2-restore.exp
+++ b/gdb/testsuite/gdb.dwarf2/dw2-restore.exp
@@ -21,8 +21,15 @@ if {![istarget x86_64-*] || ![is_lp64_target]} {
 }
 standard_testfile .S
 
+set opts [list {additional_flags=-nostdlib}]
+
+# Clang's integrated assembler doesn't support .func or .endfunc.
+if { [test_compiler_info clang*] } {
+    lappend opts [list {additional_flags=-fno-integrated-as}]
+}
+
 if {[prepare_for_testing "failed to prepare" $testfile [list $srcfile] \
-	 [list {additional_flags=-nostdlib}]]} {
+	 $opts]} {
     return -1
 }
 
-- 
1.8.3.1



More information about the Gdb-patches mailing list