Not using a DO ... END
compound statement can be error-prone.
Noncompliant Code Example
foo: proc options(main);
declare i fixed decimal init (0);
if i = 42 then
put list ('The answer is... '); /* Noncompliant; should be enclosed in DO ... END*/
put list ('42!'); /* Always unconditionally be executed! Indentation level is misleading. */
end;
Compliant Solution
foo: proc options(main);
declare i fixed decimal init (0);
if i = 42 then do;
put list ('The answer is... '); /* Compliant */
put list ('42!');
end;
end;