Skip to content

Commit d9faa05

Browse files
author
Daniel Kroening
committed
add noexcept to frequently used constructors
1 parent e18ac13 commit d9faa05

File tree

5 files changed

+15
-13
lines changed

5 files changed

+15
-13
lines changed

src/big-int/bigint.cc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -464,8 +464,7 @@ BigInt::BigInt (BigInt const &y)
464464
memcpy (digit, y.digit, length * sizeof (onedig_t));
465465
}
466466

467-
BigInt::BigInt (BigInt &&y)
468-
: BigInt()
467+
BigInt::BigInt(BigInt &&y) noexcept : BigInt()
469468
{
470469
swap(y);
471470
}

src/big-int/bigint.hh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ public:
168168
BigInt (llong_t) _fast;
169169
BigInt (ullong_t) _fast;
170170
BigInt (BigInt const &) _fast;
171-
BigInt (BigInt &&) _fast;
171+
BigInt (BigInt &&) noexcept _fast;
172172
BigInt (char const *, onedig_t = 10) _fast;
173173

174174
BigInt &operator= (BigInt const &) _fast;

src/util/dstring.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,11 @@ class dstringt final
3636
{
3737
public:
3838
// this is safe for static objects
39-
#ifdef __GNUC__
39+
#ifdef __GNUC__
4040
constexpr
41-
#endif
42-
dstringt():no(0)
41+
#endif
42+
dstringt() noexcept
43+
: no(0)
4344
{
4445
}
4546

src/util/expr.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,9 @@ class exprt:public irept
5757
typedef std::vector<exprt> operandst;
5858

5959
// constructors
60-
exprt() { }
60+
exprt() noexcept
61+
{
62+
}
6163
explicit exprt(const irep_idt &_id):irept(_id) { }
6264
exprt(const irep_idt &_id, const typet &_type):irept(_id)
6365
{

src/util/irep.h

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -172,22 +172,22 @@ class irept
172172
bool is_nil() const { return id()==ID_nil; }
173173
bool is_not_nil() const { return id()!=ID_nil; }
174174

175-
explicit irept(const irep_idt &_id)
175+
explicit irept(const irep_idt &_id) noexcept
176176
#ifdef SHARING
177-
:data(&empty_d)
177+
: data(&empty_d)
178178
#endif
179179
{
180180
id(_id);
181181
}
182182

183183
#ifdef SHARING
184184
// constructor for blank irep
185-
irept():data(&empty_d)
185+
irept() noexcept : data(&empty_d)
186186
{
187187
}
188188

189189
// copy constructor
190-
irept(const irept &irep):data(irep.data)
190+
irept(const irept &irep) noexcept : data(irep.data)
191191
{
192192
if(data!=&empty_d)
193193
{
@@ -204,7 +204,7 @@ class irept
204204
// Copy from rvalue reference.
205205
// Note that this does avoid a branch compared to the
206206
// standard copy constructor above.
207-
irept(irept &&irep):data(irep.data)
207+
irept(irept &&irep) noexcept : data(irep.data)
208208
{
209209
#ifdef IREP_DEBUG
210210
std::cout << "COPY MOVE\n";
@@ -234,7 +234,7 @@ class irept
234234
#ifdef USE_MOVE
235235
// Note that the move assignment operator does avoid
236236
// three branches compared to standard operator above.
237-
irept &operator=(irept &&irep)
237+
irept &operator=(irept &&irep) noexcept
238238
{
239239
#ifdef IREP_DEBUG
240240
std::cout << "ASSIGN MOVE\n";

0 commit comments

Comments
 (0)