+2004-01-01 Bernhard Held <bernhard@bernhardheld.de>
+
+ Many signedness and type propagation fixes:
+ * src/SDCCicode.c: made geniCodeCast() static
+ replaced SPEC_ by IS_ (cosmetic)
+ (operandOperation): fixed div and mod operation
+ (usualBinaryConversions): added support for promotion of char
+ (geniCodeMultiply): replaced (unsigned long) by (TYPE_UDWORD)
+ (geniCodeDivision): replaced (unsigned long) by (TYPE_UDWORD)
+ (geniCodeAdd): an array index will stay unsigned, even if promoted
+ from char to int
+ (geniCodeArray): ditto
+ * src/SDCCicode.h: made geniCodeCast() static: removed prototype
+ * src/SDCCsymt.c (computeType): added more support for char;
+ promotion of char is selectable by promoteCharToInt, fixed signedness
+ for all cases
+ (powof2): replaced (unsigned long) by (TYPE_UDWORD)
+ * src/SDCCsymt.h (powof2): replaced (unsigned long) by (TYPE_UDWORD)
+ * src/SDCCval (val*): replaced signedness calculation by
+ computeType()
+ rearranged if-branches (cosmetic)
+ (valShift): added warning W_SHIFT_CHANGED
+ (valCompare): fixed problem with different types
+ * src/hc08/rallo.c (leastUsedLR): fixed gcc 3.3 warning
+ * support/regression/tests/literalop.c: added many cases
+ * support/regression/tests/ast_constant_folding.c: changed finally to
+ 'unsigned int'
+ * .version: new year, new version: 2.3.7
+
+2004-01-01 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * src/SDCCsymt.h: missing from yesterday's commits
+
+2003-12-31 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * src/SDCC.y (struct_or_union_specifier),
+ * support/Util/SDCCerr.c,
+ * support/Util/SDCCerr.h: verify that struct & union tags are used
+ as declared.
+
+2003-12-29 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * src/SDCCglobl.h: missing from yesterday's commits
+
+2003-12-28 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * src/SDCC.y (external_definition, type_specifier2, sfr_reg_bit,
+ sft_attributes, struct_declaration, parameter_declaration,
+ type_name, start_block, declaration_list),
+ * src/SDCC.lex (check_type): support redefinition of typedef names
+
+2003-12-22 Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+ * src/mcs51/gen.c (genPlus): added special handling for 256 byte
+ aligned xdata arrays. Erik helped me with the if clause.
+
+2003-12-20 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * device/lib/ds390/tinibios.c (CpuSpeed): suppress unreachable code
+ warning
+
+2003-12-20 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * src/SDCCast.h,
+ * src/SDCCast.c (newAst_),
+ * src/SDCCicode.h,
+ * src/SDCCicode.c (ast2iCode, newiCode),
+ * src/SDCCglobl.h,
+ * src/SDCC.y (logical_and_expr, logical_or_expr, conditional_expr,
+ expr, statement, expression_statement, selection_statement,
+ iteration_statement, expr_opt, jump_statement): foundation for tracking
+ sequence points
+ * src/SDCCopt.c (killDeadCode): fixed bug #861580 (needs the sequence
+ point code too)
+
+2003-12-19 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * support/Util/SDCCerr.c,
+ * src/SDCCast.h,
+ * src/SDCCast.c (createCase, createDefault, decorateType),
+ * src/SDCClabel.c (labelUnreach),
+ * src/SDCC.y (labeled_statement, jump_statement): More improvements
+ to error messages.
+ * support/Util/SDCCerr.c (werrorfl): fixed a non-standard declaration
+ (with thanks to Stas Sergeev)
+ * device/include/time.h,
+ * device/lib/time.c (CheckTime): suppress unreachable code warning
+
+2003-12-18 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * src/SDCCast.c (createIvalCharPtr),
+ * src/SDCCglue.c (printChar): fixed bug #862241 (an error in my fix for
+ bug #753752)
+ * support/regression/tests/nullstring.c: tests for these two bugs
+
+2003-12-18 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * support/Util/SDCCerr.h,
+ * support/Util/SDCCerr.c (E_NOT_ALLOWED),
+ * src/SDCC.y (struct_declaration, struct_or_union_specifier): complain
+ about storage class and 'at' used inside struct or union
+ * src/SDCCBBlock.c (iCodeFromeBBlock),
+ * src/SDCCcse.c (ifxOptimize),
+ * src/SDCCglue.c (emitRegularMap, initPointer, printIvalStruct,
+ printIvalArray, printiValFuncPtr, printIvalCharPtr, printIvalPtr,
+ printIval, emitStaticSeg, emitOverlay),
+ * src/SDCClabel.c (deleteIfx),
+ * src/SDCCopt.c (replaceRegEqv, eBBlockFromiCode),
+ * src/SDCCast.c (resolveSymbols, createIvalStruct, createIvalArray,
+ gatherAutoInit, processParms),
+ * support/Util/SDCCerr.h,
+ * support/Util/SDCCerr.c (werrorfl): Support for better error location
+ reporting for post-parse errors.
+
+2003-12-16 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * src/SDCCval.c (valPlus, valMinus, valShift): fixed some problems with
+ implicit casts via union; they don't work on big endian systems
+ (possible fix for bug #861138)
+
+2003-12-16 Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+ (committed by Erik Petrich <epetrich@ivorytower.norman.ok.us> on Frieder's behalf)
+ * src/mcs51/main.c: fixed the fix for bug #737001
+
+2003-12-15 Borut Razem <borut.razem@siol.net>
+
+ * support/scripts/sdcc.nsi: updated for NSIS 2.0 beta 4
+
+2003-12-14 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * support/makebin/makebin.c: put output in binary mode
+
+2003-12-13 Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+ * src/mcs51/main.c: fixed bug #737001 for the mcs51. SDCC clears
+ xdata and data memory on startup. Set the environment variable
+ SDCC_NOGENRAMCLEAR to disable this.
+ * src/mcs51/peephole.def,
+ * src/ds390/peephole.def: using the atomic test and clear instruction jbc
+ (allows non-interrupt and interrupt code to safely compete for a resource
+ without the non-interrupt code having to disable interrupts)
+
+2003-12-13 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * src/SDCCicode.c (geniCodeAdd),
+ * src/SDCCast.c (decorateType): fixed bug #857753 (need to be careful
+ with valFromType if type might be a pointer and host is big endian).
+ * src/SDCCast.c (decorateType): unary plus compatible with all arithmetic
+ types, not just integer types.
+ * src/SDCCsymt.c (addSymChain): clarified error message when symbol is
+ multiply defined with mismatching "at" address.
+
+2003-12-12 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * src/ds390/main.c (PORT tininative_port): fixed bug #858416
+ * src/SDCCglue.c (printChar, printIvalChar, emitStaticSeg),
+ * src/SDCCast.c (createIvalCharPtr, stringToSymbol): handle strings
+ with embedded nulls (fixed bug #753752)
+
+2003-12-12 Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+ * src/mcs51/main.c(_mcs51_genRAMCLEAR): using r0 instead of r1/r2.
+ Apparently this did not see much testing (endless loop)
+
+2003-12-11 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * src/z80/ralloc.c: set DISABLE_PACK_HL = 1 as a temporary fix to bug #855165
+
+2003-12-10 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * src/SDCCdebug.c (outputDebugSymbols, outputDebugStackSymbols, dumpSymInfo):
+ gracefully handle NULL memmap pointers
+
+2003-12-08 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * src/SDCCopt.c (killDeadCode): change iCode type to DUMMY_READ_VOLATILE
+ instead of deleting the iCode when an operand is volatile
+ * src/z80/gen.c (genDummyRead),
+ * src/mcs51/gen.c (genDummyRead),
+ * src/ds390/gen.c (genDummyRead),
+ * src/hc08/gen.c (genDummyRead): handle operands in IC_LEFT and/or IC_RIGHT,
+ not just IC_RIGHT
+ * src/SDCCicode.c (geniCodeCall): fixed bug #851607
+ * src/SDCC.y: fixed bug #850420
+
+2003-12-05 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ Applied z80 i/o port patch from Peter Townson and fixed some operators
+ to better handle operands in A register.
+ * device/include/z180.h
+ * src/SDCC.y
+ * src/SDCCglue.c
+ * src/z80/gen.c
+ * src/z80/gen.h
+ * src/z80/main.c
+ * src/z80/peeph-z80.def
+ * src/z80/peeph.def
+ * src/z80/z80.h
+
+2003-12-03 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * src/SDCCsymt.c (addSymChain, compareTypeExact): fixed bug #838241 again
+
+2003-12-01 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * device/lib/hc08/_mullong.c: Removed extra #endif
+
+2003-12-01 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * sim/ucsim/hc08.src/inst.cc,
+ * sim/ucsim/hc08.src/hc08mac.h: fixed some problems with CC flag bits and
+ carries from x to h
+ * src/hc08/gen.c (aopAdrStr): fixed problem with 16 bit immediate
+ * src/hc08/gen.c (XAccRsh): fixed problem with right shift
+ * device/include/stdarg.h: fixed varargs for hc08
+ * device/lib/Makefile.in,
+ * device/lib/hc08/Makefile,
+ * device/lib/hc08/_mulint.c,
+ * device/lib/hc08/_mullong.c: fixed some endian problems
+
+2003-11-28 Frieder Ferlemann <Frieder.Ferlemann@web.de>
+
+ * sdcc/src/mcs51/gen.c (genMultOneByte): help peephole 105
+ * sdcc/src/mcs51/peeph.def: added peephole 186.e array access in code space
+ * device/lib/_gptrget.c,
+ * device/lib/_gptrput.c: P2 not used any more (related to #850747, #785979)
+
+2003-11-27 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * src/SDCClrange.c (findNextUseSym, rlivePoint): fixed bug #849795
+ * src/SDCCast.c (astErrors): fixed bug #846007
+ * src/SDCCsymt.c (checkFunction): fixed follow-up bug on bug #846007
+
+2003-11-26 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * src/SDCCast.c (decorateType): disabled a transformation I added in
+ revision 1.188 (access to fields of a structure at an absolute address);
+ it breaks with bitfields, extern declarations, and gcse analysis.
+ * src/SDCCopt.c (isLocalWithoutDef): if ADDRESS_OF applied to a symbol, it
+ could be assigned through a pointer, so don't complain.
+ * src/SDCCast.c (astErrors),
+ * src/SDCCast.h,
+ * src/SDCCglue.c (emitRegularMap): fixed bug #847813
+
+2003-11-26 Vangelis Rokas <vrokas@otenet.gr>
+
+ * src/pic16/main.c (_pic16_genIVT): fixed interrupt vector table
+ * src/pic16/main.c (_pic16_genAssemblerPreamble): re-enabled the
+ output of __config directives, since gpasm now supports them
+ * src/pic16/main.c (_pic16_finaliseOptions): define MCU
+ pre-processor macro, i.e. -DMCU=p18f452
+ * src/pic16/ralloc.c: renamed packRegisters to pic16_packRegisters,
+ and modified to handle 'cast' icode similarly to '=' icode
+ * src/pic16/device.h (typedef struct PIC_device): added field
+ 'extMIface' to indicate that chip has external memory interface
+ * src/pic16/device.c: added chips 18F248, 18F258, 18F448, 18F458,
+ 18F6520, 18F6620, 18F6680, 18F6720, 18F8520, 18F8620, 18F8680,
+ 18F8720
+
+2003-11-26 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ * src/SDCC.y (pointer): fixed bug #846006
+ * support/Util/SDCCerr.c: made W_PTR_TYPE_INVALID message clearer
+ * src/SDCCast.c (decorateType): fixed bug #846009
+ * src/ds390/peeph.def,
+ * src/ds390/gen.c (genAnd, genOr),
+ * src/mcs51/peeph.def,
+ * src/mcs51/gen.c (genAnd, genOr): fixed bug #846777
+
+2003-11-25 Erik Petrich <epetrich@ivorytower.norman.ok.us>
+
+ Fixed several common-sub-expression bugs (#772861, #768380, & #755323)
+ * src/SDCCdflow.c
+ * src/SDCCcse.c
+ * src/SDCCcse.h
+ * src/SDCCBBlock.h
+ * src/SDCCBBlock.c
+
+2003-11-23 Klaus Flittner <klaus_flittner@gmx.de>
+
+ fixed bug #845089
+ * src/SDCCbitv.h,
+ * src/SDCCbitv.c: added function to free a bitvector
+ * src/SDCClrange.h,
+ * src/SDCClrange.c: added function to recompute the liveranges
+ * src/avr/ralloc.c,
+ * src/ds390/ralloc.c,
+ * src/hc08/ralloc.c,
+ * src/mcs51/ralloc.c,
+ * src/pic/ralloc.c,
+ * src/pic16/ralloc.c,
+ * src/xa51/ralloc.c,
+ * src/z80/ralloc.c: recompute the liveranges after register packing
+
+2003-11-21 Klaus Flittner <klaus_flittner@gmx.de>
+
+ * src/SDCCloop.c (newInduction): fixed bug #845630
+
2003-11-21 Erik Petrich <epetrich@ivorytower.norman.ok.us>
* src/SDCCsymt.c (compareTypesExact): disabled debugging output