From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2182) id DFD1939730D2; Fri, 29 May 2020 16:43:32 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org DFD1939730D2 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: Gary Benson To: gdb-cvs@sourceware.org Subject: [binutils-gdb] Fix build errors in with clang in gdb.compile/compile-cplus.c X-Act-Checkin: binutils-gdb X-Git-Author: Gary Benson X-Git-Refname: refs/heads/master X-Git-Oldrev: 9fcafd23fa6d919f112e9a7f73e72895c2457de1 X-Git-Newrev: 678048e8079ace915052f3070b2df97bcaea58d2 Message-Id: <20200529164332.DFD1939730D2@sourceware.org> Date: Fri, 29 May 2020 16:43:32 +0000 (GMT) X-BeenThere: gdb-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 29 May 2020 16:43:33 -0000 https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=678048e8079ace915052f3070b2df97bcaea58d2 commit 678048e8079ace915052f3070b2df97bcaea58d2 Author: Gary Benson Date: Fri May 29 17:43:17 2020 +0100 Fix build errors in with clang in gdb.compile/compile-cplus.c Clang fails to compile the file, with the following error: fatal error: 'iostream' file not found This prevents the following testcase from executing: gdb.compile/compile-cplus.exp The testcase sets additional_flags when building with GCC, which this commit causes to also be set when building with clang. This makes the testcase fail to build with a different error: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated] so this commit adds -Wno-deprecated in two places to sidestep this. Note that, while allowing the testcase to build, this commit reveals failures when the testsuite is built using clang. gdb/testsuite/ChangeLog: * gdb.compile/compile-cplus.exp (additional_flags): Also set when building with clang. (additional_flags, srcfilesoptions): Pass -Wno-deprecated when building with clang. Diff: --- gdb/testsuite/ChangeLog | 7 +++++++ gdb/testsuite/gdb.compile/compile-cplus.exp | 15 +++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index 667dbfddec0..d4e7220b326 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2020-05-29 Gary Benson + + * gdb.compile/compile-cplus.exp (additional_flags): Also + set when building with clang. + (additional_flags, srcfilesoptions): Pass -Wno-deprecated + when building with clang. + 2020-05-29 Gary Benson * gdb.arch/i386-avx.exp (additional_flags): Also set when diff --git a/gdb/testsuite/gdb.compile/compile-cplus.exp b/gdb/testsuite/gdb.compile/compile-cplus.exp index cca5b205200..85b2f20a8fa 100644 --- a/gdb/testsuite/gdb.compile/compile-cplus.exp +++ b/gdb/testsuite/gdb.compile/compile-cplus.exp @@ -19,11 +19,16 @@ standard_testfile .c compile-shlib.c compile-constvar.S compile-nodebug.c get_compiler_info set options {} -if [test_compiler_info gcc*] { +if { [test_compiler_info gcc*] || [test_compiler_info clang*] } { lappend options additional_flags=-g3 lappend options additional_flags=-std=gnu++11 lappend options c++ } +if [test_compiler_info clang*] { + # Treating C input as C++ is deprecated in Clang, so + # the build will fail without disabling -Wdeprecated. + lappend options additional_flags=-Wno-deprecated +} if { ![istarget x86_64-*-* ] || ![is_lp64_target] } { verbose "Skipping x86_64 LOC_CONST test." @@ -34,7 +39,13 @@ set srcfilesoptions [list ${srcfile} ${options}] if { $srcfile3 != "" } { lappend srcfilesoptions $srcfile3 ${options} } -lappend srcfilesoptions $srcfile4 "nodebug c++" +set srcfile4options "nodebug c++" +if [test_compiler_info clang*] { + # Treating C input as C++ is deprecated in Clang, so + # the build will fail without disabling -Wdeprecated. + set srcfile4options "$srcfile4options additional_flags=-Wno-deprecated" +} +lappend srcfilesoptions $srcfile4 $srcfile4options if { [eval build_executable_from_specs ${testfile}.exp $testfile {$options} ${srcfilesoptions}] } { return -1 }