Problem Note 46600: SAS functions incorrectly resolve within macro parameter list during compilation
From SAS V6.08 through SAS V9.2, the SAS Macro Facility was erroneously evaluating expressions at macro compilation time which defined the default value of keyword parameters. This was a change from SAS V5.18. At macro compilation time, the SAS Macro Facility should have only been evaluating %STR and %NRSTR quoting functions used in the default value expressions of keyword parameters. The correct time for full resolution of default keyword parameter expressions is at macro execution time.
Sample code that incorrectly evaluates %SYSFUNC at compilation time:
%macro A(B=A %sysfunc(putn(&xx,2.)));
%let xxxx=%sysfunc(today());
%put %unquote(&B.);
%mend A;
Operating System and Release Information
SAS System | N/A | z/OS | 9.2 TS2M3 | 9.3 TS1M0 |
Microsoft® Windows® for 64-Bit Itanium-based Systems | 9.2 TS2M3 | 9.3 TS1M0 |
Microsoft Windows Server 2003 Datacenter 64-bit Edition | 9.2 TS2M3 | 9.3 TS1M0 |
Microsoft Windows Server 2003 Enterprise 64-bit Edition | 9.2 TS2M3 | 9.3 TS1M0 |
Microsoft Windows XP 64-bit Edition | 9.2 TS2M3 | 9.3 TS1M0 |
Microsoft® Windows® for x64 | 9.2 TS2M3 | 9.3 TS1M0 |
Microsoft Windows Server 2003 Datacenter Edition | 9.2 TS2M3 | 9.3 TS1M0 |
Microsoft Windows Server 2003 Enterprise Edition | 9.2 TS2M3 | 9.3 TS1M0 |
Microsoft Windows Server 2003 Standard Edition | 9.2 TS2M3 | 9.3 TS1M0 |
Microsoft Windows Server 2003 for x64 | 9.2 TS2M3 | 9.3 TS1M0 |
Microsoft Windows Server 2008 | 9.2 TS2M3 | 9.3 TS1M0 |
Microsoft Windows Server 2008 for x64 | 9.2 TS2M3 | 9.3 TS1M0 |
Microsoft Windows XP Professional | 9.2 TS2M3 | 9.3 TS1M0 |
Windows 7 Enterprise 32 bit | 9.2 TS2M3 | 9.3 TS1M0 |
Windows 7 Enterprise x64 | 9.2 TS2M3 | 9.3 TS1M0 |
Windows 7 Home Premium 32 bit | 9.2 TS2M3 | 9.3 TS1M0 |
Windows 7 Home Premium x64 | 9.2 TS2M3 | 9.3 TS1M0 |
Windows 7 Professional 32 bit | 9.2 TS2M3 | 9.3 TS1M0 |
Windows 7 Professional x64 | 9.2 TS2M3 | 9.3 TS1M0 |
Windows 7 Ultimate 32 bit | 9.2 TS2M3 | 9.3 TS1M0 |
Windows 7 Ultimate x64 | 9.2 TS2M3 | 9.3 TS1M0 |
Windows Vista | 9.2 TS2M3 | 9.3 TS1M0 |
Windows Vista for x64 | 9.2 TS2M3 | 9.3 TS1M0 |
64-bit Enabled AIX | 9.2 TS2M3 | 9.3 TS1M0 |
64-bit Enabled HP-UX | 9.2 TS2M3 | 9.3 TS1M0 |
64-bit Enabled Solaris | 9.2 TS2M3 | 9.3 TS1M0 |
HP-UX | 9.2 TS2M3 | 9.3 TS1M0 |
HP-UX IPF | 9.2 TS2M3 | 9.3 TS1M0 |
Linux | 9.2 TS2M3 | 9.3 TS1M0 |
Linux for x64 | 9.2 TS2M3 | 9.3 TS1M0 |
Linux on Itanium | 9.2 TS2M3 | 9.3 TS1M0 |
OpenVMS on HP Integrity | 9.2 TS2M3 | 9.3 TS1M0 |
Solaris for x64 | 9.2 TS2M3 | 9.3 TS1M0 |
Tru64 UNIX | 9.2 TS2M3 | 9.3 TS1M0 |
*
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.
SAS functions incorrectly resolve when creating a keyword parameter within a macro definition during macro compilation.
Type: | Problem Note |
Priority: | low |
Date Modified: | 2012-05-18 09:52:25 |
Date Created: | 2012-05-17 14:49:24 |