On Sunday, 26 May 2019 08:55:33 PDT Elvis Stansvik wrote:
> > 2) unlike the other compilers, the conditional is actually in evaluated
> > context. So make sure you only Q_ASSUME on variables, never on function
> > calls. GCC will call them, the others won't. This is the same rule as
> > Q_ASSERT, btw.
> The way Q_ASSUME is defined, isn't that true for non-GCC too?
> 
> #define Q_ASSUME(Expr) \
>     do {\
>         const bool valueOfExpression = Expr;\
>         Q_ASSERT_X(valueOfExpression, "Q_ASSUME()", "Assumption in
> Q_ASSUME(\"" #Expr "\") was not correct");\
>         Q_ASSUME_IMPL(valueOfExpression);\
>     } while (false)
> 
> Won't Expr be evaluated at the const bool valueOfExpression = Expr; ?

Oops, that's true. I didn't remember we had changed it; my original goal was 
different.

Thanks for pointing it out.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel System Software Products



_______________________________________________
Interest mailing list
Interest@qt-project.org
https://lists.qt-project.org/listinfo/interest

Reply via email to