Skip to content

Commit

Permalink
Add some code hygiene to appease gcc-9.3:
Browse files Browse the repository at this point in the history
- Add explicit assignment operator implementations to Point and AxisAlignedHyperRectangle classes.
- Catch exceptions by reference instead of value in CompoundConfig.
  • Loading branch information
angshuman-parashar committed Jun 12, 2020
1 parent 697b9fe commit e3dbf09
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 11 deletions.
22 changes: 11 additions & 11 deletions src/compound-config/compound-config.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,17 +52,17 @@
std::cerr << "ERROR: setting name exception at: " << e.getPath() << std::endl;\
exit(1); \
} \
catch (YAML::KeyNotFound e) \
catch (YAML::KeyNotFound& e) \
{ \
std::cerr << "ERROR: " << e.msg << ", at line: " << e.mark.line+1<< std::endl;\
exit(1); \
} \
catch (YAML::InvalidNode e) \
catch (YAML::InvalidNode& e) \
{ \
std::cerr << "ERROR: " << e.msg << ", at line: " << e.mark.line+1<< std::endl;\
exit(1); \
} \
catch (YAML::BadConversion e) \
catch (YAML::BadConversion& e) \
{ \
std::cerr << "ERROR: " << e.msg << ", at line: " << e.mark.line+1<< std::endl;\
exit(1); \
Expand Down Expand Up @@ -98,7 +98,7 @@ CompoundConfigNode CompoundConfigNode::lookup(const char *path) const {
// exception on our own.
try {
YNode[path].as<int>(); // force an exception!
} catch (YAML::Exception e) {
} catch (YAML::Exception& e) {
throw YAML::KeyNotFound(e.mark, std::string(path));
}
}
Expand All @@ -118,7 +118,7 @@ bool CompoundConfigNode::lookupValue(const char *name, bool &value) const {
if (YNode.IsScalar() || !YNode[name].IsDefined() || !YNode[name].IsScalar()) return false;
try {
value = YNode[name].as<bool>();
} catch (YAML::BadConversion e) {
} catch (YAML::BadConversion& e) {
std::string variableName = YNode[name].as<std::string>();
if (cConfig->getVariableRoot().exists(variableName)) {
cConfig->getVariableRoot().lookupValue(variableName, value);
Expand Down Expand Up @@ -151,7 +151,7 @@ bool CompoundConfigNode::lookupValue(const char *name, int &value) const {
if (YNode.IsScalar() || !YNode[name].IsDefined() || !YNode[name].IsScalar()) return false;
try {
value = YNode[name].as<int>();
} catch (YAML::BadConversion e) {
} catch (YAML::BadConversion& e) {
std::string variableName = YNode[name].as<std::string>();
if (cConfig->getVariableRoot().exists(variableName)) {
cConfig->getVariableRoot().lookupValue(variableName, value);
Expand Down Expand Up @@ -184,7 +184,7 @@ bool CompoundConfigNode::lookupValue(const char *name, unsigned int &value) cons
if (YNode.IsScalar() || !YNode[name].IsDefined() || !YNode[name].IsScalar()) return false;
try {
value = YNode[name].as<unsigned int>();
} catch (YAML::BadConversion e) {
} catch (YAML::BadConversion& e) {
std::string variableName = YNode[name].as<std::string>();
if (cConfig->getVariableRoot().exists(variableName)) {
cConfig->getVariableRoot().lookupValue(variableName, value);
Expand Down Expand Up @@ -218,7 +218,7 @@ bool CompoundConfigNode::lookupValue(const char *name, long long &value) const {
if (YNode.IsScalar() || !YNode[name].IsDefined() || !YNode[name].IsScalar()) return false;
try {
value = YNode[name].as<long long>();
} catch (YAML::BadConversion e) {
} catch (YAML::BadConversion& e) {
std::string variableName = YNode[name].as<std::string>();
if (cConfig->getVariableRoot().exists(variableName)) {
cConfig->getVariableRoot().lookupValue(variableName, value);
Expand Down Expand Up @@ -251,7 +251,7 @@ bool CompoundConfigNode::lookupValue(const char *name, unsigned long long &value
if (YNode.IsScalar() || !YNode[name].IsDefined() || !YNode[name].IsScalar()) return false;
try {
value = YNode[name].as<unsigned long long>();
} catch (YAML::BadConversion e) {
} catch (YAML::BadConversion& e) {
std::string variableName = YNode[name].as<std::string>();
if (cConfig->getVariableRoot().exists(variableName)) {
cConfig->getVariableRoot().lookupValue(variableName, value);
Expand Down Expand Up @@ -288,7 +288,7 @@ bool CompoundConfigNode::lookupValue(const char *name, double &value) const {
if (YNode.IsScalar() || !YNode[name].IsDefined() || !YNode[name].IsScalar()) return false;
try {
value = YNode[name].as<double, int>(0);
} catch (YAML::BadConversion e) {
} catch (YAML::BadConversion& e) {
std::string variableName = YNode[name].as<std::string>();
if (cConfig->getVariableRoot().exists(variableName)) {
cConfig->getVariableRoot().lookupValue(variableName, value);
Expand Down Expand Up @@ -325,7 +325,7 @@ bool CompoundConfigNode::lookupValue(const char *name, float &value) const {
if (YNode.IsScalar() || !YNode[name].IsDefined() || !YNode[name].IsScalar()) return false;
try {
value = YNode[name].as<float, int>(0);
} catch (YAML::BadConversion e) {
} catch (YAML::BadConversion& e) {
std::string variableName = YNode[name].as<std::string>();
if (cConfig->getVariableRoot().exists(variableName)) {
cConfig->getVariableRoot().lookupValue(variableName, value);
Expand Down
16 changes: 16 additions & 0 deletions src/loop-analysis/point-set-aahr.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,22 @@ class AxisAlignedHyperRectangle
{
}

// Copy-and-swap idiom.
AxisAlignedHyperRectangle& operator = (AxisAlignedHyperRectangle other)
{
swap(*this, other);
return *this;
}

friend void swap(AxisAlignedHyperRectangle& first, AxisAlignedHyperRectangle& second)
{
using std::swap;
swap(first.order_, second.order_);
swap(first.min_, second.min_);
swap(first.max_, second.max_);
swap(first.gradient_, second.gradient_);
}

Point Min() const
{
return min_;
Expand Down
14 changes: 14 additions & 0 deletions src/loop-analysis/point-set.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,20 @@ class Point
Reset();
}

// Copy-and-swap idiom.
Point& operator = (Point other)
{
swap(*this, other);
return *this;
}

friend void swap(Point& first, Point& second)
{
using std::swap;
swap(first.order_, second.order_);
swap(first.coordinates_, second.coordinates_);
}

void Reset()
{
std::fill(coordinates_.begin(), coordinates_.end(), 0);
Expand Down

0 comments on commit e3dbf09

Please sign in to comment.