【发布时间】:2019-07-12 06:55:56
【问题描述】:
我有一个实现了许多功能的标记类型。在一种情况下,我需要这些函数之一来代替进入无限循环。不幸的是,据我所知,我无法编译它以使其不会发出警告。我希望仍然使用-gnatwe 来确保我的代码中没有警告,但是我该如何实现这样的功能。
函数如下所示:
function Foo (This : Some_Type) return Some_Type'Class is
begin
loop
Do_Useful_Stuff_Indefinitely_With (This);
end loop;
-- return This; (if needed?)
end Foo;
我尝试过pragma (No_Return),但它只适用于过程(Foo 函数在其他地方用作适当的函数,因此必须具有相同的签名)。
我也尝试了pragma Suppress (All_Checks),但这仍然引发了无法访问代码或缺少返回语句错误的警告。
有没有什么方法可以让一次性功能永远运行而不会发出警告?
【问题讨论】:
标签: ada gnat unreachable-code