SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 49965: "ERROR: Read Access Violation FCMP" message occurs when creating a subroutine or function

DetailsHotfixAboutRate It

When you attempt to create a subroutine or function in a PROC FCMP step, you might encounter an error and traceback like the following in the SAS® log:

ERROR: An exception has been encountered. Please contact technical support and provide them with the following traceback information: The SAS task name is [FCMP] ERROR: Read Access Violation FCMP Exception occurred at (07BB09B2) Task Traceback Address Frame (DBGHELP API Version 4.0 rev 5) 0000000007BB09B2 000000000B6FE520 sascmpa:tkvercn1+0xBF972 0000000007BAC6DA 000000000B6FE650 sascmpa:tkvercn1+0xBB69A 0000000007B48FD0 000000000B6FF080 sascmpa:tkvercn1+0x57F90 0000000007B46CD0 000000000B6FF7E0 sascmpa:tkvercn1+0x55C90 0000000007B4647B 000000000B6FF810 sascmpa:tkvercn1+0x5543B 00000000079219AC 000000000B6FF818 sasfcmp:tkvercn1+0x96C 00000000037F8FD7 000000000B6FFCB8 sashost:Main+0xF917 00000000037FD5FD 000000000B6FFF50 sashost:Main+0x13F3D 0000000076B7652D 000000000B6FFF58 kernel32:BaseThreadInitThunk+0xD 0000000076FBC521 000000000B6FFF88 ntdll:RtlUserThreadStart+0x21
This problem occurs when the subroutine or function contains a struct array definition. To circumvent this problem, define the struct array outside of the subroutine or function.

If you need to define a struct array inside of the subroutine or function, then a workaround is to do the following:

  1. Define a macro that contains an FCMP step.
  2. Inside that FCMP step, define the struct array.
  3. Specify an FCMP step that contains the subroutine or function. Note that this FCMP step is outside of the macro that is defined in Step 1.
  4. In the subroutine or function, use the RUN_MACRO function to call the macro that contains the FCMP step that defines the struct array.
Here is an example that uses this workaround:
proc proto package=work.ff.funcs; typedef struct{ int t; int v; } tv; run; option CMPLIB=work.ff; %macro myfunc; proc fcmp; struct tv b[1]; run; %mend; proc fcmp; subroutine f(); rc = run_macro("myfunc"); endsub; call f(); run;

Click the Hot Fix tab in this note to access the hot fix for this issue.



Operating System and Release Information

Product FamilyProductSystemProduct ReleaseSAS Release
ReportedFixed*ReportedFixed*
SAS SystemBase SASz/OS9.3_M29.49.3 TS1M29.4 TS1M0
Z649.3_M29.49.3 TS1M29.4 TS1M0
Microsoft® Windows® for x649.3_M29.49.3 TS1M29.4 TS1M0
Microsoft Windows Server 2003 Datacenter Edition9.3_M29.3 TS1M2
Microsoft Windows Server 2003 Enterprise Edition9.3_M29.3 TS1M2
Microsoft Windows Server 2003 Standard Edition9.3_M29.3 TS1M2
Microsoft Windows Server 2003 for x649.3_M29.3 TS1M2
Microsoft Windows Server 20089.3_M29.3 TS1M2
Microsoft Windows Server 2008 for x649.3_M29.49.3 TS1M29.4 TS1M0
Microsoft Windows XP Professional9.3_M29.3 TS1M2
Windows 7 Enterprise 32 bit9.3_M29.3 TS1M2
Windows 7 Enterprise x649.3_M29.49.3 TS1M29.4 TS1M0
Windows 7 Home Premium 32 bit9.3_M29.3 TS1M2
Windows 7 Home Premium x649.3_M29.3 TS1M2
Windows 7 Professional 32 bit9.3_M29.3 TS1M2
Windows 7 Professional x649.3_M29.49.3 TS1M29.4 TS1M0
Windows 7 Ultimate 32 bit9.3_M29.3 TS1M2
Windows 7 Ultimate x649.3_M29.3 TS1M2
Windows Vista9.3_M29.3 TS1M2
Windows Vista for x649.3_M29.3 TS1M2
64-bit Enabled AIX9.3_M29.49.3 TS1M29.4 TS1M0
64-bit Enabled HP-UX9.3_M29.49.3 TS1M29.4 TS1M0
64-bit Enabled Solaris9.3_M29.49.3 TS1M29.4 TS1M0
HP-UX IPF9.3_M29.49.3 TS1M29.4 TS1M0
Linux9.3_M29.49.3 TS1M29.4 TS1M0
Linux for x649.3_M29.49.3 TS1M29.4 TS1M0
Solaris for x649.3_M29.49.3 TS1M29.4 TS1M0
SAS SystemSAS Risk Dimensions Enterprise EditionMicrosoft® Windows® for x645.316.19.3 TS1M29.4 TS1M0
Microsoft Windows Server 2003 Datacenter Edition5.319.3 TS1M2
Microsoft Windows Server 2003 Enterprise Edition5.319.3 TS1M2
Microsoft Windows Server 2003 Standard Edition5.319.3 TS1M2
Microsoft Windows Server 2003 for x645.319.3 TS1M2
Microsoft Windows Server 20085.319.3 TS1M2
Microsoft Windows Server 2008 for x645.316.19.3 TS1M29.4 TS1M0
Microsoft Windows XP Professional5.319.3 TS1M2
Windows 7 Enterprise 32 bit5.319.3 TS1M2
Windows 7 Enterprise x645.316.19.3 TS1M29.4 TS1M0
Windows 7 Home Premium 32 bit5.319.3 TS1M2
Windows 7 Home Premium x645.319.3 TS1M2
Windows 7 Professional 32 bit5.319.3 TS1M2
Windows 7 Professional x645.316.19.3 TS1M29.4 TS1M0
Windows 7 Ultimate 32 bit5.319.3 TS1M2
Windows 7 Ultimate x645.319.3 TS1M2
Windows Vista5.319.3 TS1M2
Windows Vista for x645.319.3 TS1M2
64-bit Enabled AIX5.316.19.3 TS1M29.4 TS1M0
64-bit Enabled HP-UX5.316.19.3 TS1M29.4 TS1M0
64-bit Enabled Solaris5.316.19.3 TS1M29.4 TS1M0
HP-UX IPF5.316.19.3 TS1M29.4 TS1M0
Linux5.316.19.3 TS1M29.4 TS1M0
Linux for x645.316.19.3 TS1M29.4 TS1M0
Solaris for x645.316.19.3 TS1M29.4 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.