From: borutr Date: Sat, 1 Dec 2007 15:07:42 +0000 (+0000) Subject: * sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/mem.cc: X-Git-Url: https://git.gag.com/?p=fw%2Fsdcc;a=commitdiff_plain;h=80389380ff28b4697e85edd6a0cf30bd00759745 * sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/mem.cc: corrected handling of the highest_valid_address git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@4974 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- diff --git a/ChangeLog b/ChangeLog index 01d654a4..bc017136 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-12-01 Borut Razem + + * sim/ucsim/cmd.src/cmdmem.cc, sim/ucsim/cmd.src/mem.cc: + corrected handling of the highest_valid_address + 2007-11-17 Raphael Neider * src/pic/main.c (_asmCmd): include debug arguments (-g as $3) diff --git a/sim/ucsim/cmd.src/cmdmem.cc b/sim/ucsim/cmd.src/cmdmem.cc index 3aafc9a1..b2cdcaa7 100644 --- a/sim/ucsim/cmd.src/cmdmem.cc +++ b/sim/ucsim/cmd.src/cmdmem.cc @@ -2,7 +2,7 @@ * Simulator of microcontrollers (cmd.src/cmdmem.cc) * * Copyright (C) 2001,01 Drotos Daniel, Talker Bt. - * + * * To contact author send email to drdani@mazsola.iit.uni-miskolc.hu * */ @@ -151,7 +151,7 @@ COMMAND_DO_WORK_UC(cl_memory_createaddressdecoder_cmd) cmdline->param(4) }; class cl_memory *as= 0, *chip= 0; t_addr as_begin= 0, as_end= 0, chip_begin= 0; - + if (cmdline->syntax_match(uc, MEMORY MEMORY)) { as= params[0]->value.memory.memory; as_end= as->highest_valid_address(); @@ -201,7 +201,7 @@ COMMAND_DO_WORK_UC(cl_memory_createaddressdecoder_cmd) else if (chip_begin >= chip->get_size()) con->dd_printf("Wrong chip area specification\n"); else if (as_begin < as->start_address || - as_end >= as->highest_valid_address()) + as_end > as->highest_valid_address()) con->dd_printf("Specified area is out of address space\n"); else if (as_end-as_begin > chip->get_size()-chip_begin) con->dd_printf("Specified area is out of chip size\n"); diff --git a/sim/ucsim/sim.src/mem.cc b/sim/ucsim/sim.src/mem.cc index b0bc0d41..a3508cfe 100644 --- a/sim/ucsim/sim.src/mem.cc +++ b/sim/ucsim/sim.src/mem.cc @@ -2,27 +2,27 @@ * Simulator of microcontrollers (mem.cc) * * Copyright (C) 1999,99 Drotos Daniel, Talker Bt. - * + * * To contact author send email to drdani@mazsola.iit.uni-miskolc.hu * */ -/* +/* This file is part of microcontroller simulator: ucsim. - + UCSIM is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. - + UCSIM is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. - + You should have received a copy of the GNU General Public License along with UCSIM; see the file COPYING. If not, write to the Free - Software Foundation, 59 Temple Place - Suite 330, Boston, MA + Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /*@1@*/ @@ -175,12 +175,12 @@ cl_memory::dump(t_addr start, t_addr stop, int bpl, class cl_console_base *con) if (stop > hva) stop= hva; while ((start <= stop) && - (start < hva)) + (start <= hva)) { con->dd_printf(addr_format, start); con->dd_printf(" "); for (i= 0; (i < bpl) && - (start+i < hva) && + (start+i <= hva) && (start+i <= stop); i++) { @@ -198,7 +198,7 @@ cl_memory::dump(t_addr start, t_addr stop, int bpl, class cl_console_base *con) i++; } for (i= 0; (i < bpl) && - (start+i < hva) && + (start+i <= hva) && (start+i <= stop); i++) { @@ -236,7 +236,7 @@ cl_memory::search_next(bool case_sensitive, a= 0; else a= *addr; - + if (a+len > size) return(DD_FALSE); @@ -361,7 +361,7 @@ cl_hw_operator::read(enum hw_cath skip) if (next_operator) next_operator->read(); - return(d); + return(d); } t_mem @@ -538,9 +538,9 @@ cl_memory_cell::read(enum hw_cath skip) return(operators->read(skip)); return(*data); } - + t_mem -cl_memory_cell::get(void) +cl_memory_cell::get(void) { return(*data); } @@ -717,7 +717,7 @@ cl_address_space::~cl_address_space(void) delete dummy; } - + t_mem cl_address_space::read(t_addr addr) { @@ -997,7 +997,7 @@ cl_address_space::set_brk(t_addr addr, class cl_brk *brk) default: //e= '.'; op= 0; - break; + break; } if (op) cell->append_operator(op); @@ -1255,7 +1255,7 @@ bool cl_address_decoder::shrink_out_of(t_addr begin, t_addr end) { t_addr a= as_begin; - + if (!address_space) return(DD_TRUE); if (begin > a) diff --git a/support/regression/tests/bug-1817005.c b/support/regression/tests/bug-1817005.c new file mode 100644 index 00000000..7d80f48a --- /dev/null +++ b/support/regression/tests/bug-1817005.c @@ -0,0 +1,19 @@ +/* bug-1817005.c + */ + +#include + +/* this is an assemble time test, so it doesn't have to be executed */ + +int +function_with_really_long_name(void) +{ + return 0; +} + +/* dummy test function */ + +void +testDummy(void) +{ +} diff --git a/support/regression/tests/test-1817005.c b/support/regression/tests/test-1817005.c deleted file mode 100644 index 7d80f48a..00000000 --- a/support/regression/tests/test-1817005.c +++ /dev/null @@ -1,19 +0,0 @@ -/* bug-1817005.c - */ - -#include - -/* this is an assemble time test, so it doesn't have to be executed */ - -int -function_with_really_long_name(void) -{ - return 0; -} - -/* dummy test function */ - -void -testDummy(void) -{ -}