We help IT Professionals succeed at work.

AS400 Compile error level has changed

qbjgqbjg
qbjgqbjg asked
on
CPD0752 00  No variables declared in program. I am now getting this error. Errors at this level did not previosly cause program not to compile. It had to be at l;east a 20. Where is this set?
Comment
Watch Question

It depends on what language you're compiling, but it should usually be set through the GENLVL() parameter of your CRTxxx command.

Options in source may also change the levels. RPG IV, for example, allows a GENLVL() option in a H-spec.

Also, options may be set in data areas. RPG IV can use a data area named RPGLEHSPEC in *LIBL or a data area named DFTLEHSPEC in QRPGLE.

Tom
qbjgqbjgConsultant

Author

Commented:
It is something related to my profile. Tis was a cl program. I can still compile it under a different profile.
I can still compile it under a different profile.

What exactly does that mean? Do you sign on under another profile and compile interactively? ...compile in batch? Do you sign on as yourself and submit the compile to batch under a different profile? Do you sign on as yourself and switch to a different profile?

The specific circumstances may indicate where to look.

Also, how did you determine that the CPD0752 was the cause of the compilation failure? Is this OPM CL? What OS version is installed?

Tom
qbjgqbjgConsultant

Author

Commented:
I signed in as a different user and compiled interactively. That error was the cause of the failure.
That error was the cause of the failure.

Yes, but how did you determine that? The compile listing should show a message near the end saying the object was or was not created. It should also state the maximum error severity.

Perhaps more importantly, the joblog should have more explicit messages if the SEV(0) CPD0752 was not the actual cause.

Tom
qbjgqbjgConsultant

Author

Commented:
Sorry I was out for a few days. It was the sev(0) error that caused it to fail. I believe it was the genlvl in my profile.
qbjgqbjgConsultant

Author

Commented:
There is a ENDSEV on the jobd. I believe this was accidently changed when changing the library list. I changed it to 30. At first it still did not work, but after I logged off, then back in it did.
Signing off and back on might have enabled some change, but the ENDSEV() attribute shouldn't have had anything to do with it. I can set ENDSEV(0) and compiles work fine even with non-zero severities in compiler messages. The GENLVL() still controls, before and after signing off/on. Something else must have been missed.

Since ENDSEV() cannot be less than zero, a SEV(0) message won't have a higher severity and won't trigger an ENDSEV() action. Also, compile-time messages aren't *ESCAPE messages, so they have no effect on ENDSEV(). Any *INQ message requiring a reply will be sent as SEV(99), so every such *INQ message would end jobs if that's how ENDSEV() worked.

A closer examination of a joblog of a failed compile should show something more definite.

Tom