Messages 1500 Thru 1999

(1500) invalid token in #if expression (Preprocessor)

There is a malformed preprocessor expression.
#define LABEL
#define TEST 0
#if (LABEL == TEST) // oops--LABEL has no replacement text

(1504) the PIC18 extended instruction set was enabled but is not supported by this compiler (Parser)

The MPLAB XC8 compiler does not support generation of code using the PIC18 extended instruction set. The extended instruction set configuration bit must always be disabled.
#pragma config XINST=ON  // oops--this must be disabled at all times

(1505) interrupts not supported by this device (Code Generator)

You have attempted to define an interrupt function for a device that does not support interrupts.
void interrupt myIsr(void)  // oops--nothing will trigger this
{ ... }

(1506) multiple interrupt functions (* and *) defined at interrupt level * (Code Generator)

More than one interrupt function has been defined for the same priority.
void interrupt low_priority
isr(void)
{ ... }
void interrupt low_priority	// oops--you can have two ISRs
loisr(void)				// with the same priority
{ ... }

(1507) asmopt state popped when there was no pushed state (Assembler)

The state of the assembler optimizers was popped in assembly code but there was no corresponding push.
movlw  20h
movwf  LATB
opt asmopt_pop; oops--there was never a state pushed

(1508) specifier “__ram” ignored (Parser)

This pointer-target specifier cannot be used with an ordinary variable and it will be ignored. Confirm that this definition was not meant to indicate a pointer type.
__ram int ip;   // oops -- was this meant to be a pointer?

(1509) specifier “__rom” ignored (Parser)

This pointer-target specifier cannot be used with an ordinary variable and it will be ignored. Confirm that this definition was not meant to indicate a pointer type.
const __rom int cip;   // oops -- was this meant to be a pointer?

(1510) non-reentrant function “*” appears in multiple call graphs and has been duplicated by the compiler (Code Generator)

This message indicates that the generated output for a function has been duplicated since it has been called from both main-line and interrupt code. It does not indicate a potential code failure. If you do not want function output duplicated, consider using the hybrid stack model (if possible), or restructure your source code.

(1511) stable/invariant mode optimizations no longer implemented; option will be ignored 
 (Driver)

This option is no longer available and has been ignored.

(1512) stable/invariant mode optimizations no longer implemented; specifier will be ignored (Code Generator)

This specifier is no longer available and has been ignored.

(1513) target “*” of pointer “*” not in the memory space specified by * (Code Generator)

The pointer assigned an address by this statement was defined using a pointer-target specifier. This assignment might be assigning addresses to the pointer that conflict with that memory space specifier.
__rom int * ip;
int foobar;
ip = &foobar;  // oops -- foobar is in data memory, not program memory

(1514) “__ram” and “__rom” specifiers are mutually exclusive (Parser)

Use of both the __ram and __rom pointer-target specifiers with the same pointer does not make sense. If a pointer should be able to represent targets in any memory space, do not use either of these specifiers.
// oops -- you can’t limit ip to only point to objects in ram and
// also only point to objects in rom
__ram __rom int * ip;

(1515) disabling OCG optimizations for this device is not permitted (Driver)

Due to memory limits, projects targeting some devices cannot be built. Ensure that the OCG category of optimization is enabled.

(1516) compiler does not support 64-bit integers on the target architecture

Due to memory restrictions, the current device cannot support 64-bit integers and a smaller integer will be used instead. Choose a type smaller than long long to suppress this warning.
long long int result;  // oops - this will not be 64-bits wide

(1517) peripheral library support only available for C90 (Driver)

The legacy peripheral library was build for the C90 standard and cannot reliably be used for other C standards.

(1518) * function call made with an incomplete prototype (*) (Code Generator)

A function has been called with the compiler not having seen a complete prototype for that function. Check for an empty parameter list in the declaration.
void foo();  // oops -- how will this call be encoded?
int main(void)
{
    foo();
}

1519 note-psects will ignore optimisation-related psect flags (Assembler)

Psects using the note psect flag cannot be optimized and any additional psect flags which request optimization will be ignored. Psects using the note flag typically contain debug information not related to your project code.

1520 malformed mapfile while generating summary: no space at position * (Driver)

While printing the memory summary after compilation, the psect information read in from the map file was malformed.

1521 internal error encountered creating DWARF information; contact Microchip support with details (Cromwell)

This is an internal compiler error. Contact Microchip Technical Support with details.