longRunningPrimitiveCheckSequenceNumber compiler warning

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

longRunningPrimitiveCheckSequenceNumber compiler warning

Nicolas Cellier
 
We have this code

voidLongRunningPrimitive: reason
    ...
    <inline: false>
    longRunningPrimitiveCheckMethod := nil.
    longRunningPrimitiveCheckSequenceNumber = 0. "not strictly necessary but prevents this being inlined into checkForLongRunningPrimitive"
   ...

which generates

static void NoDbgRegParms
voidLongRunningPrimitive(char *reason)
{   DECL_MAYBE_SQ_GLOBAL_STRUCT
    GIV(longRunningPrimitiveCheckMethod) = null;
    GIV(longRunningPrimitiveCheckSequenceNumber) == 0;
   ...

and a compiler warning suggesting to replace == with =
So it seems to effectively be a hack, but it seems fragile.
Couldn't we remove this line (don't we have inline: #never for that purpose?).
Reply | Threaded
Open this post in threaded view
|

Re: longRunningPrimitiveCheckSequenceNumber compiler warning

Eliot Miranda-2
 
Hi Nicolas,

On Fri, Jan 4, 2019 at 3:39 AM Nicolas Cellier <[hidden email]> wrote:
 
We have this code

voidLongRunningPrimitive: reason
    ...
    <inline: false>
    longRunningPrimitiveCheckMethod := nil.
    longRunningPrimitiveCheckSequenceNumber = 0. "not strictly necessary but prevents this being inlined into checkForLongRunningPrimitive"
   ...

which generates

static void NoDbgRegParms
voidLongRunningPrimitive(char *reason)
{   DECL_MAYBE_SQ_GLOBAL_STRUCT
    GIV(longRunningPrimitiveCheckMethod) = null;
    GIV(longRunningPrimitiveCheckSequenceNumber) == 0;
   ...

and a compiler warning suggesting to replace == with =
So it seems to effectively be a hack, but it seems fragile.
Couldn't we remove this line (don't we have inline: #never for that purpose?).

Yes.  When I wrote the code we didn't have inline: #never.  inline: #never is a much better solution.

_,,,^..^,,,_
best, Eliot