You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>. */
+#if PTRBITS == 64
+# define PTRBYTE .8byte
+# define PTRBYTES 8
+#elif PTRBITS == 32
+# define PTRBYTE .4byte
+# define PTRBYTES 4
+#else
+# error "Unsupported pointer size"
+#endif
+
/* Dummy function to provide debug information for. */
.text
.Lline1_lines:
.byte 0 /* DW_LNE_set_address */
- .uleb128 5
+ .uleb128 1 + PTRBYTES
.byte 2
- .4byte .Lbegin_func_cu1
+ PTRBYTE .Lbegin_func_cu1
.byte 3 /* DW_LNS_advance_line */
.sleb128 3 /* ... to 4 */
.byte 1 /* DW_LNS_copy (second time as an end-of-prologue marker) */
.byte 0 /* DW_LNE_set_address */
- .uleb128 5
+ .uleb128 1 + PTRBYTES
.byte 2
- .4byte .Lend_func_cu1
+ PTRBYTE .Lend_func_cu1
.byte 0 /* DW_LNE_end_of_sequence */
.uleb128 1
standard_testfile .S
+if {[is_ilp32_target]} {
+ set ptrbits 32
+} else {
+ set ptrbits 64
+}
+
+set srcfile_opts {}
+lappend srcfile_opts nodebug
+lappend srcfile_opts additional_flags=-DPTRBITS=$ptrbits
+
if {[prepare_for_testing_full "failed to prepare" \
- [list $testfile debug main.c debug $srcfile nodebug]]} {
+ [list $testfile debug main.c debug $srcfile $srcfile_opts]]} {
return
}
#if PTRBITS == 64
# define PTRBYTE .8byte
+# define PTRBYTES 8
#elif PTRBITS == 32
# define PTRBYTE .4byte
+# define PTRBYTES 4
#else
# error "Unsupported pointer size"
#endif
1: .byte 0x50 /* DW_OP_reg0 */
2:
/* Location list end. */
- .4byte 0, 0
+ PTRBYTE 0, 0
/* Abbrev table */
.section .debug_abbrev
.Lline1_lines:
.byte 0 /* DW_LNE_set_address */
- .uleb128 5
+ .uleb128 1 + PTRBYTES
.byte 2
PTRBYTE func_start
.byte 3 /* DW_LNS_advance_line */
.byte 1 /* DW_LNS_copy */
.byte 0 /* DW_LNE_set_address */
- .uleb128 5
+ .uleb128 1 + PTRBYTES
.byte 2
PTRBYTE func0
.byte 4 /* DW_LNS_set_file */
.byte 1 /* DW_LNS_copy */
.byte 0 /* DW_LNE_set_address */
- .uleb128 5
+ .uleb128 1 + PTRBYTES
.byte 2
PTRBYTE func1
.byte 4 /* DW_LNS_set_file */
.byte 1 /* DW_LNS_copy */
.byte 0 /* DW_LNE_set_address */
- .uleb128 5
+ .uleb128 1 + PTRBYTES
.byte 2
PTRBYTE func2
.byte 4 /* DW_LNS_set_file */
.byte 1 /* DW_LNS_copy */
.byte 0 /* DW_LNE_set_address */
- .uleb128 5
+ .uleb128 1 + PTRBYTES
.byte 2
PTRBYTE func3
.byte 4 /* DW_LNS_set_file */
.byte 1 /* DW_LNS_copy */
.byte 0 /* DW_LNE_set_address */
- .uleb128 5
+ .uleb128 1 + PTRBYTES
.byte 2
PTRBYTE func_end
/* Equivalent copy but renamed s/func/fund/. */
.byte 0 /* DW_LNE_set_address */
- .uleb128 5
+ .uleb128 1 + PTRBYTES
.byte 2
PTRBYTE fund_start
.byte 3 /* DW_LNS_advance_line */
.byte 1 /* DW_LNS_copy */
.byte 0 /* DW_LNE_set_address */
- .uleb128 5
+ .uleb128 1 + PTRBYTES
.byte 2
PTRBYTE fund0
.byte 4 /* DW_LNS_set_file */
.byte 1 /* DW_LNS_copy */
.byte 0 /* DW_LNE_set_address */
- .uleb128 5
+ .uleb128 1 + PTRBYTES
.byte 2
PTRBYTE fund1
.byte 4 /* DW_LNS_set_file */
.byte 1 /* DW_LNS_copy */
.byte 0 /* DW_LNE_set_address */
- .uleb128 5
+ .uleb128 1 + PTRBYTES
.byte 2
PTRBYTE fund2
.byte 4 /* DW_LNS_set_file */
.byte 1 /* DW_LNS_copy */
.byte 0 /* DW_LNE_set_address */
- .uleb128 5
+ .uleb128 1 + PTRBYTES
.byte 2
PTRBYTE fund3
.byte 4 /* DW_LNS_set_file */
.byte 1 /* DW_LNS_copy */
.byte 0 /* DW_LNE_set_address */
- .uleb128 5
+ .uleb128 1 + PTRBYTES
.byte 2
PTRBYTE fund_end