aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite
diff options
context:
space:
mode:
authorTankut Baris Aktemur <tankut.baris.aktemur@intel.com>2023-01-09 09:44:22 +0100
committerTankut Baris Aktemur <tankut.baris.aktemur@intel.com>2023-01-09 09:50:15 +0100
commit23f3415896429142121e0acf8613caede0be35bf (patch)
treed1d9b340f137d2a357a1d09f8eed88f8f47c264e /gdb/testsuite
parent0046ff60684eb16dcfafac350d37f4dc56c368e3 (diff)
downloadfsf-binutils-gdb-23f3415896429142121e0acf8613caede0be35bf.zip
fsf-binutils-gdb-23f3415896429142121e0acf8613caede0be35bf.tar.gz
fsf-binutils-gdb-23f3415896429142121e0acf8613caede0be35bf.tar.bz2
testsuite: add -O0 to Intel compilers if no 'optimize' option is given
icpx/icx give the following warning if '-g' is used without '-O'. icpx: remark: Note that use of '-g' without any optimization-level option will turn off most compiler optimizations similar to use of '-O0'; use '-Rno-debug-disables-optimization' to disable this remark [-Rdebug-disables-optimization] The warning makes dejagnu think that compilation has failed. E.g.: $ make check TESTS="gdb.cp/local.exp" RUNTESTFLAGS="CXX_FOR_TARGET='icpx' CC_FOR_TARGET=icx" ... gdb compile failed, icpx: remark: Note that use of '-g' without any optimization-level option will turn off most compiler optimizations similar to use of '-O0'; use '-Rno-debug-disables-optimization' to disable this remark [-Rdebug-disables-optimization] === gdb Summary === # of untested testcases 1 Furthermore, if no -O flag is passed, icx/icc optimize the code by default. This breaks assumptions in many GDB tests that the code is unoptimized by default. E.g.: $ make check TESTS="gdb.cp/cmpd-minsyms.exp" RUNTESTFLAGS="CXX_FOR_TARGET='icpx' CC_FOR_TARGET=icx" ... FAIL: gdb.cp/cmpd-minsyms.exp: gdb_breakpoint: set breakpoint at 'GDB<int>::a() const' FAIL: gdb.cp/cmpd-minsyms.exp: gdb_breakpoint: set breakpoint at 'GDB<int>::b() volatile' FAIL: gdb.cp/cmpd-minsyms.exp: gdb_breakpoint: set breakpoint at 'GDB<int>::c() const volatile' FAIL: gdb.cp/cmpd-minsyms.exp: gdb_breakpoint: set breakpoint at GDB<int>::operator == FAIL: gdb.cp/cmpd-minsyms.exp: gdb_breakpoint: set breakpoint at GDB<int>::operator==(GDB<int> const&) FAIL: gdb.cp/cmpd-minsyms.exp: gdb_breakpoint: set breakpoint at GDB<char>::harder(char) FAIL: gdb.cp/cmpd-minsyms.exp: gdb_breakpoint: set breakpoint at GDB<int>::harder(int) FAIL: gdb.cp/cmpd-minsyms.exp: gdb_breakpoint: set breakpoint at "int GDB<char>::even_harder<int>(char)" FAIL: gdb.cp/cmpd-minsyms.exp: gdb_breakpoint: set breakpoint at GDB<int>::simple() === gdb Summary === # of expected passes 1 # of unexpected failures 9 To fix both problems, pass the -O0 flag explicitly, if no optimization option is given. With this patch we get, e.g.: $ make check TESTS="gdb.cp/cmpd-minsyms.exp gdb.cp/local.exp" RUNTESTFLAGS="CXX_FOR_TARGET='icpx' CC_FOR_TARGET=icx" ... === gdb Summary === # of expected passes 19 # of known failures 1 Approved-By: Tom Tromey <tom@tromey.com>
Diffstat (limited to 'gdb/testsuite')
-rw-r--r--gdb/testsuite/lib/gdb.exp41
1 files changed, 41 insertions, 0 deletions
diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
index 44f11a9..c41d469 100644
--- a/gdb/testsuite/lib/gdb.exp
+++ b/gdb/testsuite/lib/gdb.exp
@@ -4711,6 +4711,27 @@ proc gdb_compile {source dest type options} {
lappend new_options "additional_flags=-diag-disable=10148"
}
+ # icpx/icx give the following warning if '-g' is used without '-O'.
+ #
+ # icpx: remark: Note that use of '-g' without any
+ # optimization-level option will turn off most compiler
+ # optimizations similar to use of '-O0'
+ #
+ # The warning makes dejagnu think that compilation has failed.
+ #
+ # Furthermore, if no -O flag is passed, icx and icc optimize
+ # the code by default. This breaks assumptions in many GDB
+ # tests that the code is unoptimized by default.
+ #
+ # To fix both problems, pass the -O0 flag explicitly, if no
+ # optimization option is given.
+ if {[test_compiler_info "icx-*"] || [test_compiler_info "icc-*"]} {
+ if {[lsearch $options optimize=*] == -1
+ && [lsearch $options additional_flags=-O*] == -1} {
+ lappend new_options "optimize=-O0"
+ }
+ }
+
# Starting with 2021.7.0 (recognized as icc-20-21-7 by GDB) icc and
# icpc are marked as deprecated and both compilers emit the remark
# #10441. To let GDB still compile successfully, we disable these
@@ -4755,6 +4776,21 @@ proc gdb_compile {source dest type options} {
# option is not supported so instead use the -module flag.
# Additionally, Intel compilers need the -debug-parameters flag set to
# emit debug info for all parameters in modules.
+ #
+ # ifx gives the following warning if '-g' is used without '-O'.
+ #
+ # ifx: remark #10440: Note that use of a debug option
+ # without any optimization-level option will turnoff most
+ # compiler optimizations similar to use of '-O0'
+ #
+ # The warning makes dejagnu think that compilation has failed.
+ #
+ # Furthermore, if no -O flag is passed, Intel compilers optimize
+ # the code by default. This breaks assumptions in many GDB
+ # tests that the code is unoptimized by default.
+ #
+ # To fix both problems, pass the -O0 flag explicitly, if no
+ # optimization option is given.
if { !$getting_compiler_info && [lsearch -exact $options f90] != -1 } {
# Fortran compile.
set mod_path [standard_output_file ""]
@@ -4764,6 +4800,11 @@ proc gdb_compile {source dest type options} {
|| [test_compiler_info {ifx-*} f90] } {
lappend new_options "additional_flags=-module ${mod_path}"
lappend new_options "additional_flags=-debug-parameters all"
+
+ if {[lsearch $options optimize=*] == -1
+ && [lsearch $options additional_flags=-O*] == -1} {
+ lappend new_options "optimize=-O0"
+ }
}
}