Bad naming practice. CheckSuck implies it only checks and returns the result. Everything the function does should be included in the name to avoid confusion. Call it SuckIfUnsucked or something
That was my first reaction as well. Even if you say you can see that it doesn't return a bool it's still ambiguus as to what (if anything) happens when the state is sucked/unsucked. I would also prefer a name like GuranteeSucked or EnsureIsSucked.
Could be inside a class for something to be sucked, making unsucked a variable for the class. CheckAndSuck would be a better name for the function. I don't think the meme needed a code audit but here I am.
However, if this was a functional programming language, there wouldn't be any mutable global variables to be unaware were being examined, nor could Suck do any sucking unless it were passed the thing to suck and returned the sucked thing.
In this way the subtle class of bugs that you both are warning against would be impossible to introduce.
Depending on the kind of sucking that Suck does, however, you may perceive the global invisibility and availability of the sucking as an advantage in this case. But possibly not if the code is your girlfriend/boyfriend.