我有一个标记类型,实现了许多函数。在某些情况下,我需要其中一个函数进入无限循环。不幸的是,据我所知,没有办法编译它而不会引发警告。我希望仍然使用-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)
,但仍会因为不可达代码或缺少返回语句而引发警告。
是否有任何一种方式可以运行永远不会引发警告的函数?