Informix Error -21614: Expected identifier not found following ^ifdef or ^ifndef at line line-number.
Cause and resolution
Expected identifier not found following ^ifdef or ^ifndef at line line-number.
If this internal error recurs, note all circumstances and contact IBM Informix Technical Support.
Oninit® Troubleshooting Guidance
Reasons / Common Causes
-21614 fires when an mkmessage input file's ^ifdef/^ifndef directive isn't followed
by a macro identifier — per the official guidance.
^ifdef/^ifndefwith no macro identifier following it, per the official guidance — the direct, only cause.
Solutions / Resolution
- Add the missing macro identifier after
^ifdef/^ifndefat the reported line, per the official guidance's implication.
Examples
A missing identifier
^ifdef
Some text.
^endif
Corrected
^ifdef SOME_MACRO
Some text.
^endif
Diagnostic Checks
- Check the reported line's
^ifdef/^ifndefdirective for a missing macro identifier, and add one.
Related Errors / Related Topics
- -21608 — "You have exceeded the limits of 8 defines. Extra defines will be ignored." A related preprocessor-define error, on exceeding the define count rather than a missing identifier on a specific directive.
An ^ifdef/^ifndef directive had no macro identifier following it — add one.