mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-15 01:13:30 +00:00
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.
5 lines
15 B
Plaintext
5 lines
15 B
Plaintext
123
|
|
456
|
|
789
|
|
42
|