| # Copyright 2013-2021 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/>. |
| |
| standard_testfile |
| |
| # Fission doesn't support macros yet. Bug 15954. |
| if [using_fission] { |
| unsupported "fission" |
| return -1 |
| } |
| |
| if [is_remote host] { |
| unsupported "compiling on a remote host does not support a filename with directory." |
| return 0 |
| } |
| |
| set opts {debug additional_flags=-I.} |
| |
| get_compiler_info |
| if [test_compiler_info gcc*] { |
| lappend opts additional_flags=-g3 |
| } elseif [test_compiler_info clang*] { |
| lappend opts additional_flags=-fdebug-macro |
| } |
| |
| if { [file pathtype $objdir] == "relative" } { |
| untested "objdir $objdir should be absolute" |
| return |
| } |
| set saved_pwd [pwd] |
| cd $srcdir/${subdir}/base/two |
| set err [gdb_compile "../../${srcfile}" "${binfile}" executable $opts] |
| cd $saved_pwd |
| if { $err != "" } { |
| untested "compilation failed" |
| return -1 |
| } |
| |
| clean_restart ${testfile} |
| |
| # Test macros respect DW_AT_comp_dir. |
| |
| # "list header_two_func" does not set exactly the one line we want. |
| if ![runto header_two_func] { |
| return -1 |
| } |
| |
| gdb_test "info macro HEADER" "\r\n#define HEADER 2" |