https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106654

Pilar Latiesa <pilarlatiesa at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |pilarlatiesa at gmail dot com

--- Comment #5 from Pilar Latiesa <pilarlatiesa at gmail dot com> ---
(In reply to Jakub Jelinek from comment #4)
> Note, I think for [[assume(i == j)]]; we can just emit if (i == j) ; else
> __builtin_unreachable ();

It would be great if the attribute were somewhat cleverer than that. 

For example:

double my_sqrt(double const d)
{
    [[assume(d >= 0.0)]];
    return std::sqrt(d);
}

or even:

double my_sqrt(double const d)
{
    [[assume(std::isfinite(std::sqrt(d)))]]
    return std::sqrt(d);
}

Reply via email to