Bug 265758 - clang crashes on math/py-fastcluster on 14/amd64
Summary: clang crashes on math/py-fastcluster on 14/amd64
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: misc (show other bugs)
Version: CURRENT
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-toolchain (Nobody)
URL: http://beefy18.nyi.freebsd.org/data/m...
Keywords:
Depends on:
Blocks: 265723
  Show dependency treegraph
 
Reported: 2022-08-10 16:11 UTC by Yuri Victorovich
Modified: 2023-07-23 18:31 UTC (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Yuri Victorovich freebsd_committer freebsd_triage 2022-08-10 16:11:37 UTC

    
Comment 1 John F. Carr 2022-08-16 20:53:45 UTC
Same compiler failure as 265755:

Assertion failed: ((CGF.CurFuncDecl == nullptr || CGF.Builder.getIsFPConstrained() || isa<CXXConstructorDecl>(CGF.CurFuncDecl) || isa<CXXDestructorDecl>(CGF.CurFuncDecl) || (NewExceptionBehavior == llvm::fp::ebIgnore && NewRoundingBehavior == llvm::RoundingMode::NearestTiesToEven)) && "FPConstrained should be enabled on entire function"), function ConstructorHelper, file /usr/src/contrib/llvm-project/clang/lib/CodeGen/CodeGenFunction.cpp, line 163.
Comment 2 John F. Carr 2023-06-27 21:35:12 UTC
The assertion failure is the same as LLVM issue 63542.

https://github.com/llvm/llvm-project/issues/63542
Comment 3 Mark Millard 2023-06-28 00:47:22 UTC
Seems like one of buzilla 265755 vs. buzilla 265758 should be classified as
a duplicate of the other, given the same assertion failure.
Comment 4 John F. Carr 2023-07-13 11:57:52 UTC
Is this still a problem?

I have default llvm set to 16 for my ports build and this port compiles.  See also LLVM commit fde5924dcc69fe814085482df259b8cfee236f2c in trunk (17), fixing llvm issue 63542.
Comment 5 commit-hook freebsd_committer freebsd_triage 2023-07-13 18:59:36 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/src/commit/?id=1cd9788408aa9ea4fd0fbc3e06bd9a4eaf8d8d22

commit 1cd9788408aa9ea4fd0fbc3e06bd9a4eaf8d8d22
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2023-07-13 18:57:22 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2023-07-13 18:57:22 +0000

    Merge commit fde5924dcc69 from llvm-project (by Serge Pavlov):

      [clang] Reset FP options before template instantiation

      AST nodes that may depend on FP options keep them as a difference
      relative to the options outside the AST node. At the moment of
      instantiation the FP options may be different from the default values,
      defined by command-line option. In such case FP attributes would have
      unexpected values. For example, the code:

          template <class C> void func_01(int last, C) {
            func_01(last, int());
          }
          void func_02() { func_01(0, 1); }
          #pragma STDC FENV_ACCESS ON

      caused compiler crash, because template instantiation takes place at the
      end of translation unit, where pragma STDC FENV_ACCESS is in effect. As
      a result, code in the template instantiation would use constrained
      intrinsics while the function does not have StrictFP attribute.

      To solve this problem, FP attributes in Sema must be set to default
      values, defined by command line options.

      This change resolves https://github.com/llvm/llvm-project/issues/63542.

      Differential Revision: https://reviews.llvm.org/D154359

    Requested by:   pkubaj
    PR:             265755, 265758
    MFC after:      1 month

 contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp | 4 ++++
 1 file changed, 4 insertions(+)
Comment 6 commit-hook freebsd_committer freebsd_triage 2023-07-23 18:28:28 UTC
A commit in branch stable/13 references this bug:

URL: https://cgit.FreeBSD.org/src/commit/?id=95955fb872c6a51ff18804b93a2065185955c2a0

commit 95955fb872c6a51ff18804b93a2065185955c2a0
Author:     Dimitry Andric <dim@FreeBSD.org>
AuthorDate: 2023-07-13 18:57:22 +0000
Commit:     Dimitry Andric <dim@FreeBSD.org>
CommitDate: 2023-07-23 17:38:12 +0000

    Merge commit fde5924dcc69 from llvm-project (by Serge Pavlov):

      [clang] Reset FP options before template instantiation

      AST nodes that may depend on FP options keep them as a difference
      relative to the options outside the AST node. At the moment of
      instantiation the FP options may be different from the default values,
      defined by command-line option. In such case FP attributes would have
      unexpected values. For example, the code:

          template <class C> void func_01(int last, C) {
            func_01(last, int());
          }
          void func_02() { func_01(0, 1); }
          #pragma STDC FENV_ACCESS ON

      caused compiler crash, because template instantiation takes place at the
      end of translation unit, where pragma STDC FENV_ACCESS is in effect. As
      a result, code in the template instantiation would use constrained
      intrinsics while the function does not have StrictFP attribute.

      To solve this problem, FP attributes in Sema must be set to default
      values, defined by command line options.

      This change resolves https://github.com/llvm/llvm-project/issues/63542.

      Differential Revision: https://reviews.llvm.org/D154359

    Requested by:   pkubaj
    PR:             265755, 265758
    MFC after:      1 month

    (cherry picked from commit 1cd9788408aa9ea4fd0fbc3e06bd9a4eaf8d8d22)

 contrib/llvm-project/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp | 4 ++++
 1 file changed, 4 insertions(+)