<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/clang/test/AST/ast-dump-lambda.cpp, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>Reapply "[Clang][Sema] Earlier type checking for builtin unary operators (#90500)" (#92283)</title>
<updated>2024-05-16T01:52:59+00:00</updated>
<author>
<name>Krystian Stasiowski</name>
<email>sdkrystian@gmail.com</email>
</author>
<published>2024-05-16T01:52:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1595988ee6f9732e7ea79928af8a470ad5ef7dbe'/>
<id>1595988ee6f9732e7ea79928af8a470ad5ef7dbe</id>
<content type='text'>
This patch reapplies #90500, addressing a bug which caused binary
operators with dependent operands to be incorrectly rebuilt by
`TreeTransform`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch reapplies #90500, addressing a bug which caused binary
operators with dependent operands to be incorrectly rebuilt by
`TreeTransform`.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[Clang][Sema] Earlier type checking for builtin unary operators (#90500)" (#92149)</title>
<updated>2024-05-14T17:22:01+00:00</updated>
<author>
<name>Krystian Stasiowski</name>
<email>sdkrystian@gmail.com</email>
</author>
<published>2024-05-14T17:22:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=97e35e0098e863bff959f726f1492654a6cfe441'/>
<id>97e35e0098e863bff959f726f1492654a6cfe441</id>
<content type='text'>
This reverts commit 8019cbbbbc94658d133583f7be6cd0023d30b0f3.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 8019cbbbbc94658d133583f7be6cd0023d30b0f3.</pre>
</div>
</content>
</entry>
<entry>
<title>[Clang][Sema] Earlier type checking for builtin unary operators (#90500)</title>
<updated>2024-05-14T16:28:58+00:00</updated>
<author>
<name>Krystian Stasiowski</name>
<email>sdkrystian@gmail.com</email>
</author>
<published>2024-05-14T16:28:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8019cbbbbc94658d133583f7be6cd0023d30b0f3'/>
<id>8019cbbbbc94658d133583f7be6cd0023d30b0f3</id>
<content type='text'>
Currently, clang postpones all semantic analysis of unary operators with
operands of pointer/pointer to member/array/function type until
instantiation whenever that type is dependent (e.g. `T*` where `T` is a
type template parameter). Consequently, the uninstantiated AST nodes all
have the type `ASTContext::DependentTy` (which, for the purposes of
#90152, is undesirable as that type may be the current instantiation!
(e.g. `*this`))

This patch moves the point at which we perform semantic analysis for
such expression to be prior to instantiation.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, clang postpones all semantic analysis of unary operators with
operands of pointer/pointer to member/array/function type until
instantiation whenever that type is dependent (e.g. `T*` where `T` is a
type template parameter). Consequently, the uninstantiated AST nodes all
have the type `ASTContext::DependentTy` (which, for the purposes of
#90152, is undesirable as that type may be the current instantiation!
(e.g. `*this`))

This patch moves the point at which we perform semantic analysis for
such expression to be prior to instantiation.</pre>
</div>
</content>
</entry>
<entry>
<title>[AST] Only dump desugared type when visibly different (#65214)</title>
<updated>2023-10-26T18:28:28+00:00</updated>
<author>
<name>Jessica Clarke</name>
<email>jrtc27@jrtc27.com</email>
</author>
<published>2023-10-26T18:28:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f9ead46931aef2978ddf350ba6523638175d7861'/>
<id>f9ead46931aef2978ddf350ba6523638175d7861</id>
<content type='text'>
These are an artifact of how types are structured but serve little
purpose, merely showing that the type is sugared in some way. For
example, ElaboratedType's existence means struct S gets printed as
'struct S':'struct S' in the AST, which is unnecessary visual clutter.
Note that skipping the second print when the types have the same string
matches what we do for diagnostics, where the aka will be skipped.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These are an artifact of how types are structured but serve little
purpose, merely showing that the type is sugared in some way. For
example, ElaboratedType's existence means struct S gets printed as
'struct S':'struct S' in the AST, which is unnecessary visual clutter.
Note that skipping the second print when the types have the same string
matches what we do for diagnostics, where the aka will be skipped.</pre>
</div>
</content>
</entry>
<entry>
<title>[clang][AST] TextNodeDumper learned to output refers_to_enclosing_variable_or_capture flag for DeclRefExpr</title>
<updated>2023-08-18T14:14:29+00:00</updated>
<author>
<name>Timo Stripf</name>
<email>timo.stripf@emmtrix.com</email>
</author>
<published>2023-08-18T13:54:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d34e97c8a117a300f17f43ba77cb9d61c84a0c8a'/>
<id>d34e97c8a117a300f17f43ba77cb9d61c84a0c8a</id>
<content type='text'>
Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D158265
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reviewed By: aaron.ballman

Differential Revision: https://reviews.llvm.org/D158265
</pre>
</div>
</content>
</entry>
<entry>
<title>[Clang] Fix a crash when taking the address of a consteval lambda</title>
<updated>2023-02-23T14:26:37+00:00</updated>
<author>
<name>Corentin Jabot</name>
<email>corentinjabot@gmail.com</email>
</author>
<published>2023-02-23T10:04:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=34abc5b75d9d995ded56a9534c230300b06f1439'/>
<id>34abc5b75d9d995ded56a9534c230300b06f1439</id>
<content type='text'>
The `_invoke` function of lambdas was not respecting
the constexpr/consteval specifier of the call operator, so it was possible
to take its address in a non-immmediately invoked context,
even if the call operator was itself consteval.

In addition, we improve the diagnostic emmited in the lambda case
not to show that `invoke` method.

Fixes #57682

Reviewed By: aaron.ballman, #clang-language-wg

Differential Revision: https://reviews.llvm.org/D144627
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The `_invoke` function of lambdas was not respecting
the constexpr/consteval specifier of the call operator, so it was possible
to take its address in a non-immmediately invoked context,
even if the call operator was itself consteval.

In addition, we improve the diagnostic emmited in the lambda case
not to show that `invoke` method.

Fixes #57682

Reviewed By: aaron.ballman, #clang-language-wg

Differential Revision: https://reviews.llvm.org/D144627
</pre>
</div>
</content>
</entry>
<entry>
<title>re-land [C++20][Modules] Update handling of implicit inlines [P1779R3]</title>
<updated>2022-07-21T08:17:01+00:00</updated>
<author>
<name>Iain Sandoe</name>
<email>iain@sandoe.co.uk</email>
</author>
<published>2022-07-03T13:27:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=97af17c5cae64f5fd5e89806e8cf20f50fec30ec'/>
<id>97af17c5cae64f5fd5e89806e8cf20f50fec30ec</id>
<content type='text'>
re-land fixes an unwanted interaction with module-map modules, seen in
Greendragon testing.

This provides updates to
[class.mfct]:
Pre C++20 [class.mfct]p2:
  A member function may be defined (8.4) in its class definition, in
  which case it is an inline member function (7.1.2)
Post C++20 [class.mfct]p1:
  If a member function is attached to the global module and is defined
  in its class definition, it is inline.

and
[class.friend]:
Pre-C++20 [class.friend]p5
  A function can be defined in a friend declaration of a
  class . . . . Such a function is implicitly inline.
Post C++20 [class.friend]p7
  Such a function is implicitly an inline function if it is attached
  to the global module.

We add the output of implicit-inline to the TextNodeDumper, and amend
a couple of existing tests to account for this, plus add tests for the
cases covered above.

Differential Revision: https://reviews.llvm.org/D129045
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
re-land fixes an unwanted interaction with module-map modules, seen in
Greendragon testing.

This provides updates to
[class.mfct]:
Pre C++20 [class.mfct]p2:
  A member function may be defined (8.4) in its class definition, in
  which case it is an inline member function (7.1.2)
Post C++20 [class.mfct]p1:
  If a member function is attached to the global module and is defined
  in its class definition, it is inline.

and
[class.friend]:
Pre-C++20 [class.friend]p5
  A function can be defined in a friend declaration of a
  class . . . . Such a function is implicitly inline.
Post C++20 [class.friend]p7
  Such a function is implicitly an inline function if it is attached
  to the global module.

We add the output of implicit-inline to the TextNodeDumper, and amend
a couple of existing tests to account for this, plus add tests for the
cases covered above.

Differential Revision: https://reviews.llvm.org/D129045
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[C++20][Modules] Update handling of implicit inlines [P1779R3]"</title>
<updated>2022-07-11T20:59:41+00:00</updated>
<author>
<name>Jonas Devlieghere</name>
<email>jonas@devlieghere.com</email>
</author>
<published>2022-07-11T20:58:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c7fd7512a5c5b133665bfecbe2e9748c0607286e'/>
<id>c7fd7512a5c5b133665bfecbe2e9748c0607286e</id>
<content type='text'>
This reverts commit ef0fa9f0ef3e as a follow up to b19d3ee7120b which
reverted commit ac507102d258. See https://reviews.llvm.org/D126189 for
more details.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit ef0fa9f0ef3e as a follow up to b19d3ee7120b which
reverted commit ac507102d258. See https://reviews.llvm.org/D126189 for
more details.
</pre>
</div>
</content>
</entry>
<entry>
<title>[C++20][Modules] Update handling of implicit inlines [P1779R3]</title>
<updated>2022-07-09T15:06:32+00:00</updated>
<author>
<name>Iain Sandoe</name>
<email>iain@sandoe.co.uk</email>
</author>
<published>2022-07-03T13:27:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ef0fa9f0ef3e530a9d600c0f6a21e68b098df7ed'/>
<id>ef0fa9f0ef3e530a9d600c0f6a21e68b098df7ed</id>
<content type='text'>
This provides updates to
[class.mfct]:
Pre C++20 [class.mfct]p2:
  A member function may be defined (8.4) in its class definition, in
  which case it is an inline member function (7.1.2)
Post C++20 [class.mfct]p1:
  If a member function is attached to the global module and is defined
  in its class definition, it is inline.

and
[class.friend]:
Pre-C++20 [class.friend]p5
  A function can be defined in a friend declaration of a
  class . . . . Such a function is implicitly inline.
Post C++20 [class.friend]p7
  Such a function is implicitly an inline function if it is attached
  to the global module.

We add the output of implicit-inline to the TextNodeDumper, and amend
a couple of existing tests to account for this, plus add tests for the
cases covered above.

Differential Revision: https://reviews.llvm.org/D129045
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This provides updates to
[class.mfct]:
Pre C++20 [class.mfct]p2:
  A member function may be defined (8.4) in its class definition, in
  which case it is an inline member function (7.1.2)
Post C++20 [class.mfct]p1:
  If a member function is attached to the global module and is defined
  in its class definition, it is inline.

and
[class.friend]:
Pre-C++20 [class.friend]p5
  A function can be defined in a friend declaration of a
  class . . . . Such a function is implicitly inline.
Post C++20 [class.friend]p7
  Such a function is implicitly an inline function if it is attached
  to the global module.

We add the output of implicit-inline to the TextNodeDumper, and amend
a couple of existing tests to account for this, plus add tests for the
cases covered above.

Differential Revision: https://reviews.llvm.org/D129045
</pre>
</div>
</content>
</entry>
<entry>
<title>Implement WG14 N2764 the [[noreturn]] attribute</title>
<updated>2022-02-14T14:38:26+00:00</updated>
<author>
<name>Aaron Ballman</name>
<email>aaron@aaronballman.com</email>
</author>
<published>2022-02-14T14:33:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5029dce492b3cf3ac191eda0b5bf268c3acac2e0'/>
<id>5029dce492b3cf3ac191eda0b5bf268c3acac2e0</id>
<content type='text'>
This adds support for http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2764.pdf,
which was adopted at the Feb 2022 WG14 meeting. That paper adds
[[noreturn]] and [[_Noreturn]] to the list of supported attributes in
C2x. These attributes have the same semantics as the [[noreturn]]
attribute in C++.

The [[_Noreturn]] attribute was added as a deprecated feature so that
translation units which include &lt;stdnoreturn.h&gt; do not get an error on
use of [[noreturn]] because the macro expands to _Noreturn. Users can
use -Wno-deprecated-attributes to silence the diagnostic.

Use of &lt;stdnotreturn.h&gt; or the noreturn macro were both deprecated.
Users can define the _CLANG_DISABLE_CRT_DEPRECATION_WARNINGS macro to
suppress the deprecation diagnostics coming from the header file.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds support for http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2764.pdf,
which was adopted at the Feb 2022 WG14 meeting. That paper adds
[[noreturn]] and [[_Noreturn]] to the list of supported attributes in
C2x. These attributes have the same semantics as the [[noreturn]]
attribute in C++.

The [[_Noreturn]] attribute was added as a deprecated feature so that
translation units which include &lt;stdnoreturn.h&gt; do not get an error on
use of [[noreturn]] because the macro expands to _Noreturn. Users can
use -Wno-deprecated-attributes to silence the diagnostic.

Use of &lt;stdnotreturn.h&gt; or the noreturn macro were both deprecated.
Users can define the _CLANG_DISABLE_CRT_DEPRECATION_WARNINGS macro to
suppress the deprecation diagnostics coming from the header file.
</pre>
</div>
</content>
</entry>
</feed>
