Files
mercury/tests/valid/bug183.m
Zoltan Somogyi fdd141bf77 Clean up the tests in the other test directories.
tests/invalid/*.{m,err_exp}:
tests/misc_tests/*.m:
tests/mmc_make/*.m:
tests/par_conj/*.m:
tests/purity/*.m:
tests/stm/*.m:
tests/string_format/*.m:
tests/structure_reuse/*.m:
tests/submodules/*.m:
tests/tabling/*.m:
tests/term/*.m:
tests/trailing/*.m:
tests/typeclasses/*.m:
tests/valid/*.m:
tests/warnings/*.{m,exp}:
    Make these tests use four-space indentation, and ensure that
    each module is imported on its own line. (I intend to use the latter
    to figure out which subdirectories' tests can be executed in parallel.)

    These changes usually move code to different lines. For the tests
    that check compiler error messages, expect the new line numbers.

browser/cterm.m:
browser/tree234_cc.m:
    Import only one module per line.

tests/hard_coded/boyer.m:
    Fix something I missed.
2015-02-16 12:32:18 +11:00

31 lines
1.0 KiB
Mathematica

%---------------------------------------------------------------------------%
% vim: ts=4 sw=4 et ft=mercury
%---------------------------------------------------------------------------%
%
% Regression test for bug #183.
%
% When compiled with --warn-dead-procs and one of the C backends (or indeed the
% Erlang backend), rotd-2013-05-21 and before emitted an incorrect warning
% about handle_event_excp/1 being dead. This was because dead procedure
% elimination did not take foreign_export pragmas for languages other than
% those supported by the current backend into account when determining if that
% warning should be emitted.
:- module bug183.
:- interface.
:- type foo ---> foo.
:- implementation.
:- import_module univ.
:- impure pred handle_event_excp(string::in, string::in, univ::in) is det.
:- pragma foreign_export("C#", handle_event_excp(in, in, in),
"SSDB_handle_event_excp").
:- pragma foreign_export("Java", handle_event_excp(in, in, in),
"SSDB_handle_event_excp").
handle_event_excp(_, _, _) :-
impure impure_true.