diff --git a/regression/goto-analyzer-simplify/soundness-warning/main.c b/regression/goto-analyzer-simplify/soundness-warning/main.c new file mode 100644 index 00000000000..3999d746391 --- /dev/null +++ b/regression/goto-analyzer-simplify/soundness-warning/main.c @@ -0,0 +1,4 @@ + +void main() +{ +} diff --git a/regression/goto-analyzer-simplify/soundness-warning/test.desc b/regression/goto-analyzer-simplify/soundness-warning/test.desc new file mode 100644 index 00000000000..c6616c15f52 --- /dev/null +++ b/regression/goto-analyzer-simplify/soundness-warning/test.desc @@ -0,0 +1,7 @@ +CORE +main.c +--vsd --vsd-values constants +\*\*\*\* WARNING\: This simplification is currently known to be unsound for input programs which include recursion\. Do not use it if soundness is important for your use case\. +^SIGNAL=0$ +^EXIT=0$ +-- diff --git a/src/goto-analyzer/static_simplifier.cpp b/src/goto-analyzer/static_simplifier.cpp index 974126a0c15..046081038ea 100644 --- a/src/goto-analyzer/static_simplifier.cpp +++ b/src/goto-analyzer/static_simplifier.cpp @@ -56,6 +56,10 @@ bool static_simplifier( messaget m(message_handler); m.status() << "Simplifying program" << messaget::eom; + m.warning() << "**** WARNING: This simplification is currently known to be " + "unsound for input programs which include recursion. Do not " + "use it if soundness is important for your use case." + << messaget::eom; for(auto &gf_entry : goto_model.goto_functions.function_map) {