Microchip Technology XC8 Standard Compiler (Workstation) SW006021-1 SW006021-1 User Manual

Product codes
SW006021-1
Page of 518
MPLAB
®
 XC8 C Compiler User’s Guide
DS52053B-page 474
 2012 Microchip Technology Inc.
(1395) notable code sequence candidate suitable for compiler validation suite detected (*)
(Code Generator)
The compiler has in-built checks that can determine if combinations of internal code 
templates have been encountered. Where unique combinations are uncovered when 
compiling code, this message is issued. This message is not an error or warning, and 
its presence does not indicate possible code failure, but if you are willing to participate, 
the code you are compiling can be sent to Support to assist with the compiler testing 
process.
(1396) "*" positioned in the * memory region (0x* - 0x*) reserved by the compiler (Code Generator)
Some memory regions are reserved for use by the compiler. These regions are not nor-
mally used to allocate variables defined in your code. However, by making variables 
absolute, it is possible to place variables in these regions and avoid errors that would 
normally be issued by the linker. (Absolute variables can be placed at any location, 
even on top of other objects.) This warning from the code generator indicates that an 
absolute has been detected that will be located at memory that the compiler will be 
reserving. You must locate the absolute variable at a different location. This message 
will commonly be issued when placing variables in the common memory space.
char shared @ 0x7;   // oops, this memory is required by the compiler
(1397) unable to implement non-stack call to "*"; possible hardware stack overflow
(Code Generator)
The compiler must encode a C function call without using a CALL assembly instruction 
and the hardware stack (i.e., use a lookup table), but is unable to. A call instruction 
might be required if the function is called indirectly via a pointer, but if the hardware 
stack is already full, an additional call will cause a stack overflow.
(1401) eeprom qualified variables can’t be accessed from both interrupt and mainline code
(Code Generator)
All eeprom variables are accessed via routines which are not reentrant. Code might fail 
if an attempt is made to access eeprom-qualified variables from interrupt and main-line 
code. Avoid accessing eeprom variables in interrupt functions.
(1402) a pointer to eeprom can’t also point to other data types
(Code Generator)
A pointer cannot have targets in both the eeprom space and ordinary data space.
(1403)  pragma "*" ignored
(Parser)
The pragma you have specified has no effect and will be ignored by the compiler. This 
message may only be issued in C18 compatibility mode.
#pragma varlocate "mySection" fred  // oops -- not accepted
(1404) unsupported: *
(Parser)
The unsupported __attribute__ has been used to indicate that some code 
feature is not supported.
The message printed will indicate the feature that is not supported and which should 
be avoided.
(1405)  storage class specifier "*" ignored
(Parser)
The storage class you have specified is not required and will be ignored by the com-
piler. This message may only be issued in C18 compatibility mode.
int procInput(auto int inValue)  // oops -- no need for auto
{ ...
downloadlike
ArtboardArtboardArtboard
Report Bug