https://github.com/sam-mccall closed
https://github.com/llvm/llvm-project/pull/114778
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sam-mccall updated
https://github.com/llvm/llvm-project/pull/114778
>From 58baaccd4849fee2f8f1966de62660cb4c5bfa6d Mon Sep 17 00:00:00 2001
From: Sam McCall
Date: Mon, 4 Nov 2024 12:48:35 +0100
Subject: [PATCH 1/2] [clang] Make nullability-on-classes more robust to
redeclara
https://github.com/sam-mccall created
https://github.com/llvm/llvm-project/pull/114778
This is relevant after b24650e814e55d90acfc40acf045456c98f32b9c where
the selected template decl can be anything, even apparently a friend
declaration in some cases.
>From 58baaccd4849fee2f8f1966de62660cb4c5
https://github.com/sam-mccall updated
https://github.com/llvm/llvm-project/pull/109795
>From 8dd7d0afc65526f152a02cbd5772ba9882cc2614 Mon Sep 17 00:00:00 2001
From: Sam McCall
Date: Tue, 24 Sep 2024 15:02:36 +0200
Subject: [PATCH 1/3] [clang] Add/enhance documentation for some important
classe
@@ -79,8 +79,24 @@ enum class StringLiteralKind;
// AST classes for statements.
//===--===//
-/// Stmt - This represents one statement.
+/// A statement or expression in the program.
///
+/// This is the bas
https://github.com/sam-mccall updated
https://github.com/llvm/llvm-project/pull/109795
>From 8dd7d0afc65526f152a02cbd5772ba9882cc2614 Mon Sep 17 00:00:00 2001
From: Sam McCall
Date: Tue, 24 Sep 2024 15:02:36 +0200
Subject: [PATCH 1/2] [clang] Add/enhance documentation for some important
classe
sam-mccall wrote:
There are some classes here where I think the concepts are tricky and
under-explained (SourceManager, TypeLoc) or just important enough that it's
worth spending a few more words in general.
(I'm sure there are a bunch more, but I hit my timebox)
If you think anything is too w
https://github.com/sam-mccall created
https://github.com/llvm/llvm-project/pull/109795
None
>From 8dd7d0afc65526f152a02cbd5772ba9882cc2614 Mon Sep 17 00:00:00 2001
From: Sam McCall
Date: Tue, 24 Sep 2024 15:02:36 +0200
Subject: [PATCH] [clang] Add/enhance documentation for some important class
https://github.com/sam-mccall closed
https://github.com/llvm/llvm-project/pull/67228
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sam-mccall updated
https://github.com/llvm/llvm-project/pull/67228
>From a736ebb34a31fa0fd1c21a4f03c88d63856fb998 Mon Sep 17 00:00:00 2001
From: Sam McCall
Date: Sat, 23 Sep 2023 10:44:30 +0200
Subject: [PATCH] [include-cleaner] don't consider the associated header unused
Lo
sam-mccall wrote:
Apologies & thanks all for the pings.
I unfortunately won't be active on llvm-project for a while (other work
commitments), but I can get this landed.
https://github.com/llvm/llvm-project/pull/67228
___
cfe-commits mailing list
cfe-c
@@ -379,6 +379,54 @@ TEST_F(PragmaIncludeTest, IWYUKeep) {
EXPECT_TRUE(PI.shouldKeep(FM.getFile("std/set").get()));
}
+TEST_F(PragmaIncludeTest, AssociatedHeader) {
+ createEmptyFiles({"foo/main.h", "bar/main.h", "bar/other.h", "std/vector"});
+ auto IsKeep = [&](llvm::Str
@@ -379,6 +379,54 @@ TEST_F(PragmaIncludeTest, IWYUKeep) {
EXPECT_TRUE(PI.shouldKeep(FM.getFile("std/set").get()));
}
+TEST_F(PragmaIncludeTest, AssociatedHeader) {
+ createEmptyFiles({"foo/main.h", "bar/main.h", "bar/other.h", "std/vector"});
+ auto IsKeep = [&](llvm::Str
@@ -227,6 +230,7 @@ class PragmaIncludes::RecordPragma : public PPCallbacks,
public CommentHandler {
IncludedHeader = *File;
checkForExport(HashFID, HashLine, std::move(IncludedHeader), File);
sam-mccall wrote:
Nice catch, thanks!
https://github.com
https://github.com/sam-mccall approved this pull request.
The code looks good for the changes you want to make.
Personally I'd keep the existing pruning behavior for all duplicated nodes, and
use cosmetic/navigation changes to clarify. But I think you probably know
better than me what's useful
@@ -88,10 +88,12 @@ class ModelDumper {
void dump(Value &V) {
JOS.attribute("value_id", llvm::to_string(&V));
-if (!Visited.insert(&V).second)
- return;
-
JOS.attribute("kind", debugString(V.getKind()));
+if (!Visited.insert(&V).second) {
+ JOS.att
sam-mccall wrote:
Just wanted to say thanks - I didn't ever entirely understand how this was
used, but the build speed/complexity has been somewhat painful. Removing
features is thankless and sometimes risky, so I was expecting we'd live with
that speedbump forever.
https://github.com/llvm/ll
sam-mccall wrote:
The immediate deprecation causes a few issues:
- mechanical: we build with `-Wall -Werror -Wno-deprecated-declarations
-Wno-deprecated-other-stuff` in part to catch driver misuse and fix it early.
However this warning is not actionable, so now we need `-Wno-deprecated` which
sam-mccall wrote:
All makes sense to me.
I'd point out that the only revert I was asking for was asking for was of the
deprecation of the flag to restore the old behavior, and *optionally* the
default flip.
The combination of {prominent oss library, accepted by clang-18 and gcc, now
ICE, f
sam-mccall wrote:
I'm sorry that I wasn't able to more usefully reduce the failure cases. When
such regressions show up, we usually don't have any meaningful context on the
code. For our own code, we have guidelines to try to limit complexity which
makes reduction more tractable, but third-par
sam-mccall wrote:
@mizvekov Thank you! With that patch, clang not only doesn't crash on stdexec
with `-frelaxed-template-template-args`, but in fact accepts the code.
https://github.com/llvm/llvm-project/pull/89807
___
cfe-commits mailing list
cfe-co
sam-mccall wrote:
This commit did three things: A) changed the implementation, B) changed the
flag default, and C) deprecated the flag.
Since clang now crashes on widely-used, real-world code, can we at least revert
C, and ideally B until the crashes are fixed?
(It would also have been helpfu
sam-mccall wrote:
Here's a preprocessed file:
[repro.zip](https://github.com/llvm/llvm-project/files/15250584/repro.zip)
I tried to reduce, and got rid of most of the test code and some of the stdexec
code, but there's still a lot left.
I hit the end of my timebox on that. Maybe creduce can do
sam-mccall wrote:
This patch introduced a crash on code that clang previously accepted (I'm not
sure whether the code is correct).
The code is
https://github.com/nvidia/stdexec/tree/467f4a68ee04f3bb4c35e7a5dd13a3419da160cb,
building `test/stdexec/algos/adaptors/test_stopped_as_optional.cpp` c
https://github.com/sam-mccall edited
https://github.com/llvm/llvm-project/pull/89441
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sam-mccall approved this pull request.
Thanks, LGTM
https://github.com/llvm/llvm-project/pull/89441
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -1574,6 +1574,7 @@ bool HeaderSearch::ShouldEnterIncludeFile(Preprocessor
&PP,
}
}
+ FileInfo.IsLocallyIncluded = true;
sam-mccall wrote:
I'd consider placing this at the end of HandleHeaderIncludeOrImport rather than
here:
- it looks like there
@@ -2057,9 +2065,12 @@ void ASTWriter::WriteHeaderSearch(const HeaderSearch
&HS) {
// it as a header file (in which case HFI will be null) or if it hasn't
// changed since it was loaded. Also skip it if it's for a modular header
// from a different module; in that
@@ -237,6 +238,8 @@ GetAffectingModuleMaps(const Preprocessor &PP, Module
*RootModule) {
CollectIncludingMapsFromAncestors(CurrentModule);
for (const Module *ImportedModule : CurrentModule->Imports)
CollectIncludingMapsFromAncestors(ImportedModule);
+for (con
@@ -187,7 +187,8 @@ GetAffectingModuleMaps(const Preprocessor &PP, Module
*RootModule) {
continue;
const HeaderFileInfo *HFI = HS.getExistingLocalFileInfo(*File);
-if (!HFI || (HFI->isModuleHeader && !HFI->isCompilingModuleHeader))
+if (!HFI || (HFI->isModul
@@ -0,0 +1,20 @@
+// This test checks that a module map with a textual header can be marked as
sam-mccall wrote:
This is a useful test, I think there are a couple of other affecting-ness
properties that are important to test:
- that a textual header that *is*
https://github.com/sam-mccall approved this pull request.
Thanks! This looks good, much neater than my approach.
I'm interested in whether the DirectUses change is related to this, and would
like to slap on a couple of tests.
But either way, this looks good and it would be great to have it lan
https://github.com/sam-mccall edited
https://github.com/llvm/llvm-project/pull/89441
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -1441,6 +1441,10 @@ void HeaderSearch::MarkFileModuleHeader(FileEntryRef FE,
HFI.isCompilingModuleHeader |= isCompilingModuleHeader;
}
+void HeaderSearch::EnteredTextualFile(FileEntryRef File) {
+ getFileInfo(File).isCompilingModuleHeader = true;
sam-mcc
sam-mccall wrote:
> @sam-mccall That makes sense.
>
> I think one option we have here is to consider all module maps describing a
> textual header that got included as affecting. I'm concerned that a long
> chain of textual header includes might again be problematic.
Yeah, that's the option t
https://github.com/sam-mccall created
https://github.com/llvm/llvm-project/pull/89729
Prior to this change, modulemaps describing textual headers are considered
to affect the current module whenever HeaderFileInfos for those headers exist.
This wastes creates false dependencies that (among othe
sam-mccall wrote:
Yes, it's approximately the same problem. Thanks & sorry for the noise!
(We have a non-clang include-scanner that computes dependencies to ensure
hermetic builds. The indirect include defeats the include scanner, so we were
accidentally relying on `` being available for some
sam-mccall wrote:
> I updated the description of this PR, hopefully it makes more sense now. I
> still need to investigate what goes wrong in
> "Modules/preprocess-decluse.cpp". It seems that it assumes `%t/b.pcm` embeds
> the information from "a.modulemap".
I think it should embed that infor
sam-mccall wrote:
> Is this a pre-existing issue, or did my patch change to make "each textual
> header gets a `HFI`"?
My best understanding that your patch gave textual headers`HFI`s when the
module map was loaded, rather than when the header was included. This shouldn't
have mattered, but f
sam-mccall wrote:
> clang's headers all have proper modules now, are you sure you still need A?
We can't use `clang/lib/Headers/module.modulemap`, so we need something to
describe those headers.
Why can't we? In our build system, it's the **build system's** job to generate
modulemaps for your
sam-mccall wrote:
Thanks for the pointer to 87848 - reverting that one locally doesn't help
though, even in combination with applying #89005 and #89428. So this change
isn't on the critical path to fixing our builds, but still much appreciated and
will take a look now.
---
Unsurprisingly, th
https://github.com/sam-mccall approved this pull request.
This makes sense to me. It corresponds to our build structure and fixes the new
build failures we saw after 0cd0aa029647c8d1dba5c3d62f92325576796fa2.
Really appreciate your work on this!
https://github.com/llvm/llvm-project/pull/89441
_
sam-mccall wrote:
> Hmm, this will probably only work if you compile `A` into a PCM and then pass
> it to `B`. This is not how "Modules/preprocess-decluse.cpp" is set up.
In our case we always have a chain A <- B <- C.
A.modulemap can be affecting for B but should not be for C.
(Approximately,
sam-mccall wrote:
#89441 fixes our build problems, with or without this patch applied.
It's possible this patch makes things better - I haven't checked for actual
sloc usage yet, just whether the build fails.
So I'll focus on understanding that one and then return here.
(I think I'm close to
sam-mccall wrote:
I can confirm applying this allows our targets to build again! :tada:
Thank you, will take a look at the implementation now.
https://github.com/llvm/llvm-project/pull/89441
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
http
sam-mccall wrote:
Hmm, I locally reverted https://github.com/llvm/llvm-project/pull/87849 and
still see the same issue.
I'll patch #89428 instead, but I don't see how it could do better - it's just
putting the old and new behavior of #87849 behind a flag, right?
In any case I'll try it, and th
sam-mccall wrote:
Unfortunately with this patch I'm still seeing the same
source-location-exhausted error.
I'm going to try to understand why...
https://github.com/llvm/llvm-project/pull/89005
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
ht
sam-mccall wrote:
Ilya is out on vacation, I'm able to test this and will get started on that now
(apologies for delay & thanks for digging into this)
https://github.com/llvm/llvm-project/pull/89005
___
cfe-commits mailing list
cfe-commits@lists.llvm.
https://github.com/sam-mccall closed
https://github.com/llvm/llvm-project/pull/88727
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sam-mccall approved this pull request.
https://github.com/llvm/llvm-project/pull/88381
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sam-mccall approved this pull request.
https://github.com/llvm/llvm-project/pull/87611
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sam-mccall commented:
I'm not sold on the use of OptTable here, and think we should try some
alternatives. I don't want to be a burden, so I'm happy to try this out if you
like.
If it's just this tool then it's not that important, but I assume it's not.
There's possible scop
Danny =?utf-8?q?Mösch?= ,
Danny =?utf-8?q?Mösch?= ,
Danny =?utf-8?q?Mösch?= ,
Danny =?utf-8?q?Mösch?= ,
Danny =?utf-8?q?Mösch?= ,
Danny =?utf-8?q?Mösch?= ,
Danny =?utf-8?q?Mösch?= ,
Danny =?utf-8?q?Mösch?= ,
Danny =?utf-8?q?Mösch?= ,
Danny =?utf-8?q?Mösch?= ,
Danny =?utf-8?q?Mösch?= ,
Danny =?utf-8
Danny =?utf-8?q?Mösch?= ,
Danny =?utf-8?q?Mösch?= ,
Danny =?utf-8?q?Mösch?= ,
Danny =?utf-8?q?Mösch?= ,
Danny =?utf-8?q?Mösch?= ,
Danny =?utf-8?q?Mösch?= ,
Danny =?utf-8?q?Mösch?= ,
Danny =?utf-8?q?Mösch?= ,
Danny =?utf-8?q?Mösch?= ,
Danny =?utf-8?q?Mösch?= ,
Danny =?utf-8?q?Mösch?= ,
Danny =?utf-8
https://github.com/sam-mccall approved this pull request.
Thanks, this looks like the right fix, and cleaning up DclT while here makes
sense.
https://github.com/llvm/llvm-project/pull/88014
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https
@@ -3391,7 +3391,7 @@ class Sema final : public SemaBase {
bool ConstexprSupported, bool CLinkageMayDiffer);
/// type checking declaration initializers (C99 6.7.8)
- bool CheckForConstantInitializer(Expr *e, QualType t);
+ bool CheckForConstantInitializer(Expr *Init,
https://github.com/sam-mccall edited
https://github.com/llvm/llvm-project/pull/88014
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -112,7 +112,10 @@ struct UpdateIndexCallbacks : public ParsingCallbacks {
// Index outlives TUScheduler (declared first)
FIndex(FIndex),
// shared_ptr extends lifetime
- Stdlib(Stdlib)]() mutable {
+
https://github.com/sam-mccall edited
https://github.com/llvm/llvm-project/pull/87611
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sam-mccall commented:
I'm iffy on whether this is semantically right or not, but we need to solve
this problem somehow, so let's try the most obvious way.
https://github.com/llvm/llvm-project/pull/87611
___
cfe-commits mailing list
https://github.com/sam-mccall created
https://github.com/llvm/llvm-project/pull/88727
The intent was that smart-pointers do not participate in completeness
checks, but we failed to capture dependent `unique_ptr`, which is not
a RecordType but a TemplateSpecializationType.
>From f1bea480b599b43
https://github.com/sam-mccall closed
https://github.com/llvm/llvm-project/pull/87325
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
sam-mccall wrote:
Sorry Douglas, and thanks for the revert.
(I missed including the new test file in the commit - I'll make sure to run
through CI when relanding this!)
https://github.com/llvm/llvm-project/pull/87041
___
cfe-commits mailing list
cfe-c
https://github.com/sam-mccall created
https://github.com/llvm/llvm-project/pull/87325
This reverts commit 28760b63bbf9e267713957105a8d17091fb0d20e.
The last commit was missing the new testcase, now fixed.
>From dfcb5dd823e2eb4614be6e34369ac703eb87312e Mon Sep 17 00:00:00 2001
From: Sam McCall
Author: Sam McCall
Date: 2024-03-28T23:57:09+01:00
New Revision: bbbcc1d99d08855069f4501c896c43a6d4d7b598
URL:
https://github.com/llvm/llvm-project/commit/bbbcc1d99d08855069f4501c896c43a6d4d7b598
DIFF:
https://github.com/llvm/llvm-project/commit/bbbcc1d99d08855069f4501c896c43a6d4d7b598.diff
LO
https://github.com/sam-mccall approved this pull request.
https://github.com/llvm/llvm-project/pull/85413
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -156,6 +156,37 @@ void test_noexcept(int *i) {
#undef TEST_TYPE
} // end namespace test_launder
+namespace test_start_object_lifetime {
+// The builtin is non-constant.
+constexpr int test_non_constexpr(int i) { // expected-error {{constexpr
function never produces a const
@@ -896,6 +896,12 @@ def Launder : Builtin {
let Prototype = "void*(void*)";
}
+def StartObjectLifeTime : Builtin {
sam-mccall wrote:
https://github.com/llvm/llvm-project/pull/86512 is the answer here, I think.
https://github.com/llvm/llvm-project/pull/827
sam-mccall wrote:
This has been dormant in part while thinking about the memcpy half, I think.
Something like https://github.com/llvm/llvm-project/pull/86512 solves that well
but likely needs this change too.
> I am a bit concerned that this does not actually have the desired semantics
> at al
@@ -5056,6 +5056,8 @@ static bool CheckUnaryTypeTraitTypeCompleteness(Sema &S,
TypeTrait UTT,
case UTT_IsStandardLayout:
case UTT_IsPOD:
case UTT_IsLiteral:
+ // Clang extension:
sam-mccall wrote:
AFAIK these are all clang extensions (the `__` versions
@@ -526,6 +526,7 @@ TYPE_TRAIT_2(__is_layout_compatible, IsLayoutCompatible,
KEYCXX)
#include "clang/Basic/TransformTypeTraits.def"
// Clang-only C++ Type Traits
+TYPE_TRAIT_1(__is_bitwise_copyable, IsBitwiseCopyable, KEYCXX)
sam-mccall wrote:
naming thought
@@ -2667,6 +2667,29 @@ bool QualType::isTriviallyCopyableType(const ASTContext
&Context) const {
/*IsCopyConstructible=*/false);
}
+bool QualType::isBitwiseCopyableType(const ASTContext & Context) const {
+ QualType CanonicalType = getCan
@@ -0,0 +1,26 @@
+// RUN: %clang_cc1 -std=c++20 -fsyntax-only -verify %s
+
+// Scalar types are bitwise copyable.
+static_assert(__is_bitwise_copyable(int));
+static_assert(__is_bitwise_copyable(int*));
+// array
+static_assert(__is_bitwise_copyable(int[10]));
+
+
+struct Forward;
@@ -2667,6 +2667,29 @@ bool QualType::isTriviallyCopyableType(const ASTContext
&Context) const {
/*IsCopyConstructible=*/false);
}
+bool QualType::isBitwiseCopyableType(const ASTContext & Context) const {
+ QualType CanonicalType = getCan
@@ -526,6 +526,7 @@ TYPE_TRAIT_2(__is_layout_compatible, IsLayoutCompatible,
KEYCXX)
#include "clang/Basic/TransformTypeTraits.def"
// Clang-only C++ Type Traits
+TYPE_TRAIT_1(__is_bitwise_copyable, IsBitwiseCopyable, KEYCXX)
sam-mccall wrote:
naming thought
@@ -526,6 +526,7 @@ TYPE_TRAIT_2(__is_layout_compatible, IsLayoutCompatible,
KEYCXX)
#include "clang/Basic/TransformTypeTraits.def"
// Clang-only C++ Type Traits
+TYPE_TRAIT_1(__is_bitwise_copyable, IsBitwiseCopyable, KEYCXX)
sam-mccall wrote:
why c++ only?
@@ -526,6 +526,7 @@ TYPE_TRAIT_2(__is_layout_compatible, IsLayoutCompatible,
KEYCXX)
#include "clang/Basic/TransformTypeTraits.def"
// Clang-only C++ Type Traits
+TYPE_TRAIT_1(__is_bitwise_copyable, IsBitwiseCopyable, KEYCXX)
sam-mccall wrote:
this new trait
@@ -2667,6 +2667,29 @@ bool QualType::isTriviallyCopyableType(const ASTContext
&Context) const {
/*IsCopyConstructible=*/false);
}
+bool QualType::isBitwiseCopyableType(const ASTContext & Context) const {
+ QualType CanonicalType = getCan
https://github.com/sam-mccall edited
https://github.com/llvm/llvm-project/pull/86512
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sam-mccall commented:
I'm in favour of this, but we should have someone less-attached to it sign off
on at least the basic design.
One question this doesn't explicitly address: after memcpying, does user code
need to bless the bits somehow to start the new object's lifetime?
@@ -1990,6 +1990,18 @@ void TextNodeDumper::VisitFunctionDecl(const
FunctionDecl *D) {
}
}
+void TextNodeDumper::VisitCXXDeductionGuideDecl(const CXXDeductionGuideDecl
*D) {
+ VisitFunctionDecl(D);
+ switch (D->getDeductionCandidateKind()) {
+ case DeductionCandidate::N
https://github.com/sam-mccall approved this pull request.
https://github.com/llvm/llvm-project/pull/84018
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sam-mccall edited
https://github.com/llvm/llvm-project/pull/84018
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sam-mccall edited
https://github.com/llvm/llvm-project/pull/85957
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -4628,6 +4662,21 @@ TEST(TransferTest, DoesNotCrashOnUnionThisExpr) {
LangStandard::lang_cxx17, /*ApplyBuiltinTransfer=*/true, "operator=");
}
+TEST(TransferTest, DoesNotCrashOnNullChildren) {
+ std::string Code = (CoroutineLibrary + R"cc(
+task foo() noexcept {
https://github.com/sam-mccall approved this pull request.
https://github.com/llvm/llvm-project/pull/85957
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Author: Sam McCall
Date: 2024-03-15T21:55:37+01:00
New Revision: ca4c4a6758d184f209cb5d88ef42ecc011b11642
URL:
https://github.com/llvm/llvm-project/commit/ca4c4a6758d184f209cb5d88ef42ecc011b11642
DIFF:
https://github.com/llvm/llvm-project/commit/ca4c4a6758d184f209cb5d88ef42ecc011b11642.diff
LO
https://github.com/sam-mccall approved this pull request.
Thank you, and sorry for piling on extra errors...
https://github.com/llvm/llvm-project/pull/85310
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/
https://github.com/sam-mccall closed
https://github.com/llvm/llvm-project/pull/82705
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sam-mccall updated
https://github.com/llvm/llvm-project/pull/82705
>From ebf37038879e6b7ea2a315f267dc1dfe10a12c41 Mon Sep 17 00:00:00 2001
From: Sam McCall
Date: Thu, 22 Feb 2024 16:00:44 +0100
Subject: [PATCH 1/5] [clang][nullability] allow _Nonnull etc on nullable class
ty
https://github.com/sam-mccall updated
https://github.com/llvm/llvm-project/pull/82705
>From eccc46840e343e7ba15200cd4b81316a51c46943 Mon Sep 17 00:00:00 2001
From: Sam McCall
Date: Thu, 22 Feb 2024 16:00:44 +0100
Subject: [PATCH 1/4] [clang][nullability] allow _Nonnull etc on nullable class
ty
https://github.com/sam-mccall approved this pull request.
Very nice, thanks!
https://github.com/llvm/llvm-project/pull/85032
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sam-mccall approved this pull request.
This direction looks good to me, mostly I just have nits.
The one major change I'd consider before landing is to find a way to avoid the
verbosity regression cor3ntin mentions for `Diag()` and friends. Notational
regressions within Sema
@@ -63,17 +67,17 @@ void Sema::ActOnOpenACCConstruct(OpenACCDirectiveKind K,
// here as these constructs do not take any arguments.
break;
default:
-Diag(StartLoc, diag::warn_acc_construct_unimplemented) << K;
+SemaRef.Diag(StartLoc, diag::warn_acc_construct_u
https://github.com/sam-mccall edited
https://github.com/llvm/llvm-project/pull/84184
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/sam-mccall edited
https://github.com/llvm/llvm-project/pull/84184
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,67 @@
+//===- SemaOpenACC.h - Semantic Analysis for OpenACC constructs
---===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apa
@@ -1162,6 +1162,11 @@ class Sema final {
/// CurContext - This is the current declaration context of parsing.
DeclContext *CurContext;
+ SemaOpenACC &OpenACC() {
sam-mccall wrote:
nit: per style guide, this should be `openACC()` (lowercase O), and it sh
https://github.com/sam-mccall approved this pull request.
Makes sense to me. If this ends up applying to lots of attributes then maybe we
should hoist the text somewhere common, but agree that it doesn't seem to.
https://github.com/llvm/llvm-project/pull/82815
__
https://github.com/sam-mccall updated
https://github.com/llvm/llvm-project/pull/82705
>From eccc46840e343e7ba15200cd4b81316a51c46943 Mon Sep 17 00:00:00 2001
From: Sam McCall
Date: Thu, 22 Feb 2024 16:00:44 +0100
Subject: [PATCH 1/3] [clang][nullability] allow _Nonnull etc on nullable class
ty
1 - 100 of 1071 matches
Mail list logo