// co-kc51.lnt - 2/27/2007 // Compiler Options for the Keil C51 Compiler Version 8 // // This file contains options to allow PC-lint to process source // files for your compiler. It is used as follows: // // lint co-kc51.lnt source-file(s) // // You may contact Keil Software, Inc. at: // // 16990 Dallas Parkway, Suite 120 // Dallas, Texas 75248-1903 // Phone: 972-735-8052 Fax: 972-735-8052 // Sales: 800-348-8051 -hsb_3 // formatting options required for MicroVision IDE -format="*** LINT: %(%f(%l) %)%t %n: %m" -width(0,10) // Don't break lines // while processing compiler (library) header files ... -wlib(1) // sets the warning level within library headers to 1 // (no warnings, just syntax errors). Comment out if you // are actually linting library headers. This // option makes obsolete options of the form -elib(axxx) where // xxx >= 400 which may be retained for historical reasons. +v -elib(652) // suppress message about #define of earlier declared symbols -elib(762) // suppress message about multiple identical declarations and -elib(760) // suppress message about multiple identical macro defs +rw(_bit) // activate the _bit datatype +rw(bool) // activate the bool datatype -dbit=bool // #define bit as bool +rw(_gobble) // activate the _gobble keyword // causes _gobble token to be both ignored -dinterrupt=_gobble // defines interrupt to be a _gobble -dusing=_gobble // defines using to be a _gobble -d_at_=@ // defines _at_ to be @ -si2 // integer size: 2 bytes -sp2 // pointer size: 2 bytes +rw(_ignore_init) // activate this keyword +rw(__declspec) // activate this MS keyword -d"sbit=__declspec(selectany) bool" // the __declspec(selectany) has the ... -d"sfr=__declspec(selectany) unsigned char" // effect of allowing ... -d"sfr16=__declspec(selectany) unsigned short" // multiple definitions. -e34 // ignore complaints about non-constant initializers. // this is because of things like: // sbit ResetClock = P3^3; -e430 // ignore complaints about @ mask for function definitions. -e557 // ignore complaints about not recognizing printf formats -sp3 // size of generic pointer is 3 bytes +rw(xdata,pdata,data,bdata,idata,code) // ignore these keywords +rw(small,compact,large,alien) -dreentrant= // ignore reentrant +d__MODEL__=0 // set memory model to small +d__C51__=807 // set C51 compiler version to 4.01 +d__DATE__="09/05/95" // set C51 compiler date macro +d__TIME__="11:55:00" // set C51 compiler time macro +d__FILE__="MYFILE.C" // set C51 compiler file macro +d__LINE__=100 // set C51 compiler line macro +d__STDC__=1 // set C51 compiler STDC macro // But since these types take initializers, objects like those // below are considered to be multiply defined if they appear in // more than one module. Ergo we suppress 14 - Multiply-defined. // Oh what a tangled web we weave ... -esym(14,AA,AC,ACC,ACH0,ACH1,ACH2,ACH3,ACMP,ADCH,ADCON,ADCON0) -esym(14,ADCON1,ADDAT,ADEX,ADM,ADR0,ADR1,ADR2,ADR3,ADRES,ADRES0,ADRES1) -esym(14,ADRES2,ADRES3,ADRES4,ADRES5,ADRES6,ADRES7,AE,AMSK0,AMSK1,ARCON,AUXR) -esym(14,B,BAUD,BCRH0,BCRH1,BCRL0,BCRL1,BD,BGEN,BKOFF,BSY,C1) -esym(14,C1CAP0H,C1CAP0L,C1CAP1H,C1CAP1L,C1CAP2H,C1CAP2L,C1CAP3H,C1CAP3L,C1CAP4H,C1CAP4L,C1CAPM0) -esym(14,C1CAPM1,C1CAPM2,C1CAPM3,C1CAPM4,C1CF0,C1CF1,C1CF2,C1CF3,C1CF4,C1CON,C1EX0) -esym(14,C1EX1,C1EX2,C1EX3,C1EX4,C1MOD,CBP,CC1,CC2,CC3,CC4,CC4EN) -esym(14,CCAP0H,CCAP0L,CCAP1H,CCAP1L,CCAP2H,CCAP2L,CCAP3H,CCAP3L,CCAP4H,CCAP4L,CCAPM0) -esym(14,CCAPM1,CCAPM2,CCAPM3,CCAPM4,CCEN,CCF0,CCF1,CCF2,CCF3,CCF4,CCH1) -esym(14,CCH2,CCH3,CCH4,CCL1,CCL2,CCL3,CCL4,CCON,CEX0,CEX1,CEX2) -esym(14,CEX3,CEX4,CF,CF1,CH,CH1,CIN,CL,CL1,CLK,CM0) -esym(14,CM1,CM2,CM3,CM4,CM5,CM6,CM7,CMEN,CMH0,CMH1,CMH2) -esym(14,CMH3,CMH4,CMH5,CMH6,CMH7,CMI0,CMI1,CMI2,CML0,CML1,CML2) -esym(14,CML3,CML4,CML5,CML6,CML7,CMOD,CMSEL,COUT,CPRL2,CP_RL2,CR) -esym(14,CR0,CR1,CRC,CRCE,CRCH,CRCL,CRE,CSR,CT2,CTCON,CTH0) -esym(14,CTH1,CTH2,CTH3,CTI0,CTI1,CTI2,CTI3,CTL0,CTL1,CTL2,CTL3) -esym(14,CTREL,CTRELH,CTRELL,CY,C_T2,DAPR,DARH0,DARH1,DARL0,DARL1,DCON0) -esym(14,DCON1,DEN,DMA,DPH,DPL,DPSEL,EA,EAD,EADC,EAI,EAL) -esym(14,EC,ECI,ECM0,ECM1,ECM2,ECT0,ECT1,ECT2,ECT3,EDMA0,EDMA1) -esym(14,EFIFO,EGSRE,EGSRV,EGSTE,EGSTV,ENS1,ES,ES0,ES1,ET0,ET1) -esym(14,ET2,Ex,EX0,EX1,EX2,EX3,EX4,EX5,EX6,EXEN2,EXF2) -esym(14,EXICON,F0,F1,FE,FIN,FOUT,FRZ,GMOD,GREN,GRXD,GTXD) -esym(14,HABEN,HCON,HLD,HLDA,HSTAT,I2FR,I3FR,IADC,IBF,ICII,ICOI) -esym(14,IDSM,IE,IE0,IE1,IEA,IEN0,IEN1,IEN2,IEP,IEX2,IEX3) -esym(14,IEX4,IEX5,IEX6,IFI,IFRS,IFS,IMIN,IMOUT,INT0,INT1,INT2) -esym(14,INT3,INT4,INT5,INT6,IP,IP0,IP1,IPA,IPA1,IPN1,IRCON) -esym(14,IRPR,IT0,IT1,ITHR,IWPR,LNI,MA0,MA1,MB0,MB1,MD0) -esym(14,MD1,MD2,MD3,MD4,MD5,MODE,MX0,MX1,MX2,MYSLOT,NOACK) -esym(14,OBF,OBFC,OFDCON,OFI,OFRS,ORPR,OTHR,OV,OVR,OWPR,P) -esym(14,P0,P1,P2,P3,P4,P5,P6,P7,P8,PAD,PAI) -esym(14,PCM0,PCM1,PCM2,PCON,PCT0,PCT1,PCT2,PCT3,PDMA0,PDMA1,PFIFO) -esym(14,PGSRE,PGSRV,PGSTE,PGSTV,PPC,PRBS,PS,PS0,PS1,PSW,PT0) -esym(14,PT1,PT2,PWM0,PWM1,PWMP,PX0,PX1,RB8,RCABT,RCAP2H,RCAP2L) -esym(14,RCLK,RD,RDN,REN,RFIFO,RFNE,RI,RS0,RS1,RSTAT,RTE) -esym(14,RXC,RXD,S0BUF,S0CON,S1ADR,S1BUF,S1CON,S1DAT,S1REL,S1STA,SADDR) -esym(14,SADEN,SARH0,SARH1,SARL0,SARL1,SBUF,SCON,SEPCLK,SEPCON,SEPDAT,SEPIO) -esym(14,SEPSTA,SI,SLCON,SLOTTM,SM0,SM1,SM2,SP,SSTAT,STA,STE) -esym(14,STO,SWDT,T0,T1,T2,T20V,T2CM,T2CON,T2EX,T2I0,T2I1) -esym(14,T2IE,T2IP,T2MOD,T2PS,T2R0,T2R1,T2RSE,T3,TB8,TCDCNT,TCDT) -esym(14,TCLK,TCON,TDN,TEN,TF0,TF1,TF2,TFIFO,TFNF,TH0,TH1) -esym(14,TH2,TI,TL0,TL1,TL2,TM2CON,TM2IR,TMH2,TML2,TMOD,TR0) -esym(14,TR1,TR2,TSTAT,TXC,TXD,UR,WDT,WDTCON,WDTDIS,WDTH,WDTL) -esym(14,WDTLB,WDTREL,WDTUB,WR,XPAGE,SRELL,SYSCON,SRELH,ADDATH,ADDATL) // The following functions exhibit variable return modes. // That is, they may equally-usefully be called for a value // as called just for their effects. Accordingly we inhibit // Warning 534 for these functions. // Feel free to add to or subtract from this list. -esym(534,close,creat,fclose,fprintf,fputc) -esym(534,fputs,fscanf,fseek,fwrite,lseek,memcpy,memmove,memset) -esym(534,printf,putchar,puts,scanf,sprintf,sscanf,strcat,strcpy) -esym(534,strncat,strncpy,unlink,write) -emacro(413,offsetof) // use of NULL pointer creates a stir -emacro(545,offsetof) // addressing an array member is OK