Many signedness and type propagation fixes
[fw/sdcc] / ChangeLog
index 8e188eb52f3e244dd6d716cd375e0f891d87bcbe..c6d252c523a823d0dfe65b95dd1dabab4f311e53 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,141 @@
+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