diff --git a/build.sh b/build.sh index 2763549e0c53d43cb6603655e9d9c0d7979688f9..ab8c800c35ef2b57a325c708587969ce489e41d6 100755 --- a/build.sh +++ b/build.sh @@ -134,7 +134,7 @@ check_compiler_version() { exit 1 fi - local version_str=$("$compiler_path" --version | grep -E -m1 '(gcc|g\+\+)' | head -1) + local version_str=$("$compiler_path" --version | grep -E -m1 '(gcc|g\+\+|clang|clang\+\+)' | head -1) local version_num=$(echo "$version_str" | grep -oP '(?<= )\d+\.\d+(?=\.)?' | head -1) diff --git a/src/database/data/design/db_layout/IdbLayer.h b/src/database/data/design/db_layout/IdbLayer.h index 00239857ab94dfd751f66b660261336fbc426d7a..ee803ca2e89f0aecd9ae29b6607eaba701d923a9 100644 --- a/src/database/data/design/db_layout/IdbLayer.h +++ b/src/database/data/design/db_layout/IdbLayer.h @@ -766,9 +766,13 @@ class IdbLayerImplant : public IdbLayer ////getter int32_t get_min_spacing() { - if (_spacing_list->get_num() == 1) { - return _spacing_list->get_min_spacing(0)->get_min_spacing(); + int32_t min_spacing = INT32_MAX; + int32_t n = _spacing_list->get_num(); + for (size_t i=0; iget_min_spacing(i)->get_min_spacing(), min_spacing); } + return min_spacing; } IdbLayerImplantSpacingList* get_min_spacing_list() { return _spacing_list; } int32_t get_min_width() { return _min_width; } diff --git a/src/operation/iRT/source/toolkit/logger/Logger.hpp b/src/operation/iRT/source/toolkit/logger/Logger.hpp index ac0d8747900726b59a1d52f0cbad6ee955d828ec..834fa136973ca81aaacbf5da3a5e804436bdfaf3 100644 --- a/src/operation/iRT/source/toolkit/logger/Logger.hpp +++ b/src/operation/iRT/source/toolkit/logger/Logger.hpp @@ -68,7 +68,7 @@ class Logger } template - void error(Loc location, const T& value, const Args&... args) + [[noreturn]] void error(Loc location, const T& value, const Args&... args) { printLog(LogLevel::kError, location, value, args...); closeLogFileStream(); diff --git a/src/third_party/salt/base/rsa.h b/src/third_party/salt/base/rsa.h index 172829fa7a9c33a0f92609d51c784e182537238f..41dd6222bedb878deff70d2157f13d852711ea0a 100644 --- a/src/third_party/salt/base/rsa.h +++ b/src/third_party/salt/base/rsa.h @@ -37,7 +37,7 @@ class InnerNode class CompInnerNode { public: - bool operator()(const InnerNode* a, const InnerNode* b) + bool operator()(const InnerNode* a, const InnerNode* b) const { return a->dist > b->dist || // prefer fathest one (a->dist == b->dist @@ -88,4 +88,4 @@ class RsaBuilder : public RSABase void PrintOuterNodes(); }; -} // namespace salt \ No newline at end of file +} // namespace salt diff --git a/src/vectorization/src/feature/vec_feature_drc.cpp b/src/vectorization/src/feature/vec_feature_drc.cpp index 967d796899e85e98995326867852e620e3ce53bc..5a705e930a32dfeee8950846198bcde37b14eb0a 100644 --- a/src/vectorization/src/feature/vec_feature_drc.cpp +++ b/src/vectorization/src/feature/vec_feature_drc.cpp @@ -71,7 +71,9 @@ void VecFeatureDrc::markNodes() for (auto& [rule, drc_list_map] : detail_drc_map) { for (auto& [layer_name, drc_spot_list] : drc_list_map) { -#pragma omp parallel for schedule(dynamic) +#if defined(__GNUC__) && !defined(__clang__) && !defined(__INTEL_COMPILER) + #pragma omp parallel for schedule(dynamic) +#endif for (int i = 0; i < (int) drc_spot_list.size(); ++i) { /// set to node if node data exist auto& drc_spot = drc_spot_list[i]; @@ -291,4 +293,4 @@ void VecFeatureDrc::markNets() LOG_INFO << "Vectorization mark net drc end..."; } -} // namespace ivec \ No newline at end of file +} // namespace ivec diff --git a/src/vectorization/src/layout/data_manager/vec_wire_pattern.cc b/src/vectorization/src/layout/data_manager/vec_wire_pattern.cc index 02484af5b29fb138bb6c19f06b9514c591158e37..bbdd366b1ac6ffa902613d8105c34e07daea2914 100644 --- a/src/vectorization/src/layout/data_manager/vec_wire_pattern.cc +++ b/src/vectorization/src/layout/data_manager/vec_wire_pattern.cc @@ -85,11 +85,11 @@ std::vector VecWirePatternGenerator::getPointList(VecNetWire& wire) auto& path = wire.get_paths(); std::vector points; for (auto& [start, end] : path) { - auto start_point = Point{start->get_x(), start->get_y(), start->get_layer_id()}; + auto start_point = Point{static_cast(start->get_x()), static_cast(start->get_y()), start->get_layer_id()}; points.push_back(start_point); } auto end = path.back().second; - points.push_back(Point{end->get_x(), end->get_y(), end->get_layer_id()}); + points.push_back(Point{static_cast(end->get_x()), static_cast(end->get_y()), end->get_layer_id()}); return points; } @@ -160,4 +160,4 @@ VecWirePatternSequence VecWirePatternGenerator::calcPattern(const std::vector