Skip to content

Commit 0c28e6c

Browse files
author
iclsrc
committed
Merge from 'main' to 'sycl-web' (67 commits)
2 parents 9d05e73 + dea16eb commit 0c28e6c

File tree

228 files changed

+4721
-1822
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

228 files changed

+4721
-1822
lines changed

clang-tools-extra/clangd/index/remote/server/Server.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ std::unique_ptr<Logger> makeLogger(llvm::StringRef LogPrefix,
451451
void log(Level L, const char *Fmt,
452452
const llvm::formatv_object_base &Message) override {
453453
if (Context::current().get(CurrentRequest) == nullptr ||
454-
llvm::StringRef(Fmt).startswith("[public]"))
454+
llvm::StringRef(Fmt).starts_with("[public]"))
455455
return StreamLogger::log(L, Fmt, Message);
456456
if (L >= Error)
457457
return StreamLogger::log(L, Fmt,

clang/docs/ReleaseNotes.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -688,6 +688,9 @@ Bug Fixes in This Version
688688
(`#62157 <https://github.com/llvm/llvm-project/issues/62157>`_) and
689689
(`#64885 <https://github.com/llvm/llvm-project/issues/64885>`_) and
690690
(`#65568 <https://github.com/llvm/llvm-project/issues/65568>`_)
691+
- Fix an issue where clang doesn't respect detault template arguments that
692+
are added in a later redeclaration for CTAD.
693+
Fixes (#69987 <https://github.com/llvm/llvm-project/issues/69987>`_)
691694

692695
Bug Fixes to Compiler Builtins
693696
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

clang/include/clang/Analysis/FlowSensitive/DataflowEnvironment.h

Lines changed: 8 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,8 @@ class Environment {
325325
///
326326
/// Requirements:
327327
/// `E` must be a prvalue of record type.
328-
RecordStorageLocation &getResultObjectLocation(const Expr &RecordPRValue);
328+
RecordStorageLocation &
329+
getResultObjectLocation(const Expr &RecordPRValue) const;
329330

330331
/// Returns the return value of the current function. This can be null if:
331332
/// - The function has a void return type
@@ -434,24 +435,14 @@ class Environment {
434435

435436
/// Assigns `Val` as the value of the prvalue `E` in the environment.
436437
///
437-
/// If `E` is not yet associated with a storage location, associates it with
438-
/// a newly created storage location. In any case, associates the storage
439-
/// location of `E` with `Val`.
440-
///
441-
/// Once the migration to strict handling of value categories is complete
442-
/// (see https://discourse.llvm.org/t/70086), this function will be renamed to
443-
/// `setValue()`. At this point, prvalue expressions will be associated
444-
/// directly with `Value`s, and the legacy behavior of associating prvalue
445-
/// expressions with storage locations (as described above) will be
446-
/// eliminated.
447-
///
448438
/// Requirements:
449439
///
450-
/// `E` must be a prvalue
451-
/// If `Val` is a `RecordValue`, its `RecordStorageLocation` must be the
452-
/// same as that of any `RecordValue` that has already been associated with
453-
/// `E`. This is to guarantee that the result object initialized by a prvalue
454-
/// `RecordValue` has a durable storage location.
440+
/// - `E` must be a prvalue
441+
/// - If `Val` is a `RecordValue`, its `RecordStorageLocation` must be
442+
/// `getResultObjectLocation(E)`. An exception to this is if `E` is an
443+
/// expression that originally creates a `RecordValue` (such as a
444+
/// `CXXConstructExpr` or `CallExpr`), as these establish the location of
445+
/// the result object in the first place.
455446
void setValue(const Expr &E, Value &Val);
456447

457448
/// Returns the value assigned to `Loc` in the environment or null if `Loc`
@@ -608,14 +599,6 @@ class Environment {
608599
// The copy-constructor is for use in fork() only.
609600
Environment(const Environment &) = default;
610601

611-
/// Internal version of `setStorageLocation()` that doesn't check if the
612-
/// expression is a prvalue.
613-
void setStorageLocationInternal(const Expr &E, StorageLocation &Loc);
614-
615-
/// Internal version of `getStorageLocation()` that doesn't check if the
616-
/// expression is a prvalue.
617-
StorageLocation *getStorageLocationInternal(const Expr &E) const;
618-
619602
/// Creates a value appropriate for `Type`, if `Type` is supported, otherwise
620603
/// return null.
621604
///

clang/include/clang/Basic/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,9 @@ clang_tablegen(arm_sve_typeflags.inc -gen-arm-sve-typeflags
8888
clang_tablegen(arm_sve_sema_rangechecks.inc -gen-arm-sve-sema-rangechecks
8989
SOURCE arm_sve.td
9090
TARGET ClangARMSveSemaRangeChecks)
91+
clang_tablegen(arm_sve_streaming_attrs.inc -gen-arm-sve-streaming-attrs
92+
SOURCE arm_sve.td
93+
TARGET ClangARMSveStreamingAttrs)
9194
clang_tablegen(arm_sme_builtins.inc -gen-arm-sme-builtins
9295
SOURCE arm_sme.td
9396
TARGET ClangARMSmeBuiltins)
@@ -97,6 +100,9 @@ clang_tablegen(arm_sme_builtin_cg.inc -gen-arm-sme-builtin-codegen
97100
clang_tablegen(arm_sme_sema_rangechecks.inc -gen-arm-sme-sema-rangechecks
98101
SOURCE arm_sme.td
99102
TARGET ClangARMSmeSemaRangeChecks)
103+
clang_tablegen(arm_sme_streaming_attrs.inc -gen-arm-sme-streaming-attrs
104+
SOURCE arm_sme.td
105+
TARGET ClangARMSmeStreamingAttrs)
100106
clang_tablegen(arm_cde_builtins.inc -gen-arm-cde-builtin-def
101107
SOURCE arm_cde.td
102108
TARGET ClangARMCdeBuiltinsDef)

0 commit comments

Comments
 (0)