[all-commits] [llvm/llvm-project] 31786e: [flang] Avoid undefined behaviour in Interval::Con...

David Spickett via All-commits all-commits at lists.llvm.org
Tue Jul 8 06:39:31 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 31786ee89f683721248ef6c41d347a00a5e619f6
      https://github.com/llvm/llvm-project/commit/31786ee89f683721248ef6c41d347a00a5e619f6
  Author: David Spickett <david.spickett at linaro.org>
  Date:   2025-07-08 (Tue, 08 Jul 2025)

  Changed paths:
    M flang/include/flang/Common/interval.h

  Log Message:
  -----------
  [flang] Avoid undefined behaviour in Interval::Contains (#147505)

If the size of the other Interval was 0, (that.size_ - 1) would wrap
below zero.

I've fixed this so that a zero size interval A is within interval B if
the start of A is within B. There's a few ways you could handle zero
sized intervals in theory but this one passes all tests so I assume it's
the intention.

This fixes the following tests when ubsan is enabled:
  Flang :: Lower/OpenMP/PFT/sections-pft.f90
  Flang :: Lower/OpenMP/derived-type-allocatable.f90
  Flang :: Lower/OpenMP/privatization-proc-ptr.f90
  Flang :: Lower/OpenMP/sections.f90
  Flang :: Parser/OpenMP/sections.f90
  Flang :: Semantics/OpenMP/clause-validity01.f90
  Flang :: Semantics/OpenMP/if-clause.f90
  Flang :: Semantics/OpenMP/parallel-sections01.f90
  Flang :: Semantics/OpenMP/private-assoc.f90



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list