Gcc12 related fixes (#1138)

* GCC12 related fixes but still compiles on GCC9

* Suppress warnings about volatile +=

* Enable c++20 if supported by the compiler

On gcc12 we need to use -std=c++20 since constexpr .c_str() on std::string is only officially available since c++20 and the new gcc wouldnt let us use it with older standard

* code format

---------

Co-authored-by: Eisenberger Tamas <e.tamas@iwstudio.hu>
This commit is contained in:
E.T 2023-06-09 21:50:42 +02:00 committed by GitHub
parent 47eda54d6a
commit a2e5e03f07
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 30 additions and 9 deletions

View File

@ -27,6 +27,8 @@
enable_language(C CXX ASM) enable_language(C CXX ASM)
include(CheckCXXCompilerFlag)
project(application) project(application)
# Compiler options here. # Compiler options here.
@ -36,7 +38,13 @@ set(USE_OPT "-Os -g --specs=nano.specs")
set(USE_COPT "-std=gnu99") set(USE_COPT "-std=gnu99")
# C++ specific options here (added to USE_OPT). # C++ specific options here (added to USE_OPT).
set(USE_CPPOPT "-std=c++17 -fno-rtti -fno-exceptions -Weffc++ -Wuninitialized") check_cxx_compiler_flag("-std=c++20" cpp20_supported)
if(cpp20_supported)
set(USE_CPPOPT "-std=c++20")
else()
set(USE_CPPOPT "-std=c++17")
endif()
set(USE_CPPOPT "${USE_CPPOPT} -fno-rtti -fno-exceptions -Weffc++ -Wuninitialized -Wno-volatile")
# Enable this if you want the linker to remove unused code and data # Enable this if you want the linker to remove unused code and data
set(USE_LINK_GC yes) set(USE_LINK_GC yes)

View File

@ -38,10 +38,6 @@
namespace std { namespace std {
constexpr bool operator==(const tpms::TransponderID& lhs, const tpms::TransponderID& rhs) {
return (lhs.value() == rhs.value());
}
} /* namespace std */ } /* namespace std */
struct TPMSRecentEntry { struct TPMSRecentEntry {

View File

@ -22,6 +22,8 @@
#ifndef __MAX283X_H__ #ifndef __MAX283X_H__
#define __MAX283X_H__ #define __MAX283X_H__
#include <array>
#include "rf_path.hpp" #include "rf_path.hpp"
namespace max283x { namespace max283x {

View File

@ -162,8 +162,8 @@ constexpr ConfigAmp config_amp(
const Direction direction, const Direction direction,
const Band band) { const Band band) {
return {{ return {{
{.direction = direction, .band = band, .amplify = false}, Config(direction, band, false),
{.direction = direction, .band = band, .amplify = true}, Config(direction, band, true),
}}; }};
} }

View File

@ -136,7 +136,7 @@ GeoMap::GeoMap(
} }
void GeoMap::paint(Painter& painter) { void GeoMap::paint(Painter& painter) {
u_int16_t line; uint16_t line;
std::array<ui::Color, 240> map_line_buffer; std::array<ui::Color, 240> map_line_buffer;
const auto r = screen_rect(); const auto r = screen_rect();

View File

@ -27,6 +27,8 @@
enable_language(C CXX ASM) enable_language(C CXX ASM)
include(CheckCXXCompilerFlag)
project(baseband_shared) project(baseband_shared)
# Compiler options here. # Compiler options here.
@ -36,7 +38,13 @@ set(USE_OPT "-O3 -g -falign-functions=16 -fno-math-errno --specs=nano.specs")
set(USE_COPT "-std=gnu99") set(USE_COPT "-std=gnu99")
# C++ specific options here (added to USE_OPT). # C++ specific options here (added to USE_OPT).
set(USE_CPPOPT "-std=c++17 -fno-rtti -fno-exceptions -Weffc++ -Wuninitialized") check_cxx_compiler_flag("-std=c++20" cpp20_supported)
if(cpp20_supported)
set(USE_CPPOPT "-std=c++20")
else()
set(USE_CPPOPT "-std=c++17")
endif()
set(USE_CPPOPT "${USE_CPPOPT} -fno-rtti -fno-exceptions -Weffc++ -Wuninitialized -Wno-volatile")
# Enable this if you want the linker to remove unused code and data # Enable this if you want the linker to remove unused code and data
set(USE_LINK_GC yes) set(USE_LINK_GC yes)

View File

@ -24,6 +24,7 @@
#include "utility.hpp" #include "utility.hpp"
#include <string> #include <string>
#include <array>
namespace jtag { namespace jtag {
namespace tap { namespace tap {

View File

@ -25,6 +25,7 @@
#include <cstdint> #include <cstdint>
#include <cstddef> #include <cstddef>
#include <array>
#include "baseband.hpp" #include "baseband.hpp"

View File

@ -24,6 +24,7 @@
#define __TONESETS_H__ #define __TONESETS_H__
#include <memory> #include <memory>
#include <array>
#define TONES_SAMPLERATE 1536000 #define TONES_SAMPLERATE 1536000
#define TONES_DELTA_COEF(sr) ((1ULL << 32) / sr) #define TONES_DELTA_COEF(sr) ((1ULL << 32) / sr)

View File

@ -60,6 +60,10 @@ class TransponderID {
return id_; return id_;
} }
constexpr bool operator==(const TransponderID& other) const {
return id_ == other.id_;
}
private: private:
uint32_t id_; uint32_t id_;
}; };