• teolan@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    10 months ago

    The only time it has ever complained was a case where my platform does define the behavior and I was intentionally relying on that.

    If by platform you mean target CPU you should be aware that it’s still undefined behaviour and that it could break optimizations, unless your compiler also makes a commitment to define that behavior that is stronger than what the standard requires.

    • bluGill@kbin.social
      link
      fedilink
      arrow-up
      1
      ·
      10 months ago

      I broke the one definition rule by having a symbol in two different .so files. The optimizer can’t optimize around this and on Linux the order of loading says who wins. On windows there are different rules, but I forget which.

      Of course if the optimizer could make an optimization I would be in trouble, but my build systems ensures that there is no optimizer that gets access to either definition.