Skip to content
Snippets Groups Projects
  1. Jan 04, 2024
  2. Jan 03, 2024
  3. Dec 21, 2023
  4. Dec 20, 2023
  5. Dec 19, 2023
  6. Dec 18, 2023
  7. Dec 17, 2023
  8. Dec 16, 2023
  9. Dec 15, 2023
  10. Dec 14, 2023
  11. Dec 13, 2023
  12. Dec 12, 2023
  13. Dec 11, 2023
  14. Dec 10, 2023
  15. Dec 09, 2023
  16. Dec 08, 2023
  17. Dec 07, 2023
  18. Dec 06, 2023
  19. Dec 05, 2023
  20. Dec 04, 2023
  21. Dec 03, 2023
  22. Dec 02, 2023
  23. Dec 01, 2023
  24. Nov 30, 2023
  25. Nov 29, 2023
  26. Nov 28, 2023
  27. Nov 27, 2023
  28. Nov 26, 2023
  29. Nov 25, 2023
    • Marvin Häuser's avatar
      simulator: fix pedantic C++ 98 warnings · b0db5d4d
      Marvin Häuser authored
      C++ 98 requires all source files to terminate with a new-line character.
      It also does not allow for semicolons outside of declarations that
      require it (and in function scopes). Fix them to allow for pedantic
      warnings to be enabled when beneficial. Finally, it does not allow for
      object-to-function casts.
      
      The first two warnings are resolved trivially. For the third, the
      solution to cast through a pointer address is technically unsafe, as
      systems are not required to support object pointers (e.g. void *)
      being able to represent function pointers. However, the existence of
      dlsym() virtually implies this is supported on the target system
      (technically, all symbols could be data symbols, but that is
      nitpicking).
      b0db5d4d
    • Marvin Häuser's avatar
      simulator: add failsafe for stochastic guards · 50a40483
      Marvin Häuser authored
      Stochastic guards are supposed to be generated in a way that the if
      branches are disjoint and exhaustive. Compilers have trouble verifying
      the latter property, as they usually do not pick up postconditions on
      return value of myrand(0, 99).
      
      To silence warnings regarded control paths that do not return a value,
      and to add hardening against code generation bugs that actually violate
      exhaustion of the if branches, assert() and abort() at the end of such
      functions.
      50a40483
    • Marvin Häuser's avatar
      simulator: separate action and delay action · c3bd3a27
      Marvin Häuser authored
      Commit f1db3a0a adjusted
      ActionFuncPointer to generally return a delay. However, this is only
      done for TMLDelayAction generation, leaving the other producers of
      ActionFuncPointer emitting functions without a return value despite the
      changed return type.
      
      To address this, distinguish between ActionFuncPointer and
      DelayActionFuncPointer.
      c3bd3a27
    • Marvin Häuser's avatar
      simulator: emit channels array only when not empty · 0d76645a
      Marvin Häuser authored
      Arrays of length 0 yield implementation-defined behaviour, which causes
      a compiler warning. In C, this was typically used to model
      flexibly-sized array members trailing a struct. Here, length 0 actually
      means it occupies no storage.
      
      Hence, do not emit the _channels array when it would otherwise have a
      length of 0.
      0d76645a
Loading