temyurchenko wrote:
> Do you need someone to land these changes on your behalf?
Yeah, I don't have the rights :(
https://github.com/llvm/llvm-project/pull/93913
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mai
@@ -576,13 +576,18 @@ template static bool
isFirstInExternCContext(T *D) {
return First->isInExternCContext();
}
-static bool isSingleLineLanguageLinkage(const Decl &D) {
- if (const auto *SD = dyn_cast(D.getDeclContext()))
-if (!SD->hasBraces())
- return true;
+
https://github.com/temyurchenko updated
https://github.com/llvm/llvm-project/pull/93913
>From 410c7ba9fb7667dabdfbc48fdbda427401ca8df0 Mon Sep 17 00:00:00 2001
From: Artem Yurchenko <44875844+temyurche...@users.noreply.github.com>
Date: Thu, 30 May 2024 16:18:47 -0400
Subject: [PATCH 1/2] [clang
https://github.com/temyurchenko updated
https://github.com/llvm/llvm-project/pull/93913
>From 410c7ba9fb7667dabdfbc48fdbda427401ca8df0 Mon Sep 17 00:00:00 2001
From: Artem Yurchenko <44875844+temyurche...@users.noreply.github.com>
Date: Thu, 30 May 2024 16:18:47 -0400
Subject: [PATCH 1/3] [clang
https://github.com/temyurchenko edited
https://github.com/llvm/llvm-project/pull/93913
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -2380,7 +2380,7 @@ FunctionDecl *Sema::CreateBuiltin(IdentifierInfo *II,
QualType Type,
}
FunctionDecl *New = FunctionDecl::Create(Context, Parent, Loc, Loc, II, Type,
- /*TInfo=*/nullptr, SC_Extern,
+
@@ -2380,7 +2380,7 @@ FunctionDecl *Sema::CreateBuiltin(IdentifierInfo *II,
QualType Type,
}
FunctionDecl *New = FunctionDecl::Create(Context, Parent, Loc, Loc, II, Type,
- /*TInfo=*/nullptr, SC_Extern,
+
https://github.com/temyurchenko updated
https://github.com/llvm/llvm-project/pull/93913
>From 410c7ba9fb7667dabdfbc48fdbda427401ca8df0 Mon Sep 17 00:00:00 2001
From: Artem Yurchenko <44875844+temyurche...@users.noreply.github.com>
Date: Thu, 30 May 2024 16:18:47 -0400
Subject: [PATCH 1/3] [clang
@@ -576,13 +576,19 @@ template static bool
isFirstInExternCContext(T *D) {
return First->isInExternCContext();
}
-static bool isSingleLineLanguageLinkage(const Decl &D) {
- if (const auto *SD = dyn_cast(D.getDeclContext()))
+static bool isUnbracedLanguageLinkage(const Dec
@@ -2380,7 +2380,7 @@ FunctionDecl *Sema::CreateBuiltin(IdentifierInfo *II,
QualType Type,
}
FunctionDecl *New = FunctionDecl::Create(Context, Parent, Loc, Loc, II, Type,
- /*TInfo=*/nullptr, SC_Extern,
+
https://github.com/temyurchenko updated
https://github.com/llvm/llvm-project/pull/93913
>From 410c7ba9fb7667dabdfbc48fdbda427401ca8df0 Mon Sep 17 00:00:00 2001
From: Artem Yurchenko <44875844+temyurche...@users.noreply.github.com>
Date: Thu, 30 May 2024 16:18:47 -0400
Subject: [PATCH 1/2] [clang
https://github.com/temyurchenko updated
https://github.com/llvm/llvm-project/pull/93913
>From f1951f3f2dd322123a1c49221c4252f4ea932242 Mon Sep 17 00:00:00 2001
From: Artem Yurchenko <44875844+temyurche...@users.noreply.github.com>
Date: Thu, 30 May 2024 16:18:47 -0400
Subject: [PATCH 1/2] [clang
https://github.com/temyurchenko updated
https://github.com/llvm/llvm-project/pull/93913
>From 9b18a5c4132cf093fc9b32f6b4dcfe406d485e3d Mon Sep 17 00:00:00 2001
From: Artem Yurchenko
Date: Thu, 6 Jun 2024 20:20:19 -0400
Subject: [PATCH] enforce the unbraced `extern ` invariant
Quoting 9.11.8:
>
temyurchenko wrote:
> Hmm... I don't have a great idea. Is using it not enough to get it to be
> emitted? I see here we don't seem to cause them to be emitted:
> https://godbolt.org/z/nYzMca7Te
Yes, I get the same result. I also tried adding a test in `DeclPrinterTest`,
but it doesn't lookup
https://github.com/temyurchenko updated
https://github.com/llvm/llvm-project/pull/93913
>From a54036c0fdc1a875f40a274d502dd96651a35ae3 Mon Sep 17 00:00:00 2001
From: Artem Yurchenko
Date: Thu, 6 Jun 2024 20:20:19 -0400
Subject: [PATCH] enforce the unbraced `extern ` invariant
Quoting 9.11.8:
>
temyurchenko wrote:
> I see the 2nds commit doesn't add any tests! Please make it do so
I've tried and I'm not quite sure how to do it. The issue is we need to test
AST printing of «implicitly declared» functions, such as builtins and functions
instrumented by lldb, such as `log` for logging;
temyurchenko wrote:
This is a relanding of #93131.
The first commit is the same, the second commit presents and fixes the issue
from the linked discussion.
cc @erichkeane, @AaronBallman, @gulfemsavrun.
(I can't set the reviewers myself)
https://github.com/llvm/llvm-project/pull/93913
___
https://github.com/temyurchenko updated
https://github.com/llvm/llvm-project/pull/93913
>From fac45476736cd04f044f046fd0df9e59450a926b Mon Sep 17 00:00:00 2001
From: Artem Yurchenko
Date: Wed, 22 May 2024 23:41:35 -0400
Subject: [PATCH 1/2] [clang][AST] fix ast-print of `extern ` with >=2
decl
https://github.com/temyurchenko updated
https://github.com/llvm/llvm-project/pull/93913
>From fac45476736cd04f044f046fd0df9e59450a926b Mon Sep 17 00:00:00 2001
From: Artem Yurchenko
Date: Wed, 22 May 2024 23:41:35 -0400
Subject: [PATCH 1/2] [clang][AST] fix ast-print of `extern ` with >=2
decl
temyurchenko wrote:
> No worries, and I reverted it for you. When you have the fix ready, I'm happy
> to verify it on our builders before you reland.
Can you also reopen this PR, please? For documentation/history reasons, it's
probably better to provide a fix within the scope of this PR.
http
https://github.com/temyurchenko edited
https://github.com/llvm/llvm-project/pull/93913
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/temyurchenko created
https://github.com/llvm/llvm-project/pull/93913
None
>From fac45476736cd04f044f046fd0df9e59450a926b Mon Sep 17 00:00:00 2001
From: Artem Yurchenko
Date: Wed, 22 May 2024 23:41:35 -0400
Subject: [PATCH 1/2] [clang][AST] fix ast-print of `extern ` with >=2
temyurchenko wrote:
> We started seeing an lldb test failure, and I bisected to this commit:
I see the source of the bug, I'm thinking how to address it best. If it's
urgent, I can produce an urgent fix.
https://github.com/llvm/llvm-project/pull/93131
__
temyurchenko wrote:
> > What should be the next step following the approvals?
>
> If you do not have 'squash and merge' rights here, one of us can do it for
> you once testing completes.
I don't have them, would be glad if you could do that!
https://github.com/llvm/llvm-project/pull/93131
___
temyurchenko wrote:
What should be the next step following the approvals?
https://github.com/llvm/llvm-project/pull/93131
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/temyurchenko updated
https://github.com/llvm/llvm-project/pull/93131
>From fac45476736cd04f044f046fd0df9e59450a926b Mon Sep 17 00:00:00 2001
From: Artem Yurchenko
Date: Wed, 22 May 2024 23:41:35 -0400
Subject: [PATCH] [clang][AST] fix ast-print of `extern ` with >=2
declarat
@@ -662,6 +678,11 @@ void DeclPrinter::VisitFunctionDecl(FunctionDecl *D) {
CXXConversionDecl *ConversionDecl = dyn_cast(D);
CXXDeductionGuideDecl *GuideDecl = dyn_cast(D);
if (!Policy.SuppressSpecifiers) {
+if (const char *lang = tryGetUnbracedLinkageLanguage(D)) {
+
https://github.com/temyurchenko updated
https://github.com/llvm/llvm-project/pull/93131
>From b1490a354b4ddcbcf0bfd7790c9f4fd8bd799751 Mon Sep 17 00:00:00 2001
From: Artem Yurchenko
Date: Wed, 22 May 2024 23:41:35 -0400
Subject: [PATCH] [clang][AST] fix ast-print of `extern ` with >=2
declarat
https://github.com/temyurchenko updated
https://github.com/llvm/llvm-project/pull/93131
>From a8f15038fa0fbe3ba55d136eb459f511d73b0b34 Mon Sep 17 00:00:00 2001
From: Artem Yurchenko
Date: Wed, 22 May 2024 23:41:35 -0400
Subject: [PATCH] [clang][AST] fix ast-print of `extern ` with >=2
declarat
https://github.com/temyurchenko updated
https://github.com/llvm/llvm-project/pull/93131
>From 0fd91ab5ba81c42594551d2662534d8a76c60d77 Mon Sep 17 00:00:00 2001
From: Artem Yurchenko
Date: Wed, 22 May 2024 23:41:35 -0400
Subject: [PATCH] [clang][AST] fix ast-print of `extern ` with >=2
declarat
https://github.com/temyurchenko updated
https://github.com/llvm/llvm-project/pull/93131
>From b67bd3dc6a47aad978b699ae5451b5a595479546 Mon Sep 17 00:00:00 2001
From: Artem Yurchenko
Date: Wed, 22 May 2024 23:41:35 -0400
Subject: [PATCH] [clang][AST] fix ast-print of `extern ` with >=2
declarat
@@ -0,0 +1,27 @@
+// RUN: %clang_cc1 -ast-print %s -o - | FileCheck %s
+
+// CHECK: extern "C" int printf(const char *, ...);
+extern "C" int printf(const char *...);
+
+// CHECK: extern "C++" {
temyurchenko wrote:
Hopefully, the new implementation has fixed the
https://github.com/temyurchenko updated
https://github.com/llvm/llvm-project/pull/93131
>From 3e19f7566f8dc96116c463e7c4fae0c094d3640c Mon Sep 17 00:00:00 2001
From: Artem Yurchenko
Date: Wed, 22 May 2024 23:41:35 -0400
Subject: [PATCH] [clang][AST] fix ast-print of `extern ` with >=2
declarat
https://github.com/temyurchenko edited
https://github.com/llvm/llvm-project/pull/93131
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,27 @@
+// RUN: %clang_cc1 -ast-print %s -o - | FileCheck %s
+
+// CHECK: extern "C" int printf(const char *, ...);
+extern "C" int printf(const char *...);
+
+// CHECK: extern "C++" {
temyurchenko wrote:
> ideally, we want to reproduce exactly what was
https://github.com/temyurchenko edited
https://github.com/llvm/llvm-project/pull/93131
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,27 @@
+// RUN: %clang_cc1 -ast-print %s -o - | FileCheck %s
+
+// CHECK: extern "C" int printf(const char *, ...);
+extern "C" int printf(const char *...);
+
+// CHECK: extern "C++" {
temyurchenko wrote:
> Oofda, there are differences between the brace
https://github.com/temyurchenko updated
https://github.com/llvm/llvm-project/pull/93131
>From 10670795596129c33ae021a3970411b630637b80 Mon Sep 17 00:00:00 2001
From: Artem Yurchenko
Date: Wed, 22 May 2024 23:41:35 -0400
Subject: [PATCH 1/2] [clang][AST] fix ast-print of `extern ` with >=2
decl
@@ -1145,13 +1145,15 @@ void DeclPrinter::VisitLinkageSpecDecl(LinkageSpecDecl
*D) {
l = "C++";
}
+ bool HasMoreThanOneDecl =
+ *D->decls_begin() && D->decls_begin()->getNextDeclInContext();
temyurchenko wrote:
Got it!
https://github.com/llvm/ll
@@ -0,0 +1,27 @@
+// RUN: %clang_cc1 -ast-print %s -o - | FileCheck %s
+
+// CHECK: extern "C" int printf(const char *, ...);
+extern "C" int printf(const char *...);
+
+// CHECK: extern "C++" {
+// CHECK-NEXT: int f(int);
+// CHECK-NEXT: int g(int);
+// CHECK-NEXT: }
+extern
@@ -1145,13 +1145,15 @@ void DeclPrinter::VisitLinkageSpecDecl(LinkageSpecDecl
*D) {
l = "C++";
}
+ bool HasMoreThanOneDecl =
+ *D->decls_begin() && D->decls_begin()->getNextDeclInContext();
temyurchenko wrote:
Sure!
For my own education though,
@@ -0,0 +1,27 @@
+// RUN: %clang_cc1 -ast-print %s -o - | FileCheck %s
+
+// CHECK: extern "C" int printf(const char *, ...);
+extern "C" int printf(const char *...);
+
+// CHECK: extern "C++" {
temyurchenko wrote:
Unfortunately, I'm not aware of the design goals
temyurchenko wrote:
Fixes #93085
https://github.com/llvm/llvm-project/pull/93131
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/temyurchenko created
https://github.com/llvm/llvm-project/pull/93131
Problem: the printer used to ignore all but the first declarator for unbraced
language linkage declarators. Furthemore, that one would be printed without the
final semicolon.
Solution: when there is more t
44 matches
Mail list logo