Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
374fffe
Fix out-of-bounds access to std::unique_ptr<T[]> (#111581)
alexfh Oct 9, 2024
01cbbc5
[VPlan] Request lane 0 for pointer arg in PtrAdd.
fhahn Oct 9, 2024
25c3ecf
[X86] Add isConstantPowerOf2 helper to replace repeated code. NFC.
RKSimon Oct 9, 2024
e17f701
[X86] vselect-pcmp.ll - regenerate test checks with vpternlog comments
RKSimon Oct 9, 2024
4b4078a
[X86] Add test coverage for #110875
RKSimon Oct 9, 2024
8e2ccdc
[MLIR][LLVM] Use ViewLikeOpInterface (#111663)
gysit Oct 9, 2024
3b2bfb4
[mlir] add missing CMake dependency on ShardingInterface generated he…
Zhang-Zecheng Oct 9, 2024
3b7091b
[APFloat] add predicates to fltSemantics for hasZero and hasSignedRep…
Ariel-Burton Oct 9, 2024
890e481
AMDGPU: Regenerate test checks
arsenm Oct 9, 2024
21da4e7
[libc++] Fix broken configuration system-libcxxabi on Apple (#110920)
ldionne Oct 9, 2024
32db6fb
[mlir][vector] Implement speculation for vector.transferx ops (#111533)
Groverkss Oct 9, 2024
5b03efb
[Clang][OpenMP] Add permutation clause (#92030)
Meinersbur Oct 9, 2024
fa3258e
[VPlan] Sink retrieving legacy costs to more specific computeCost imp…
fhahn Oct 9, 2024
c47f3e8
[X86] combineSelect - Fold select(pcmpeq(and(X,Pow2),0),A,B) -> selec…
RKSimon Oct 9, 2024
15dc2d5
[IR] Prevent implicit SymbolTableListTraits template instantiation (#…
vmustya Oct 9, 2024
d25f1a1
Add 64bit atomic check in the is_always_lock_free_pass test. (#111540)
simpal01 Oct 9, 2024
1e357cd
AMDGPU: Use pointer types more consistently (#111651)
arsenm Oct 9, 2024
a9ebdbb
[MLIR] Vector: turn the ExtractStridedSlice rewrite pattern from #111…
bjacob Oct 9, 2024
390943f
[flang] Implement conversion of compatible derived types (#111165)
luporl Oct 9, 2024
6f8e855
[clang][bytecode] Implement __builtin_ai32_addcarryx* (#111671)
tbaederr Oct 9, 2024
7d9f993
[Transform] Avoid repeated hash lookups (NFC) (#111620)
kazutakahirata Oct 9, 2024
48e4d67
[DSE] Simplify code with MapVector::operator[] (NFC) (#111621)
kazutakahirata Oct 9, 2024
bda4fc0
[NVPTX] Avoid repeated map lookups (NFC) (#111627)
kazutakahirata Oct 9, 2024
1ad5f31
[Clang] Avoid a crash when parsing an invalid pseudo-destructor (#111…
cor3ntin Oct 9, 2024
c911b0a
[clang-tidy] Avoid repeated hash lookups (NFC) (#111628)
kazutakahirata Oct 9, 2024
01a0e85
[Conversion] Avoid repeated hash lookups (NFC) (#111637)
kazutakahirata Oct 9, 2024
f59b151
[bazel] port 8e2ccdc4deedd463a20237b4d842b4c51f9fe603
metaflow Oct 9, 2024
e85fcb7
AMDGPU: Add instruction flags when lowering ctor/dtor (#111652)
arsenm Oct 9, 2024
6654578
[LLVM][AArch64] Enable SVEIntrinsicOpts at all optimisation levels.
paulwalker-arm Oct 8, 2024
c4d288d
[flang][OpenMP] Don't check unlabelled `cycle` branching for target l…
ergawy Oct 9, 2024
1731bb7
llvm-reduce: Fix not checking shouldKeep in special-globals reduction…
arsenm Oct 9, 2024
e637a5c
[clang][bytecode] Only allow lossless ptr-to-int casts (#111669)
tbaederr Oct 9, 2024
72a957b
[Cuda] Handle -fcuda-short-ptr even with -nocudalib (#111682)
frasercrmck Oct 9, 2024
c136d32
[VectorCombine] Do not try to operate on OperandBundles. (#111635)
davemgreen Oct 9, 2024
d905a3c
[NFC] Format MachineVerifier.cpp to remove extra indentation (#111602)
ellishg Oct 9, 2024
774893d
[mlir][ROCDL] Plumb through AMDGPU memory access metadata (#110916)
krzysz00 Oct 9, 2024
18952bd
[gn build] Fix up win/x86 flags and add stage2_unix_x86 (#111595)
aeubanks Oct 9, 2024
2e47b93
[ARM] Honour -mno-movt in stack protector handling (#109022)
ardbiesheuvel Oct 9, 2024
cf5bbeb
[gn build] Remove unix x86 stage2 toolchain
aeubanks Oct 9, 2024
1553cb5
[Sema] Support negation/parens with __builtin_available (#111439)
gburgessiv Oct 9, 2024
17bc959
[AMDGPU] Optionally Use GCNRPTrackers during scheduling (#93090)
jrbyrnes Oct 9, 2024
ec450b1
[mlir][xegpu] Allow out-of-bounds writes (#110811)
adam-smnk Oct 9, 2024
18d655f
[SimplifyCFG][NFC] Improve compile time for TryToSimplifyUncondBranch…
aemerson Oct 9, 2024
13cd43a
[Clang][OpenMP] Do not use feature option during packaging (#111702)
saiislam Oct 9, 2024
3a08551
[AMDGPU] Fix expensive check
jrbyrnes Oct 9, 2024
4e33afe
[libc][math] Implement `issignaling` and `iscanonical` macro. (#111403)
Sh0g0-1758 Oct 9, 2024
ee0e17a
[SandboxVec][DAG] Drop RAR and fix dependency scanning loop (#111715)
Oct 9, 2024
10ada4a
[SandboxVectorizer] Use sbvec-passes flag to create a pipeline of Reg…
slackito Oct 9, 2024
a075e78
AMDGPU: Fix incorrectly selecting fp8/bf8 conversion intrinsics (#107…
arsenm Oct 9, 2024
dc09f96
[test] remove profile file at the start of profile/instrprof-write-fi…
Oct 9, 2024
102c384
Revert "[SandboxVectorizer] Use sbvec-passes flag to create a pipelin…
slackito Oct 9, 2024
208584d
[clang][bytecode] Fix source range of uncalled base dtor (#111683)
tbaederr Oct 9, 2024
1bb52e9
[CIR] Build out AST consumer patterns to reach the entry point into C…
lanza Oct 9, 2024
1cfe5b8
[lldb] Use SEND_ERROR instead of FATAL_ERROR in test/CMakeLists.txt (…
JDevlieghere Oct 9, 2024
e82fcda
[Coroutines] Move util headers to include/llvm (#111599)
Oct 9, 2024
9200ade
[libc++] Narrow the exports for common_type (#111681)
ldionne Oct 9, 2024
749e218
[libc++][NFC] Remove obsolete --osx-roots parameter to run-buildbot
ldionne Oct 9, 2024
4605ba0
[flang] Link libflangPasses against correct libraries
tarunprabhu Oct 9, 2024
e073717
[libc++abi] Rename abort_message to __abort_message (#111413)
petrhosek Oct 9, 2024
d602f93
[flang][OpenMP] Treat POINTER variables as valid variable list items …
kparzysz Oct 9, 2024
f020bf1
[SLP]Initial support for non-power-of-2 (but whole reg) vectorization…
alexey-bataev Oct 9, 2024
74e1062
[MLIR] Don't build MLIRExecutionEngineShared on Windows (#109524)
Zentrik Oct 9, 2024
f0fc1d3
[RISCV] Use MCStreamer::emitInstruction instead of calling AsmPrinter…
topperc Oct 9, 2024
65bd5ed
[mlir][openacc] Update verifier to catch missing device type attribut…
clementval Oct 9, 2024
35684fa
[Github] Switch vectorization PR label to vectorizers (#111633)
boomanaiden154 Oct 9, 2024
853c43d
[TTI] NFC: Port TLI.shouldSinkOperands to TTI (#110564)
jrbyrnes Oct 9, 2024
115cb40
[WebAssembly] Don't fold non-nuw add/sub in FastISel (#111278)
aheejin Oct 9, 2024
ac3321f
[lldb] Add missing include to SBLanguages.h (#111763)
chelcassanova Oct 9, 2024
91dd4ec
Revert "[clang] Track function template instantiation from definition…
sdkrystian Oct 9, 2024
c55d68f
[clang][deps] Serialize JSON without creating intermediate objects (#…
jansvoboda11 Oct 9, 2024
1dff330
Revert "Reapply "[Clang][Sema] Refactor collection of multi-level tem…
sdkrystian Oct 9, 2024
4b4a0d4
Reapply "[AMDGPU][GlobalISel] Fix load/store of pointer vectors, buff…
krzysz00 Oct 9, 2024
0aaac4f
[clang-tidy][performance-move-const-arg] Fix crash when argument type…
nicovank Oct 9, 2024
4aba20f
[NFC][clang-tidy] Add type annotations to rename_check.py (#108443)
nicovank Oct 9, 2024
dc85d52
[CGData][ThinLTO] Global Outlining with Two-CodeGen Rounds (#90933)
kyulee-com Oct 9, 2024
a797144
[NFC] [MTE] Improve readability of AArch64GlobalsTagging (#111580)
fmayer Oct 9, 2024
e547d04
Fix build failure for [CGData][ThinLTO] Global Outlining with Two-Cod…
kyulee-com Oct 9, 2024
a31d0b2
[AMDGPU] Remove some lit check lines
jrbyrnes Oct 9, 2024
61a4678
Improve type lookup using .debug_names parent chain (#108907)
jeffreytan81 Oct 9, 2024
923566a
[ConstantFold] Fold `logb` and `logbf` when the input parameter is a …
c8ef Oct 9, 2024
d52c840
SelectionDAG/expandFMINNUM_FMAXNUM: skips vector if SETCC/VSELECT is …
wzssyqa Oct 10, 2024
756ec99
[SandboxVec] Re-land "Use sbvec-passes flag to create a pipeline of R…
slackito Oct 10, 2024
68a5f5d
[lldb] Fix TestGlobalModuleCache.py for remote debugging (#111483)
igorkudrin Oct 10, 2024
03229e7
[Clang][Parser] Don't evaluate concept when its definition is invalid…
zyn0217 Oct 10, 2024
5a74a4a
[Attributor] Take the address space from addrspacecast directly (#108…
shiltian Oct 10, 2024
1be849c
[BOLT] Avoid repeated hash lookups (NFC) (#111782)
kazutakahirata Oct 10, 2024
9093ba9
[Support] Include Support/thread.h before api implementations (#111175)
fsfod Oct 10, 2024
562999a
[clang] assume_aligned incorrectly diagnoses a dependent return type …
AmrDeveloper Oct 10, 2024
c86edd0
[SPIR-V] strengthen some lit tests (#111636)
ssahasra Oct 10, 2024
9432f70
[MLIR][NVGPU-Tests] Fix a failing sm90 test (#111731)
durga4github Oct 10, 2024
527cd11
[RISCV] Move testing of Smrnmi CSRs to machine-csr-names.s. NFC (#111…
topperc Oct 10, 2024
1d3bfbb
[MLIR][LLVM] Fix import of globals with references to other globals (…
Dinistro Oct 10, 2024
cd04a9d
[SimplifyCFG] Add/update tests for merging invokes with different att…
goldsteinn Oct 9, 2024
82ac399
[SimplifyCFG] Allow merging invoke's with different attrs
goldsteinn Oct 9, 2024
9fb2378
[libcxx] [test] Merge the MinGW static/shared test config files (#111…
mstorsjo Oct 10, 2024
c15611a
[bazel] port dc85d5263ed5e416cb4ddf405611472f4ef12fd3
metaflow Oct 10, 2024
f93258e
[clang][bytecode] Diagnose class-specific operator delete calls (#111…
tbaederr Oct 10, 2024
8d35ab8
AArch64: Add FMINNUM_IEEE and FMAXNUM_IEEE support (#107855)
wzssyqa Oct 10, 2024
6213aa5
Reland: [clang] Finish implementation of P0522 (#111711)
mizvekov Oct 10, 2024
12ae1ea
[C++20][Modules] Relax ODR check in unnamed modules (#111160)
dmpolukhin Oct 10, 2024
224519b
[clang] CWG2398: improve overload resolution backwards compat (#107350)
mizvekov Oct 10, 2024
4dadf42
[clang] Implement TTP P0522 pack matching for deduced function templa…
mizvekov Oct 10, 2024
741ad3a
[mlir][llvmir] Added extra builders for CallInstrinsicOp (#111664)
FMarno Oct 10, 2024
1fa3c85
[Clang] prevent recovery call expression from proceeding with explici…
a-tarasyuk Oct 10, 2024
1e49670
[DAGISel] Keep flags when converting FP load/store to integer (#111679)
ostannard Oct 10, 2024
f1eac77
[clang][bytecode] Check new builtins for integer types (#111801)
tbaederr Oct 10, 2024
06eb10d
[flang][driver] rename flang-new to flang (#110023)
everythingfunctional Oct 10, 2024
54d3cf1
[MLIR][LLVM] Fix nameless global import to support use before def cas…
Dinistro Oct 10, 2024
5184d76
[InstCombine] Convert @log to @llvm.log if the input is known positiv…
davemgreen Oct 10, 2024
d124b98
[mlir] add overload `createDIScopeForLLVMFuncOp` function (#111689)
Observer007 Oct 10, 2024
99608f1
[clang][HLSL] Add sign intrinsic part 4 (#108396)
tgymnich Oct 10, 2024
993de55
[lldb][docs] Add link to RISC-V tracking issue in Platform Support
DavidSpickett Oct 10, 2024
3e4ee76
[X86] Fold EXTRACT_SUBVECTOR(ONEUSE(EXTRACT_SUBVECTOR(V,C1))),C2) - E…
RKSimon Oct 10, 2024
7890919
[lldb] Check for Python 'packaging' module at configuration time (#11…
weliveindetail Oct 10, 2024
c36f902
AMDGPU/GlobalISel: Insert m0 initialization before sextload/zextload …
arsenm Oct 10, 2024
039e6f8
[AMDGPU][NewPM] Fill out AMDGPU addMachineSSAOptimizations (#111658)
optimisan Oct 10, 2024
b9754e9
[LTO] Run Argument Promotion before IPSCCP (#111163)
hazzlim Oct 10, 2024
aca998e
[mlir][gpu] Add known subgroup size
FMarno Oct 1, 2024
31fd327
[mlir] Use intel_reqd_sub_group_size as backup for gpu.known_subgroup…
FMarno Oct 17, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/new-prs-labeler.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ PGO:
- llvm/**/llvm-profdata/**/*
- llvm/**/llvm-profgen/**/*

vectorization:
vectorizers:
- llvm/lib/Transforms/Vectorize/**/*
- llvm/include/llvm/Transforms/Vectorize/**/*

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -328,7 +328,7 @@ jobs:
run: |
# Build some of the mlir tools that take a long time to link
if [ "${{ needs.prepare.outputs.build-flang }}" = "true" ]; then
ninja -C ${{ steps.setup-stage.outputs.build-prefix }}/build/tools/clang/stage2-bins/ -j2 flang-new bbc
ninja -C ${{ steps.setup-stage.outputs.build-prefix }}/build/tools/clang/stage2-bins/ -j2 flang bbc
fi
ninja -C ${{ steps.setup-stage.outputs.build-prefix }}/build/tools/clang/stage2-bins/ \
mlir-bytecode-parser-fuzzer \
Expand Down
6 changes: 1 addition & 5 deletions bolt/lib/Profile/YAMLProfileReader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -643,11 +643,7 @@ size_t YAMLProfileReader::matchWithNameSimilarity(BinaryContext &BC) {
// equal number of blocks.
if (NamespaceToProfiledBFSizesIt->second.count(BF->size()) == 0)
continue;
auto NamespaceToBFsIt = NamespaceToBFs.find(Namespace);
if (NamespaceToBFsIt == NamespaceToBFs.end())
NamespaceToBFs[Namespace] = {BF};
else
NamespaceToBFsIt->second.push_back(BF);
NamespaceToBFs[Namespace].push_back(BF);
}

// Iterates through all profiled functions and binary functions belonging to
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -474,10 +474,8 @@ void ProTypeMemberInitCheck::checkMissingMemberInitializer(
// It only includes fields that have not been fixed
SmallPtrSet<const FieldDecl *, 16> AllFieldsToInit;
forEachField(ClassDecl, FieldsToInit, [&](const FieldDecl *F) {
if (!HasRecordClassMemberSet.contains(F)) {
if (HasRecordClassMemberSet.insert(F).second)
AllFieldsToInit.insert(F);
HasRecordClassMemberSet.insert(F);
}
});
if (FieldsToInit.empty())
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -209,8 +209,9 @@ void MoveConstArgCheck::check(const MatchFinder::MatchResult &Result) {
}

if (const CXXRecordDecl *RecordDecl = ArgType->getAsCXXRecordDecl();
RecordDecl && !(RecordDecl->hasMoveConstructor() &&
RecordDecl->hasMoveAssignment())) {
RecordDecl && RecordDecl->hasDefinition() &&
!(RecordDecl->hasMoveConstructor() &&
RecordDecl->hasMoveAssignment())) {
const bool MissingMoveAssignment = !RecordDecl->hasMoveAssignment();
const bool MissingMoveConstructor = !RecordDecl->hasMoveConstructor();
const bool MissingBoth = MissingMoveAssignment && MissingMoveConstructor;
Expand Down
32 changes: 18 additions & 14 deletions clang-tools-extra/clang-tidy/rename_check.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,16 @@
#
# ===-----------------------------------------------------------------------===#

from __future__ import unicode_literals

import argparse
import glob
import io
import os
import re
import sys
from typing import List


def replaceInFileRegex(fileName, sFrom, sTo):
def replaceInFileRegex(fileName: str, sFrom: str, sTo: str) -> None:
if sFrom == sTo:
return

Expand All @@ -35,7 +35,7 @@ def replaceInFileRegex(fileName, sFrom, sTo):
f.write(txt)


def replaceInFile(fileName, sFrom, sTo):
def replaceInFile(fileName: str, sFrom: str, sTo: str) -> None:
if sFrom == sTo:
return
txt = None
Expand All @@ -51,7 +51,7 @@ def replaceInFile(fileName, sFrom, sTo):
f.write(txt)


def generateCommentLineHeader(filename):
def generateCommentLineHeader(filename: str) -> str:
return "".join(
[
"//===--- ",
Expand All @@ -63,7 +63,7 @@ def generateCommentLineHeader(filename):
)


def generateCommentLineSource(filename):
def generateCommentLineSource(filename: str) -> str:
return "".join(
[
"//===--- ",
Expand All @@ -75,7 +75,7 @@ def generateCommentLineSource(filename):
)


def fileRename(fileName, sFrom, sTo):
def fileRename(fileName: str, sFrom: str, sTo: str) -> str:
if sFrom not in fileName or sFrom == sTo:
return fileName
newFileName = fileName.replace(sFrom, sTo)
Expand All @@ -84,7 +84,7 @@ def fileRename(fileName, sFrom, sTo):
return newFileName


def deleteMatchingLines(fileName, pattern):
def deleteMatchingLines(fileName: str, pattern: str) -> bool:
lines = None
with io.open(fileName, "r", encoding="utf8") as f:
lines = f.readlines()
Expand All @@ -101,7 +101,7 @@ def deleteMatchingLines(fileName, pattern):
return True


def getListOfFiles(clang_tidy_path):
def getListOfFiles(clang_tidy_path: str) -> List[str]:
files = glob.glob(os.path.join(clang_tidy_path, "**"), recursive=True)
files += [
os.path.normpath(os.path.join(clang_tidy_path, "../docs/ReleaseNotes.rst"))
Expand All @@ -124,7 +124,7 @@ def getListOfFiles(clang_tidy_path):

# Adapts the module's CMakelist file. Returns 'True' if it could add a new
# entry and 'False' if the entry already existed.
def adapt_cmake(module_path, check_name_camel):
def adapt_cmake(module_path: str, check_name_camel: str) -> bool:
filename = os.path.join(module_path, "CMakeLists.txt")
with io.open(filename, "r", encoding="utf8") as f:
lines = f.readlines()
Expand Down Expand Up @@ -153,7 +153,9 @@ def adapt_cmake(module_path, check_name_camel):


# Modifies the module to include the new check.
def adapt_module(module_path, module, check_name, check_name_camel):
def adapt_module(
module_path: str, module: str, check_name: str, check_name_camel: str
) -> None:
modulecpp = next(
iter(
filter(
Expand Down Expand Up @@ -204,7 +206,9 @@ def adapt_module(module_path, module, check_name, check_name_camel):


# Adds a release notes entry.
def add_release_notes(clang_tidy_path, old_check_name, new_check_name):
def add_release_notes(
clang_tidy_path: str, old_check_name: str, new_check_name: str
) -> None:
filename = os.path.normpath(
os.path.join(clang_tidy_path, "../docs/ReleaseNotes.rst")
)
Expand Down Expand Up @@ -262,7 +266,7 @@ def add_release_notes(clang_tidy_path, old_check_name, new_check_name):
f.write(line)


def main():
def main() -> None:
parser = argparse.ArgumentParser(description="Rename clang-tidy check.")
parser.add_argument("old_check_name", type=str, help="Old check name.")
parser.add_argument("new_check_name", type=str, help="New check name.")
Expand Down Expand Up @@ -311,7 +315,7 @@ def main():
"Check name '%s' not found in %s. Exiting."
% (check_name_camel, cmake_lists)
)
return 1
sys.exit(1)

modulecpp = next(
iter(
Expand Down
4 changes: 4 additions & 0 deletions clang-tools-extra/docs/ReleaseNotes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,10 @@ Changes in existing checks
<clang-tidy/checks/performance/avoid-endl>` check to use ``std::endl`` as
placeholder when lexer cannot get source text.

- Improved :doc:`performance-move-const-arg
<clang-tidy/checks/performance/move-const-arg>` check to fix a crash when
an argument type is declared but not defined.

- Improved :doc:`readability-container-contains
<clang-tidy/checks/readability/container-contains>` check to let it work on
any class that has a ``contains`` method.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -546,3 +546,17 @@ void testAlsoNonMoveable() {
}

} // namespace issue_62550

namespace GH111450 {
struct Status;

struct Error {
Error(const Status& S);
};

struct Result {
Error E;
Result(Status&& S) : E(std::move(S)) {}
// CHECK-MESSAGES: :[[@LINE-1]]:{{[0-9]+}}: warning: passing result of std::move() as a const reference argument; no move will actually happen [performance-move-const-arg]
};
} // namespace GH111450
20 changes: 15 additions & 5 deletions clang/docs/ReleaseNotes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,10 @@ C++23 Feature Support
C++20 Feature Support
^^^^^^^^^^^^^^^^^^^^^

C++17 Feature Support
^^^^^^^^^^^^^^^^^^^^^
- The implementation of the relaxed template template argument matching rules is
more complete and reliable, and should provide more accurate diagnostics.

Resolutions to C++ Defect Reports
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Expand All @@ -200,7 +204,8 @@ Resolutions to C++ Defect Reports
(`CWG2351: void{} <https://cplusplus.github.io/CWG/issues/2351.html>`_).

- Clang now has improved resolution to CWG2398, allowing class templates to have
default arguments deduced when partial ordering.
default arguments deduced when partial ordering, and better backwards compatibility
in overload resolution.

- Clang now allows comparing unequal object pointers that have been cast to ``void *``
in constant expressions. These comparisons always worked in non-constant expressions.
Expand Down Expand Up @@ -331,6 +336,10 @@ Improvements to Clang's diagnostics

- Clang now diagnoses when the result of a [[nodiscard]] function is discarded after being cast in C. Fixes #GH104391.

- Clang now properly explains the reason a template template argument failed to
match a template template parameter, in terms of the C++17 relaxed matching rules
instead of the old ones.

- Don't emit duplicated dangling diagnostics. (#GH93386).

- Improved diagnostic when trying to befriend a concept. (#GH45182).
Expand Down Expand Up @@ -440,6 +449,8 @@ Bug Fixes to C++ Support
- Correctly check constraints of explicit instantiations of member functions. (#GH46029)
- When performing partial ordering of function templates, clang now checks that
the deduction was consistent. Fixes (#GH18291).
- Fixes to several issues in partial ordering of template template parameters, which
were documented in the test suite.
- Fixed an assertion failure about a constraint of a friend function template references to a value with greater
template depth than the friend function template. (#GH98258)
- Clang now rebuilds the template parameters of out-of-line declarations and specializations in the context
Expand Down Expand Up @@ -468,7 +479,6 @@ Bug Fixes to C++ Support
- Fixed an assertion failure in debug mode, and potential crashes in release mode, when
diagnosing a failed cast caused indirectly by a failed implicit conversion to the type of the constructor parameter.
- Fixed an assertion failure by adjusting integral to boolean vector conversions (#GH108326)
- Clang is now better at keeping track of friend function template instance contexts. (#GH55509)
- Fixed an issue deducing non-type template arguments of reference type. (#GH73460)
- Fixed an issue in constraint evaluation, where type constraints on the lambda expression
containing outer unexpanded parameters were not correctly expanded. (#GH101754)
Expand All @@ -478,9 +488,9 @@ Bug Fixes to C++ Support
in certain friend declarations. (#GH93099)
- Clang now instantiates the correct lambda call operator when a lambda's class type is
merged across modules. (#GH110401)
- Clang now uses the correct set of template argument lists when comparing the constraints of
out-of-line definitions and member templates explicitly specialized for a given implicit instantiation of
a class template. (#GH102320)
- Fix a crash when parsing a pseudo destructor involving an invalid type. (#GH111460)
- Fixed an assertion failure when invoking recovery call expressions with explicit attributes
and undeclared templates. (#GH107047, #GH49093)

Bug Fixes to AST Handling
^^^^^^^^^^^^^^^^^^^^^^^^^
Expand Down
7 changes: 0 additions & 7 deletions clang/include/clang/AST/Decl.h
Original file line number Diff line number Diff line change
Expand Up @@ -2299,13 +2299,6 @@ class FunctionDecl : public DeclaratorDecl,
FunctionDeclBits.IsLateTemplateParsed = ILT;
}

bool isInstantiatedFromMemberTemplate() const {
return FunctionDeclBits.IsInstantiatedFromMemberTemplate;
}
void setInstantiatedFromMemberTemplate(bool Val = true) {
FunctionDeclBits.IsInstantiatedFromMemberTemplate = Val;
}

/// Whether this function is "trivial" in some specialized C++ senses.
/// Can only be true for default constructors, copy constructors,
/// copy assignment operators, and destructors. Not meaningful until
Expand Down
13 changes: 7 additions & 6 deletions clang/include/clang/AST/DeclBase.h
Original file line number Diff line number Diff line change
Expand Up @@ -687,6 +687,9 @@ class alignas(8) Decl {
/// Whether this declaration comes from a named module.
bool isInNamedModule() const;

/// Whether this declaration comes from a header unit.
bool isFromHeaderUnit() const;

/// Return true if this declaration has an attribute which acts as
/// definition of the entity, such as 'alias' or 'ifunc'.
bool hasDefiningAttr() const;
Expand Down Expand Up @@ -1763,8 +1766,6 @@ class DeclContext {
uint64_t HasImplicitReturnZero : 1;
LLVM_PREFERRED_TYPE(bool)
uint64_t IsLateTemplateParsed : 1;
LLVM_PREFERRED_TYPE(bool)
uint64_t IsInstantiatedFromMemberTemplate : 1;

/// Kind of contexpr specifier as defined by ConstexprSpecKind.
LLVM_PREFERRED_TYPE(ConstexprSpecKind)
Expand Down Expand Up @@ -1815,7 +1816,7 @@ class DeclContext {
};

/// Number of inherited and non-inherited bits in FunctionDeclBitfields.
enum { NumFunctionDeclBits = NumDeclContextBits + 32 };
enum { NumFunctionDeclBits = NumDeclContextBits + 31 };

/// Stores the bits used by CXXConstructorDecl. If modified
/// NumCXXConstructorDeclBits and the accessor
Expand All @@ -1826,12 +1827,12 @@ class DeclContext {
LLVM_PREFERRED_TYPE(FunctionDeclBitfields)
uint64_t : NumFunctionDeclBits;

/// 19 bits to fit in the remaining available space.
/// 20 bits to fit in the remaining available space.
/// Note that this makes CXXConstructorDeclBitfields take
/// exactly 64 bits and thus the width of NumCtorInitializers
/// will need to be shrunk if some bit is added to NumDeclContextBitfields,
/// NumFunctionDeclBitfields or CXXConstructorDeclBitfields.
uint64_t NumCtorInitializers : 16;
uint64_t NumCtorInitializers : 17;
LLVM_PREFERRED_TYPE(bool)
uint64_t IsInheritingConstructor : 1;

Expand All @@ -1845,7 +1846,7 @@ class DeclContext {
};

/// Number of inherited and non-inherited bits in CXXConstructorDeclBitfields.
enum { NumCXXConstructorDeclBits = NumFunctionDeclBits + 19 };
enum { NumCXXConstructorDeclBits = NumFunctionDeclBits + 20 };

/// Stores the bits used by ObjCMethodDecl.
/// If modified NumObjCMethodDeclBits and the accessor
Expand Down
Loading