if(GCC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --gcc-toolchain=${GCC}")
endif()
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-command-line-argument")
endif()
# Set RPATH in every executable, overriding the default setting.
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wcast-qual")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wimplicit-fallthrough")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wdelete-non-virtual-dtor")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-command-line-argument")
set(CMAKE_CXX_FLAGS_RELEASE "-O2")
set(CMAKE_CXX_FLAGS_MINSIZEREL "-O2 '-DCHECK=(void)'")
set(CMAKE_CXX_FLAGS_DEBUG "-g -DDEBUGF18")
}
hasDataEditDesc = false;
NextToken();
- // fall through
+ [[fallthrough]];
case TokenKind::LParen:
if (knrValue_ == 0) {
ReportError("List repeat specifier must be positive", knrToken_);
if (suppressMessageCascade_ || reporterExit_) {
break;
}
- // fall through
+ [[fallthrough]];
default: ReportError("Unexpected '%s' in format expression"); NextToken();
}
using Fortran::evaluate::RealFlag;
ScopedHostFloatingPointEnvironment::ScopedHostFloatingPointEnvironment(
- bool treatSubnormalOperandsAsZero, bool flushSubnormalResultsToZero) {
+#if __x86_64__
+ bool treatSubnormalOperandsAsZero, bool flushSubnormalResultsToZero
+#else
+ bool, bool
+#endif
+ ) {
errno = 0;
if (feholdexcept(&originalFenv_) != 0) {
std::fprintf(stderr, "feholdexcept() failed: %s\n", std::strerror(errno));
Inexact = 16,
};
-std::uint32_t FlagsToBits(const RealFlags &flags) {
+#ifdef __clang__
+// clang support for fenv.h is broken, so tests of flag settings
+// are disabled.
+inline std::uint32_t FlagsToBits(const RealFlags &) { return 0; }
+#else
+inline std::uint32_t FlagsToBits(const RealFlags &flags) {
std::uint32_t bits{0};
-#ifndef __clang__
- // TODO: clang support for fenv.h is broken, so tests of flag settings
- // are disabled.
if (flags.test(RealFlag::Overflow)) {
bits |= Overflow;
}
if (flags.test(RealFlag::Inexact)) {
bits |= Inexact;
}
-#endif // __clang__
return bits;
}
+#endif // __clang__
template<typename UINT = std::uint32_t, typename FLT = float, typename REAL>
void inttest(std::int64_t x, int pass, Rounding rounding) {