[PATCH] D86233: [LangRef] Define mayprogress attribute

Ralf via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 4 08:58:18 PDT 2020


RalfJung added a comment.

In D86233#2256563 <https://reviews.llvm.org/D86233#2256563>, @jdoerfert wrote:

> In D86233#2256076 <https://reviews.llvm.org/D86233#2256076>, @RalfJung wrote:
>
>> Shouldn't it be "maynotprogress" (or "maybenoprogress" or so)? *Every* function *may* progress, but only those with this marker are also allowed to not "make progress".
>
> The way to read it is:
> Every function *mustmakeprogress* unless it has the *mayprogress* attribute.
>
> So "may" is either they do or they don't, both are fine.
> And, "must" means they have to or UB.

I understand. But this is not how the word "may" is usually used. When I say "you may do X", that typically implies that usually, X is not a thing you may do.
This can certainly be explained away, but the first impression people are going to have before reading the docs is likely going to be wrong.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D86233/new/

https://reviews.llvm.org/D86233



More information about the llvm-commits mailing list