public inbox for sid@sourceware.org
 help / color / mirror / Atom feed
* [patch][rfc] Remove 'throw()' Specifiers from Virtual Destructors  in the SID API
@ 2007-01-16 20:11 Dave Brolley
  2007-02-06 20:01 ` Dave Brolley
  0 siblings, 1 reply; 2+ messages in thread
From: Dave Brolley @ 2007-01-16 20:11 UTC (permalink / raw)
  To: sid

[-- Attachment #1: Type: text/plain, Size: 1179 bytes --]

Hi,

There is a SID port to the Toshiba Media Processor (MeP), which I will 
be submitting very soon. Toshiba has their own simulator for this target 
and it has an API which allows programmers to add their own devices to 
the simulation. Toshiba required that the SID port for this target also 
implement this API and support existing code written against it.

The implementation extends the API of a SID component with the methods 
required by the Toshiba API using a wrapper component. Each user-defined 
component then inherits from the wrapper component.

The problem comes with existing user code which does not specify a 
throw() specifier on its destructors. Newer releases of gcc enforce the 
requirement that the throw() specifier on the destructor of an 
inheriting class can not be less strict than that of the parent class(es).

Now, specifying throw() on a destructor is a minor optimization 
opportunity at best, so it is preprosed that these specifiers be removed 
from the SID API in order to allow extension of the SID API to match 
that of other existing APIs, like Toshiba's.

The attached patch does just that. I'm seeking approval to commit.

Thanks,
Dave


[-- Attachment #2: sid.throw.ChangeLog --]
[-- Type: text/plain, Size: 522 bytes --]

sid/component/memory/ChangeLog:
2007-01-16  Dave Brolley  <brolley@redhat.com>

	* generic.cxx (~generic_memory): Remove throw() specifier.
	* generic.h (~generic_memory): Likewise.

sid/include/ChangeLog:
2007-01-16  Dave Brolley  <brolley@redhat.com>

	* sidattrutil.h: Remove throw() specifiers from all virtual
	destructors.
	* sidblockingutil.h: Likewise.
	* sidbusutil.h: Likewise.
	* sidcomp.h: Likewise.
	* sidcomputil.h: Likewise.
	* sidcpuutil.h: Likewise.
	* sidmiscutil.h: Likewise.
	* sidpinutil.h: Likewise.

[-- Attachment #3: sid.throw.patch.txt --]
[-- Type: text/plain, Size: 24513 bytes --]

Index: sid/component/memory/generic.cxx
===================================================================
RCS file: /cvs/src/src/sid/component/memory/generic.cxx,v
retrieving revision 1.8
diff -c -p -r1.8 generic.cxx
*** sid/component/memory/generic.cxx	10 Jun 2003 18:27:10 -0000	1.8
--- sid/component/memory/generic.cxx	16 Jan 2007 19:43:06 -0000
*************** generic_memory::generic_memory() throw (
*** 89,95 ****
  }
  
  
! generic_memory::~generic_memory () throw()
  {
    assert (this->buffer);
    if (this->mmapping_p)
--- 89,95 ----
  }
  
  
! generic_memory::~generic_memory ()
  {
    assert (this->buffer);
    if (this->mmapping_p)
Index: sid/component/memory/generic.h
===================================================================
RCS file: /cvs/src/src/sid/component/memory/generic.h,v
retrieving revision 1.5
diff -c -p -r1.5 generic.h
*** sid/component/memory/generic.h	3 Aug 2001 06:02:46 -0000	1.5
--- sid/component/memory/generic.h	16 Jan 2007 19:43:06 -0000
***************
*** 1,6 ****
  // generic.h - Header for the generic_memory class.  -*- C++ -*-
  
! // Copyright (C) 1999-2001 Red Hat.
  // This file is part of SID and is licensed under the GPL.
  // See the file COPYING.SID for conditions for redistribution.
  
--- 1,6 ----
  // generic.h - Header for the generic_memory class.  -*- C++ -*-
  
! // Copyright (C) 1999-2001, 2007 Red Hat.
  // This file is part of SID and is licensed under the GPL.
  // See the file COPYING.SID for conditions for redistribution.
  
*************** class generic_memory: public virtual com
*** 69,75 ****
  {
  public:
    generic_memory() throw (bad_alloc);
!   ~generic_memory() throw ();
  
  protected:
    // memory buffers
--- 69,75 ----
  {
  public:
    generic_memory() throw (bad_alloc);
!   ~generic_memory();
  
  protected:
    // memory buffers
Index: sid/include/sidattrutil.h
===================================================================
RCS file: /cvs/src/src/sid/include/sidattrutil.h,v
retrieving revision 1.9
diff -c -p -r1.9 sidattrutil.h
*** sid/include/sidattrutil.h	27 Mar 2006 20:30:06 -0000	1.9
--- sid/include/sidattrutil.h	16 Jan 2007 19:43:07 -0000
***************
*** 2,8 ****
  // mappings between application objects and their string
  // representations.  -*- C++ -*-
  
! // Copyright (C) 1999, 2000, 2003, 2005 Red Hat.
  // This file is part of SID and is licensed under the GPL.
  // See the file COPYING.SID for conditions for redistribution.
  
--- 2,8 ----
  // mappings between application objects and their string
  // representations.  -*- C++ -*-
  
! // Copyright (C) 1999, 2000, 2003, 2005, 2007 Red Hat.
  // This file is part of SID and is licensed under the GPL.
  // See the file COPYING.SID for conditions for redistribution.
  
*************** make_attribute (const sid::any_int<IntTy
*** 399,405 ****
    public:
      virtual std::string make_attribute() const = 0;
      virtual sid::component::status parse_attribute(const std::string& str) = 0;
!     virtual ~attribute_coder_base() throw() {}
    };
  
  
--- 399,405 ----
    public:
      virtual std::string make_attribute() const = 0;
      virtual sid::component::status parse_attribute(const std::string& str) = 0;
!     virtual ~attribute_coder_base() {}
    };
  
  
*************** make_attribute (const sid::any_int<IntTy
*** 431,437 ****
      parse_attribute (const std::string& str)
        { return (receiver->*setter) (str); }
  
!     ~attribute_coder_virtual() throw() { }
    };
  
  
--- 431,437 ----
      parse_attribute (const std::string& str)
        { return (receiver->*setter) (str); }
  
!     ~attribute_coder_virtual() { }
    };
  
  
*************** make_attribute (const sid::any_int<IntTy
*** 455,461 ****
      parse_attribute (const std::string& str)
        { return receiver->set_attribute_value (name, str); }
  
!     ~attribute_coder_alias() throw() { }
    };
  
  
--- 455,461 ----
      parse_attribute (const std::string& str)
        { return receiver->set_attribute_value (name, str); }
  
!     ~attribute_coder_alias() { }
    };
  
  
*************** make_attribute (const sid::any_int<IntTy
*** 498,504 ****
  	return (receiver->*setter) (parameter, str);
        }
  
!    ~attribute_coder_virtual_parameterized() throw() { }
  
    };
  
--- 498,504 ----
  	return (receiver->*setter) (parameter, str);
        }
  
!    ~attribute_coder_virtual_parameterized() { }
  
    };
  
*************** make_attribute (const sid::any_int<IntTy
*** 523,529 ****
  	return sidutil::parse_attribute (str, *ptr);
        }
  
!     ~attribute_coder() throw() { }
    };
  
  
--- 523,529 ----
  	return sidutil::parse_attribute (str, *ptr);
        }
  
!     ~attribute_coder() { }
    };
  
  
*************** make_attribute (const sid::any_int<IntTy
*** 543,549 ****
  	return sid::component::bad_value;
        }
      
!     ~attribute_coder_ro() throw() { }
    };
  
  
--- 543,549 ----
  	return sid::component::bad_value;
        }
      
!     ~attribute_coder_ro() { }
    };
  
  
*************** make_attribute (const sid::any_int<IntTy
*** 568,574 ****
  	return sid::component::bad_value; 
        }
      
!     ~attribute_coder_ro_value() throw() { }
   
    };
  
--- 568,574 ----
  	return sid::component::bad_value; 
        }
      
!     ~attribute_coder_ro_value() { }
   
    };
  
*************** make_attribute (const sid::any_int<IntTy
*** 632,638 ****
  	else return sid::component::bad_value;
        }
      
!     ~attribute_coder_bus_rw() throw() { }
    };
  
  
--- 632,638 ----
  	else return sid::component::bad_value;
        }
      
!     ~attribute_coder_bus_rw() { }
    };
  
  
*************** make_attribute (const sid::any_int<IntTy
*** 675,681 ****
  	return s;
        }
  
!    ~attribute_coder_bus_wo() throw() { }
  
    private:
      std::string last_written_attribute;
--- 675,681 ----
  	return s;
        }
  
!    ~attribute_coder_bus_wo() { }
  
    private:
      std::string last_written_attribute;
*************** make_attribute (const sid::any_int<IntTy
*** 719,725 ****
      // the compiler working set blew up.
      
    protected:
!     ~fixed_attribute_map_component () throw() { /* XXX: delete coder objects */ }
  
      // Add or remove an attribute <-> category association.  The named
      // attribute must already exist.
--- 719,725 ----
      // the compiler working set blew up.
      
    protected:
!     ~fixed_attribute_map_component () { /* XXX: delete coder objects */ }
  
      // Add or remove an attribute <-> category association.  The named
      // attribute must already exist.
*************** make_attribute (const sid::any_int<IntTy
*** 1031,1037 ****
  			       & configurable_component::dynamic_config,
  			       & configurable_component::nothing);
        }
!     ~configurable_component() throw() {}
  
      // Dynamic reconfiguration support
    private:
--- 1031,1037 ----
  			       & configurable_component::dynamic_config,
  			       & configurable_component::nothing);
        }
!     ~configurable_component() {}
  
      // Dynamic reconfiguration support
    private:
*************** make_attribute (const sid::any_int<IntTy
*** 1070,1076 ****
  	add_pin ("ulog-out", & ulog_out_pin);
  	ulog_logger =  new logger (& ulog_out_pin, buffer_output, ulog_level, ulog_mode);
        }
!     ~fixed_attribute_map_with_logging_component () throw()
        {
  	// Output any saved messages.
  	ulog_logger->output_saved_messages ();
--- 1070,1076 ----
  	add_pin ("ulog-out", & ulog_out_pin);
  	ulog_logger =  new logger (& ulog_out_pin, buffer_output, ulog_level, ulog_mode);
        }
!     ~fixed_attribute_map_with_logging_component ()
        {
  	// Output any saved messages.
  	ulog_logger->output_saved_messages ();
Index: sid/include/sidblockingutil.h
===================================================================
RCS file: /cvs/src/src/sid/include/sidblockingutil.h,v
retrieving revision 1.2
diff -c -p -r1.2 sidblockingutil.h
*** sid/include/sidblockingutil.h	2 Aug 2005 18:53:10 -0000	1.2
--- sid/include/sidblockingutil.h	16 Jan 2007 19:43:07 -0000
***************
*** 1,6 ****
  // sidblockingutil.h - Elements used for blockable components.  -*- C++ -*-
  
! // Copyright (C) 2004, 2005 Red Hat.
  // This file is part of SID and is licensed under the GPL.
  // See the file COPYING.SID for conditions for redistribution.
  
--- 1,6 ----
  // sidblockingutil.h - Elements used for blockable components.  -*- C++ -*-
  
! // Copyright (C) 2004, 2005, 2007 Red Hat.
  // This file is part of SID and is licensed under the GPL.
  // See the file COPYING.SID for conditions for redistribution.
  
*************** namespace sidutil
*** 37,43 ****
  			      & blocking_component::set_blockable,
  			      "setting");
        }
!     ~blocking_component () throw()
        {
        }
  
--- 37,43 ----
  			      & blocking_component::set_blockable,
  			      "setting");
        }
!     ~blocking_component ()
        {
        }
  
Index: sid/include/sidbusutil.h
===================================================================
RCS file: /cvs/src/src/sid/include/sidbusutil.h,v
retrieving revision 1.16
diff -c -p -r1.16 sidbusutil.h
*** sid/include/sidbusutil.h	2 Aug 2005 18:53:10 -0000	1.16
--- sid/include/sidbusutil.h	16 Jan 2007 19:43:07 -0000
***************
*** 1,6 ****
  // sidbusutil.h -*- C++ -*- Different types and sizes of buses.
  
! // Copyright (C) 1999, 2000, 2001, 2002, 2004, 2005 Red Hat.
  // This file is part of SID and is licensed under the GPL.
  // See the file COPYING.SID for conditions for redistribution.
  
--- 1,6 ----
  // sidbusutil.h -*- C++ -*- Different types and sizes of buses.
  
! // Copyright (C) 1999, 2000, 2001, 2002, 2004, 2005, 2007 Red Hat.
  // This file is part of SID and is licensed under the GPL.
  // See the file COPYING.SID for conditions for redistribution.
  
*************** namespace sidutil
*** 30,36 ****
    {
    protected:
      word_bus() {}
!     ~word_bus() throw() {}
  
      virtual sid::bus::status word_write(sid::host_int_4 addr,
  					DataType mask,
--- 30,36 ----
    {
    protected:
      word_bus() {}
!     ~word_bus() {}
  
      virtual sid::bus::status word_write(sid::host_int_4 addr,
  					DataType mask,
*************** namespace sidutil
*** 229,235 ****
        {
  	assert (target != 0);
        }
!     ~passthrough_bus() throw() {}
      
      // Some macros to make manufacturing of the cartesian-product
      // calls simpler.
--- 229,235 ----
        {
  	assert (target != 0);
        }
!     ~passthrough_bus() {}
      
      // Some macros to make manufacturing of the cartesian-product
      // calls simpler.
*************** namespace sidutil
*** 281,287 ****
  	this->target = t1;
          this->t[1] = t2;
        }
!     ~mux_passthrough_bus() throw() {}
      void switch_bus()
      {
        // Switch to the next bus if the current one is valid (0 or 1)
--- 281,287 ----
  	this->target = t1;
          this->t[1] = t2;
        }
!     ~mux_passthrough_bus() {}
      void switch_bus()
      {
        // Switch to the next bus if the current one is valid (0 or 1)
*************** namespace sidutil
*** 370,376 ****
        { 
  	assert (target != 0);
        }
!     ~passthrough_word_bus() throw() {}
  
      virtual sid::bus::status word_write(sid::host_int_4 addr,
  					DataType mask,
--- 370,376 ----
        { 
  	assert (target != 0);
        }
!     ~passthrough_word_bus() {}
  
      virtual sid::bus::status word_write(sid::host_int_4 addr,
  					DataType mask,
*************** namespace sidutil
*** 448,454 ****
  	assert (insn_bus != 0);
  	assert (data_bus != 0);
        }
!     ~harvard_bus() throw() {}
  
      sid::bus *map_addr_to_bus (sid::host_int_4 *addr)
        {
--- 448,454 ----
  	assert (insn_bus != 0);
  	assert (data_bus != 0);
        }
!     ~harvard_bus() {}
  
      sid::bus *map_addr_to_bus (sid::host_int_4 *addr)
        {
*************** namespace sidutil
*** 517,523 ****
    {
    protected:
      byte_bus() {}
!     ~byte_bus() throw() {}
      
      virtual sid::bus::status 
      write_data(sid::host_int_4 addr, sid::host_int_1 data) throw () = 0;
--- 517,523 ----
    {
    protected:
      byte_bus() {}
!     ~byte_bus() {}
      
      virtual sid::bus::status 
      write_data(sid::host_int_4 addr, sid::host_int_1 data) throw () = 0;
*************** namespace sidutil
*** 600,606 ****
  			 sid::host_int_4, sid::host_int_1 )
  		      ) : receiver(h), reader(r), writer(w) {}
  
!     ~callback_byte_bus() throw() {}
  
    protected:
      Receiver* receiver;
--- 600,606 ----
  			 sid::host_int_4, sid::host_int_1 )
  		      ) : receiver(h), reader(r), writer(w) {}
  
!     ~callback_byte_bus() {}
  
    protected:
      Receiver* receiver;
*************** namespace sidutil
*** 638,644 ****
  			       sid::host_int_4 address);
      void add_readwrite_register(control_register<DataType>* reg,
  				sid::host_int_4 address);
!     ~control_register_bank () throw () { }
      
    protected:
      typedef std::vector<control_register<DataType>*> reg_vector;
--- 638,644 ----
  			       sid::host_int_4 address);
      void add_readwrite_register(control_register<DataType>* reg,
  				sid::host_int_4 address);
!     ~control_register_bank () { }
      
    protected:
      typedef std::vector<control_register<DataType>*> reg_vector;
*************** namespace sidutil
*** 730,736 ****
    template <typename DataType>
    class value_control_register: public control_register<DataType>
    {
!   private:
      typedef typename DataType::value_type ValueType;
  
    public:
--- 730,736 ----
    template <typename DataType>
    class value_control_register: public control_register<DataType>
    {
!   protected:
      typedef typename DataType::value_type ValueType;
  
    public:
*************** namespace sidutil
*** 1043,1049 ****
    {
    public:
  
!     ~fixed_accessor_map_component() throw() {}
  
      // Returns vector of accessor names to components.
      std::vector<std::string>
--- 1043,1049 ----
    {
    public:
  
!     ~fixed_accessor_map_component() {}
  
      // Returns vector of accessor names to components.
      std::vector<std::string>
*************** namespace sidutil
*** 1133,1139 ****
    class fixed_bus_map_component: public virtual sid::component
    {
    public:
!     ~fixed_bus_map_component() throw() {}
  
      std::vector<std::string>
      bus_names() throw ()
--- 1133,1139 ----
    class fixed_bus_map_component: public virtual sid::component
    {
    public:
!     ~fixed_bus_map_component() {}
  
      std::vector<std::string>
      bus_names() throw ()
*************** namespace sidutil
*** 1214,1220 ****
  	add_pin ("active", & active_pin);
  	active_pin.set_active_high ();
        }
!     ~bus_arbitrator () throw () { }
  
    protected:
      // A bus for requests from the input interfaces.
--- 1214,1220 ----
  	add_pin ("active", & active_pin);
  	active_pin.set_active_high ();
        }
!     ~bus_arbitrator () { }
  
    protected:
      // A bus for requests from the input interfaces.
Index: sid/include/sidcomp.h
===================================================================
RCS file: /cvs/src/src/sid/include/sidcomp.h,v
retrieving revision 1.6
diff -c -p -r1.6 sidcomp.h
*** sid/include/sidcomp.h	10 May 2005 15:48:22 -0000	1.6
--- sid/include/sidcomp.h	16 Jan 2007 19:43:07 -0000
***************
*** 1,7 ****
  // sidcomp.h - Define the external interface of a SID component, that
  // is, the SID component API expressed in -*- C++ -*-.
  
! // Copyright (C) 1999, 2000, 2001, 2004 Red Hat.
  // This file is part of SID and is licensed under the GPL.
  // See the file COPYING.SID for conditions for redistribution.
  
--- 1,7 ----
  // sidcomp.h - Define the external interface of a SID component, that
  // is, the SID component API expressed in -*- C++ -*-.
  
! // Copyright (C) 1999, 2000, 2001, 2004, 2007 Red Hat.
  // This file is part of SID and is licensed under the GPL.
  // See the file COPYING.SID for conditions for redistribution.
  
*************** namespace sid
*** 23,29 ****
    // interopration attempts with obsolete component objects.
  
    const unsigned API_MAJOR_VERSION = 3;
!   const unsigned API_MINOR_VERSION = 2;
  
    // PART 1: Buses
    //
--- 23,29 ----
    // interopration attempts with obsolete component objects.
  
    const unsigned API_MAJOR_VERSION = 3;
!   const unsigned API_MINOR_VERSION = 3;
  
    // PART 1: Buses
    //
*************** namespace sid
*** 129,135 ****
  
    protected:
      bus() {}
!     virtual ~bus() throw() {}  
    };
  
    
--- 129,135 ----
  
    protected:
      bus() {}
!     virtual ~bus() {}  
    };
  
    
*************** namespace sid
*** 150,156 ****
  
    protected:
      pin() {}
!     virtual ~pin() throw() {}
    };
    
  
--- 150,156 ----
  
    protected:
      pin() {}
!     virtual ~pin() {}
    };
    
  
*************** namespace sid
*** 175,181 ****
      // PART 3.1: instantiation
    protected:
      component() {}
!     virtual ~component() throw() {}  
  
    public:
      // PART 3.2: attributes (SUPERVISORY)
--- 175,181 ----
      // PART 3.1: instantiation
    protected:
      component() {}
!     virtual ~component() {}  
  
    public:
      // PART 3.2: attributes (SUPERVISORY)
Index: sid/include/sidcomputil.h
===================================================================
RCS file: /cvs/src/src/sid/include/sidcomputil.h,v
retrieving revision 1.2
diff -c -p -r1.2 sidcomputil.h
*** sid/include/sidcomputil.h	12 Jul 2001 11:37:32 -0000	1.2
--- sid/include/sidcomputil.h	16 Jan 2007 19:43:07 -0000
***************
*** 1,6 ****
  // sidcomputil.h - Useful mix-in classes for components.  -*- C++ -*-
  
! // Copyright (C) 1999, 2000 Red Hat.
  // This file is part of SID and is licensed under the GPL.
  // See the file COPYING.SID for conditions for redistribution.
  
--- 1,6 ----
  // sidcomputil.h - Useful mix-in classes for components.  -*- C++ -*-
  
! // Copyright (C) 1999, 2000, 2007 Red Hat.
  // This file is part of SID and is licensed under the GPL.
  // See the file COPYING.SID for conditions for redistribution.
  
*************** namespace sidutil
*** 177,183 ****
    class fixed_relation_map_component: public virtual sid::component
    {
    public:
!     ~fixed_relation_map_component() throw() {}
  
      typedef std::vector<sid::component*> component_relation_t;
  
--- 177,183 ----
    class fixed_relation_map_component: public virtual sid::component
    {
    public:
!     ~fixed_relation_map_component() {}
  
      typedef std::vector<sid::component*> component_relation_t;
  
Index: sid/include/sidcpuutil.h
===================================================================
RCS file: /cvs/src/src/sid/include/sidcpuutil.h,v
retrieving revision 1.39
diff -c -p -r1.39 sidcpuutil.h
*** sid/include/sidcpuutil.h	27 Sep 2006 20:28:21 -0000	1.39
--- sid/include/sidcpuutil.h	16 Jan 2007 19:43:07 -0000
***************
*** 1,6 ****
  // sidcpuutil.h - Elements common to CPU models.  -*- C++ -*-
  
! // Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Red Hat.
  // This file is part of SID and is licensed under the GPL.
  // See the file COPYING.SID for conditions for redistribution.
  
--- 1,6 ----
  // sidcpuutil.h - Elements common to CPU models.  -*- C++ -*-
  
! // Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Red Hat.
  // This file is part of SID and is licensed under the GPL.
  // See the file COPYING.SID for conditions for redistribution.
  
*************** public:
*** 1004,1010 ****
  	add_uni_relation("main", &this->main);
        }
  
!     virtual ~basic_cpu() throw() {}
    };
  
  
--- 1004,1010 ----
  	add_uni_relation("main", &this->main);
        }
  
!     virtual ~basic_cpu() {}
    };
  
  
*************** public:
*** 1139,1145 ****
        {
  	add_attribute_ro_value ("endian", endian_big, "register");
        }
!     ~basic_big_endian_cpu () throw() {}
  
      sid::host_int_1 read_insn_memory_1 (sid::host_int_4 pc, sid::host_int_4 address)
        {
--- 1139,1145 ----
        {
  	add_attribute_ro_value ("endian", endian_big, "register");
        }
!     ~basic_big_endian_cpu () {}
  
      sid::host_int_1 read_insn_memory_1 (sid::host_int_4 pc, sid::host_int_4 address)
        {
*************** public:
*** 1235,1241 ****
        {
  	add_attribute_ro_value ("endian", endian_little, "register");
        }
!     ~basic_little_endian_cpu () throw() {}
  
      sid::host_int_1 read_insn_memory_1 (sid::host_int_4 pc, sid::host_int_4 address)
        {
--- 1235,1241 ----
        {
  	add_attribute_ro_value ("endian", endian_little, "register");
        }
!     ~basic_little_endian_cpu () {}
  
      sid::host_int_1 read_insn_memory_1 (sid::host_int_4 pc, sid::host_int_4 address)
        {
*************** public:
*** 1334,1340 ****
  	this->_current_endianness = endian_big;
  	add_attribute ("endian", & this->_current_endianness, "register");
        }
!     ~basic_bi_endian_cpu () throw() {}
  
      void set_endian(sid::host_int_4 v)
        {
--- 1334,1340 ----
  	this->_current_endianness = endian_big;
  	add_attribute ("endian", & this->_current_endianness, "register");
        }
!     ~basic_bi_endian_cpu () {}
  
      void set_endian(sid::host_int_4 v)
        {
Index: sid/include/sidmiscutil.h
===================================================================
RCS file: /cvs/src/src/sid/include/sidmiscutil.h,v
retrieving revision 1.8
diff -c -p -r1.8 sidmiscutil.h
*** sid/include/sidmiscutil.h	17 Dec 2003 19:51:02 -0000	1.8
--- sid/include/sidmiscutil.h	16 Jan 2007 19:43:07 -0000
***************
*** 1,6 ****
  // sidmiscutil.h - Useful utility classes.  -*- C++ -*-
  
! // Copyright (C) 1999-2003 Red Hat.
  // This file is part of SID and is licensed under the GPL.
  // See the file COPYING.SID for conditions for redistribution.
  
--- 1,6 ----
  // sidmiscutil.h - Useful utility classes.  -*- C++ -*-
  
! // Copyright (C) 1999-2003, 2007 Red Hat.
  // This file is part of SID and is licensed under the GPL.
  // See the file COPYING.SID for conditions for redistribution.
  
*************** namespace sidutil
*** 411,417 ****
  	buffer = new char[buffer_size];
  #endif
        }
!     ~logger () throw()
        {
  	// Output any saved messages.
  	output_saved_messages ();
--- 411,417 ----
  	buffer = new char[buffer_size];
  #endif
        }
!     ~logger ()
        {
  	// Output any saved messages.
  	output_saved_messages ();
Index: sid/include/sidpinutil.h
===================================================================
RCS file: /cvs/src/src/sid/include/sidpinutil.h,v
retrieving revision 1.3
diff -c -p -r1.3 sidpinutil.h
*** sid/include/sidpinutil.h	12 Jul 2001 11:37:32 -0000	1.3
--- sid/include/sidpinutil.h	16 Jan 2007 19:43:07 -0000
***************
*** 2,8 ****
  // pins and outputs (== lists of others' input pins), and mixtures of
  // these.  -*- C++ -*-
  
! // Copyright (C) 1999, 2000 Red Hat.
  // This file is part of SID and is licensed under the GPL.
  // See the file COPYING.SID for conditions for redistribution.
  
--- 2,8 ----
  // pins and outputs (== lists of others' input pins), and mixtures of
  // these.  -*- C++ -*-
  
! // Copyright (C) 1999, 2000, 2007 Red Hat.
  // This file is part of SID and is licensed under the GPL.
  // See the file COPYING.SID for conditions for redistribution.
  
*************** namespace sidutil
*** 83,89 ****
      pin_list_t neighbours;
  
      public:
!       ~list_output() throw() {}
  
        // Propagate value to list of outputs.
        void
--- 83,89 ----
      pin_list_t neighbours;
  
      public:
!       ~list_output() {}
  
        // Propagate value to list of outputs.
        void
*************** namespace sidutil
*** 169,175 ****
  	this->value = 0;
        }
        
!     virtual ~output_pin () throw()
        {
  	if (this->num_outputs == 0)
  	  {
--- 169,175 ----
  	this->value = 0;
        }
        
!     virtual ~output_pin ()
        {
  	if (this->num_outputs == 0)
  	  {
*************** namespace sidutil
*** 375,381 ****
  	}
        
      public:
!       ~fixed_pin_map_component() throw() {}
  
        // Return the names of all known pins (input & output)
        std::vector<std::string>
--- 375,381 ----
  	}
        
      public:
!       ~fixed_pin_map_component() {}
  
        // Return the names of all known pins (input & output)
        std::vector<std::string>

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2007-02-06 20:01 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-01-16 20:11 [patch][rfc] Remove 'throw()' Specifiers from Virtual Destructors in the SID API Dave Brolley
2007-02-06 20:01 ` Dave Brolley

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).