Problem Note 5758: Assignment statements using Boolean logic may produce incorrect results
When a value from a Boolean expression is assigned to a variable and
the next statement contains an arithmetic expression that results in a
missing value, the result of the Boolean expression is incorrectly set
to missing. The arithmetic expression must have more than one
arithmetic operator (i.e. +,-,* or /).
The following example does not correctly assign the result of the
Boolean expression to the variable D. D is incorrectly assigned a
missing value:
data _null_;
input a b c;
d=(a eq 0);
e=(a*1)+c;
put d= e=;
datalines;
0 0 .
;
The following output is written to the SAS Log:
d=. e=.
This problem occurs only in Release 8.2 TSLEVEL 2M0.
To circumvent this problem specify the following on an OPTIONS
statement, in a CONFIG file, or at SAS session initialization:
dsoptions=nomissopt;
A Technical Support hot fix for Release 8.2 TSLEVEL TS2M0 for this
issue is available at:
http://www.sas.com/techsup/download/hotfix/82_sbcs_prod_list.html#005758
Operating System and Release Information
| SAS System | Base SAS | 64-bit Enabled AIX | 8.2 TS2M0 | 8.2 TS2M0 |
| OpenVMS Alpha | 8.2 TS2M0 | 8.2 TS2M0 |
| CMS | 8.2 TS2M0 | 8.2 TS2M0 |
| 64-bit Enabled HP-UX | 8.2 TS2M0 | 8.2 TS2M0 |
| HP-UX | 8.2 TS2M0 | 8.2 TS2M0 |
| ABI+ for Intel Architecture | 8.2 TS2M0 | 8.2 TS2M0 |
| Linux | 8.2 TS2M0 | 8.2 TS2M0 |
| z/OS | 8.2 TS2M0 | 8.2 TS2M0 |
| Microsoft Windows NT Workstation | 8.2 TS2M0 | 8.2 TS2M0 |
| Windows Millennium Edition (Me) | 8.2 TS2M0 | 8.2 TS2M0 |
| Microsoft Windows 95/98 | 8.2 TS2M0 | 8.2 TS2M0 |
| Microsoft Windows 2000 Professional | 8.2 TS2M0 | 8.2 TS2M0 |
| Microsoft Windows 2000 Server | 8.2 TS2M0 | 8.2 TS2M0 |
| Microsoft Windows 2000 Datacenter Server | 8.2 TS2M0 | 8.2 TS2M0 |
| Microsoft Windows 2000 Advanced Server | 8.2 TS2M0 | 8.2 TS2M0 |
| OpenVMS VAX | 8.2 TS2M0 | 8.2 TS2M0 |
| OS/2 | 8.2 TS2M0 | 8.2 TS2M0 |
| IRIX | 8.2 TS2M0 | 8.2 TS2M0 |
| 64-bit Enabled Solaris | 8.2 TS2M0 | 8.2 TS2M0 |
| Solaris | 8.2 TS2M0 | 8.2 TS2M0 |
| Tru64 UNIX | 8.2 TS2M0 | 8.2 TS2M0 |
| AIX | 8.2 TS2M0 | 8.2 TS2M0 |
*
For software releases that are not yet generally available, the Fixed
Release is the software release in which the problem is planned to be
fixed.
| Type: | Problem Note |
| Priority: | alert |
| Date Modified: | 2002-05-14 14:31:42 |
| Date Created: | 2001-08-29 12:14:18 |