<!-- This issue tracker is only for technical issues related to Bitcoin Core.

General bitcoin questions and/or support requests are best directed to the Bitcoin StackExchange at https://bitcoin.stackexchange.com.

For reporting security issues, please read instructions at https://bitcoincore.org/en/contact/.

If the node is "stuck" during sync or giving "block checksum mismatch" errors, please ensure your hardware is stable by running memtest and observe CPU temperature with a load-test tool such as linpack before creating an issue! -->

<!-- Describe the issue -->
Looking at the code below I can't understand how it is possible for the IF statement conditional expression to become true. cnt is already incremented before the IF statement. Is this not redundant? https://github.com/bitcoin/bitcoin/blob/master/src/script/script.h#L594

I have opened a ticket, https://stackoverflow.com/questions/73088518/reduntant-code-possibly-in-bitcoin-script-h

**Expected behavior**
Possibly doesn't change the behavior. 
 

<!--- What behavior did you expect? -->
Not Applicable
**Actual behavior**

<!--- What was the actual behavior (provide screenshots if the issue is GUI-related)? -->

**To reproduce**

<!--- How reliably can you reproduce the issue, what are the steps to do so? -->
It is source code issue

**System information**
Not applicable 

<!-- What version of Bitcoin Core are you using, where did you get it (website, self-compiled, etc)? -->
Main branch ..https://github.com/bitcoin/bitcoin
<!-- What type of machine are you observing the error on (OS/CPU and disk type)? -->
Not Applicable

<!-- GUI-related issue? What is your operating system and its version? If Linux, what is your desktop environment and graphical shell? -->
Not Applicable
<!-- Any extra information that might be useful in the debugging process. -->
<!--- This is normally the contents of a `debug.log` or `config.log` file. Raw text or a link to a pastebin type site are preferred. -->

{
public:
    explicit scriptnum_error(const std::string& str) : std::runtime_error(str) {}
};
class CScriptNum
{
/**
 * Numeric opcodes (OP_1ADD, etc) are restricted to operating on 4-byte integers.
 * The semantics are subtle, though: operands must be in the range [-2^31 +1...2^31 -1],
 * but results may overflow (and are valid as long as they are not used in a subsequent
 * numeric operation). CScriptNum enforces those semantics by storing results as
 * an int64 and allowing out-of-range values to be returned as a vector of bytes but
 * throwing an exception if arithmetic is done or the result is interpreted as an integer.
 */
public:
    explicit CScriptNum(const int64_t& n)
    {
        m_value = n;
    }
    static const size_t nDefaultMaxNumSize = 4;
    explicit CScriptNum(const std::vector<unsigned char>& vch, bool fRequireMinimal,