1# Copyright 2020 Free Software Foundation, Inc. 2 3# This program is free software; you can redistribute it and/or modify 4# it under the terms of the GNU General Public License as published by 5# the Free Software Foundation; either version 3 of the License, or 6# (at your option) any later version. 7# 8# This program is distributed in the hope that it will be useful, 9# but WITHOUT ANY WARRANTY; without even the implied warranty of 10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11# GNU General Public License for more details. 12# 13# You should have received a copy of the GNU General Public License 14# along with this program. If not, see <http://www.gnu.org/licenses/>. 15load_lib dwarf.exp 16 17# This test can only be run on targets which support DWARF-2 and use gas. 18if {![dwarf2_support]} { 19 verbose "Skipping dw2-vendor-extended-opcode test." 20 return 0 21} 22 23# The .c files use __attribute__. 24if [get_compiler_info] { 25 return -1 26} 27if !$gcc_compiled { 28 verbose "Skipping dw2-vendor-extended-opcode test." 29 return 0 30} 31 32standard_testfile dw2-vendor-extended-opcode.c dw2-vendor-extended-opcode-dw.S 33 34set asm_file [standard_output_file $srcfile2] 35Dwarf::assemble $asm_file { 36 declare_labels Llines 37 global srcdir subdir srcfile 38 39 set DW_LNE_lo_usr 0x80 40 set DW_LNE_hi_usr 0xff 41 42 cu {} { 43 compile_unit { 44 {language @DW_LANG_C} 45 {name dw2-vendor-extended-opcode.c} 46 {stmt_list $Llines DW_FORM_sec_offset} 47 } { 48 subprogram { 49 {external 1 flag} 50 {MACRO_AT_func {main}} 51 } 52 } 53 } 54 55 lines {version 2} Llines { 56 include_dir "${srcdir}/${subdir}" 57 file_name "$srcfile" 1 58 59 program { 60 {DW_LNE_set_address main_label} 61 {line 27} 62 {DW_LNE_user 1 $DW_LNE_lo_usr} 63 {DW_LNE_user 2 $DW_LNE_hi_usr} 64 {DW_LNS_copy} 65 66 {DW_LNE_set_address main_label_2} 67 {DW_LNE_end_sequence} 68 } 69 } 70} 71 72if { [prepare_for_testing "failed to prepare" ${testfile} \ 73 [list $srcfile $asm_file] {nodebug}] } { 74 return -1 75} 76 77if ![runto_main] { 78 return -1 79} 80 81gdb_breakpoint "$srcfile:27" message 82