Age | Commit message (Collapse) | Author |
|
|
|
No functional changes.
- add `override' everywhere where missing
- almost pass clang's `-Wweak-vtables'
- avoid some float/double conversions
- remove unused private members
- make signedness conversions explicit
- put stuff in right namespaces to aid analysis
|
|
|
|
The module loses auto-pairing functionality, but it's
at least useful to see GCC warnings. I don't intend to
use GCC for actually running the module.
Fix some warnings emitted by GCC, such as
- memset(3) of non-POD struct
- depending on "new T[0]" to return a null pointer
- dependence on MSVC-specific pragmas for external
libraries
- lack of header guards
- unintended usage of trigraph syntax
Disable some GCC warnings for the "wiiyourself"
library. It's not possible to patch it up, the code
quality is that awful.
Disable the builtin debug functionality since it
depends on non-standard __VA_OPT__ (due in C++20). It's
not possible to disable the warning emitted on the
__VA_ARGS__ usage in GCC.
|
|
- use `static constexpr inline' to avoid requiring
explicit declarations in object code
- use `const Foo* const' to maybe put into readonly
binary segment (at least for ELF DSOs)
- `constexpr' in function scope has storage, avoid
`static'
- don't use `constexpr' where there's no advantage,
like arrays
We'd like to avoid overhead of atomic initialization
for each function call. No idea how `static constexpr'
requiring storage in the standard plays with atomic
initialization requirement. Hearsay points that
`constexpr' without `static' in block scope behaves
more to our liking. It's all hazy though.
I'm not 100% sure if `static inline constexpr' has any
storage. Hopefully none, like a #define, and stuff
bigger than registers gets coalesced within the same
module, with small stuff being immediates.
|
|
Paging @cpuwolf
Related to: #718
|