]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Merge commit 30588a739 from llvm git (by Erich Keane):
authorDimitry Andric <dim@FreeBSD.org>
Sun, 12 Apr 2020 16:06:59 +0000 (16:06 +0000)
committerDimitry Andric <dim@FreeBSD.org>
Sun, 12 Apr 2020 16:06:59 +0000 (16:06 +0000)
commitc3ca3130e213bba30a6c95819e2dc500493bb86e
tree2d427bb06455d082f7dc25ef344135a2de9f4a67
parentd303324bad89623af404f4815b7bb176ac6888b4
Merge commit 30588a739 from llvm git (by Erich Keane):

  Make target features check work with ctor and dtor-

  The problem was reported in PR45468, applying target features to an
  always_inline constructor/destructor runs afoul of GlobalDecl
  construction assert when checking for target-feature compatibility.

  The core problem is fixed by using the version of the check that
  takes a FunctionDecl rather than the GlobalDecl. However, while
  writing the test, I discovered that source locations weren't properly
  set for this check on ctors/dtors. This patch also fixes constructors
  and CALLED destructors.

  Unfortunately, it doesn't seem too possible to get a meaningful
  source location for a 'cleanup' destructor, so those are still
  'frontend' level errors unfortunately. A fixme was added to the test
  to cover that situation.

This should fix 'Assertion failed: (!isa<CXXConstructorDecl>(D) && "Use
other ctor with ctor decls!"), function Init, file
/usr/src/contrib/llvm-project/clang/include/clang/AST/GlobalDecl.h, line
45' when compiling the security/botan2 port.

PR: 245550
MFC after: 6 weeks
X-MFC-With: 358851
contrib/llvm-project/clang/lib/CodeGen/CGClass.cpp
contrib/llvm-project/clang/lib/CodeGen/CGExprCXX.cpp
contrib/llvm-project/clang/lib/CodeGen/CodeGenFunction.cpp