Files
mercury/tests/debugger/io_tab_goto.inp
Ian MacLarty 3d2c49e759 Make the I/O tabling transformation respect :- pragma no_inline directives
Estimated hours taken: 3
Branches: main and 0.12

Make the I/O tabling transformation respect :- pragma no_inline directives
by creating a copy of the predicate to be transformed and calling the
copy, instead of duplicating the body, if :- pragma no_inline is
given.  This is necessary to avoid duplicate label errors from the C compiler
when the I/O tabled foreign proc uses labels.

compiler/hlds_pred.m:
	Add a new functor to the pred_creation type to indicate that a pred
	was created by the I/O tabling transformation.

	Fix some formatting.

compiler/table_gen.m:
	If the predicate to be I/O tabled has a no_inline pragma attached to
	it, then create a copy of the predicate and call the new predicate in
	the transformed version.

compiler/trace_params.m:
	Do not trace the copy of the I/O tabled predicate.

doc/reference_manual.texi
	Document the tabled_for_io attribute.

tests/debugger/Mercury.options:
tests/debugger/Mmakefile:
tests/debugger/io_tab_goto.data:
tests/debugger/io_tab_goto.exp:
tests/debugger/io_tab_goto.inp:
tests/debugger/io_tab_goto.m:
	Test that foreign C code with labels is I/O tabled correctly.

tests/debugger/declarative/Mmakefile:
tests/debugger/declarative/tabled_read_decl_goto.data:
tests/debugger/declarative/tabled_read_decl_goto.exp:
tests/debugger/declarative/tabled_read_decl_goto.inp:
tests/debugger/declarative/tabled_read_decl_goto.m:
	Test declarative debugging of I/O tabled foreign predicates with
	gotos.
2005-09-16 05:42:58 +00:00

23 lines
245 B
Plaintext

echo on
register --quiet
context none
table_io allow
table_io
break io_tab_goto__test
table_io start
continue
finish -n
print *
retry -o -a
print *
finish -n
print *
table_io end
continue
finish -n
print *
retry -f
finish -n
print *
continue -S