|
Revision tags: llvmorg-20.1.0, llvmorg-20.1.0-rc3, llvmorg-20.1.0-rc2, llvmorg-20.1.0-rc1, llvmorg-21-init, llvmorg-19.1.7, llvmorg-19.1.6, llvmorg-19.1.5, llvmorg-19.1.4, llvmorg-19.1.3, llvmorg-19.1.2, llvmorg-19.1.1, llvmorg-19.1.0, llvmorg-19.1.0-rc4, llvmorg-19.1.0-rc3, llvmorg-19.1.0-rc2, llvmorg-19.1.0-rc1, llvmorg-20-init, llvmorg-18.1.8, llvmorg-18.1.7, llvmorg-18.1.6, llvmorg-18.1.5, llvmorg-18.1.4, llvmorg-18.1.3, llvmorg-18.1.2, llvmorg-18.1.1, llvmorg-18.1.0, llvmorg-18.1.0-rc4, llvmorg-18.1.0-rc3, llvmorg-18.1.0-rc2, llvmorg-18.1.0-rc1, llvmorg-19-init, llvmorg-17.0.6, llvmorg-17.0.5, llvmorg-17.0.4, llvmorg-17.0.3, llvmorg-17.0.2, llvmorg-17.0.1, llvmorg-17.0.0, llvmorg-17.0.0-rc4, llvmorg-17.0.0-rc3, llvmorg-17.0.0-rc2, llvmorg-17.0.0-rc1, llvmorg-18-init, llvmorg-16.0.6, llvmorg-16.0.5, llvmorg-16.0.4, llvmorg-16.0.3, llvmorg-16.0.2, llvmorg-16.0.1, llvmorg-16.0.0, llvmorg-16.0.0-rc4, llvmorg-16.0.0-rc3, llvmorg-16.0.0-rc2, llvmorg-16.0.0-rc1, llvmorg-17-init, llvmorg-15.0.7, llvmorg-15.0.6, llvmorg-15.0.5, llvmorg-15.0.4, llvmorg-15.0.3, llvmorg-15.0.2, llvmorg-15.0.1, llvmorg-15.0.0, llvmorg-15.0.0-rc3, llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init |
|
| #
5775c5d0 |
| 15-Jul-2022 |
Haojian Wu <[email protected]> |
Remove an unsued-variable warning, NFC.
|
| #
9f57b65a |
| 11-Jul-2022 |
Tom Praschan <[email protected]> |
[clangd] Include "final" when printing class declaration
Fixes https://github.com/clangd/clangd/issues/1184
Reviewed By: sammccall
Differential Revision: https://reviews.llvm.org/D128202
|
|
Revision tags: llvmorg-14.0.6 |
|
| #
1a02c963 |
| 17-Jun-2022 |
Kadir Cetinkaya <[email protected]> |
Revert "Revert "[clang] Dont print implicit forrange initializer""
This reverts commit 7aac15d5df6cfa03b802e055b63227a95fa1734e.
Only updates the tests, as these statements are still part of the CF
Revert "Revert "[clang] Dont print implicit forrange initializer""
This reverts commit 7aac15d5df6cfa03b802e055b63227a95fa1734e.
Only updates the tests, as these statements are still part of the CFG and its just the pretty printer policy that changes. Hopefully this shouldn't affect any analysis.
show more ...
|
| #
7aac15d5 |
| 17-Jun-2022 |
Nico Weber <[email protected]> |
Revert "[clang] Dont print implicit forrange initializer"
This reverts commit 32805e60c9de1f82887cd2af30d247dcabd2e1d3. Broke check-clang, see comments on https://reviews.llvm.org/D127863
|
| #
32805e60 |
| 15-Jun-2022 |
Kadir Cetinkaya <[email protected]> |
[clang] Dont print implicit forrange initializer
Fixes https://github.com/clangd/clangd/issues/1158
Differential Revision: https://reviews.llvm.org/D127863
|
|
Revision tags: llvmorg-14.0.5, llvmorg-14.0.4, llvmorg-14.0.3, llvmorg-14.0.2, llvmorg-14.0.1, llvmorg-14.0.0, llvmorg-14.0.0-rc4, llvmorg-14.0.0-rc3, llvmorg-14.0.0-rc2 |
|
| #
5824d2bb |
| 17-Feb-2022 |
Aaron Ballman <[email protected]> |
Fix the declaration printer to properly handle prototypes in C
Previously, we would take a declaration like void f(void) and print it as void f(). That's correct in C++ as far as it goes, but is inc
Fix the declaration printer to properly handle prototypes in C
Previously, we would take a declaration like void f(void) and print it as void f(). That's correct in C++ as far as it goes, but is incorrect in C because that converts the function from having a prototype to one which does not.
This turns out to matter for some of our tests that use the pretty printer where we'd like to get rid of the K&R prototypes from the test but can't because the test is checking the pretty printed function signature, as done with the ARCMT tests.
show more ...
|
|
Revision tags: llvmorg-14.0.0-rc1, llvmorg-15-init |
|
| #
a2fe81f3 |
| 26-Jan-2022 |
Kirill Bobyrev <[email protected]> |
[clang] NFC: Use flush() idiomatically
Using both `raw_ostream::flush()` and `raw_ostream::str()` consecutively is redundant. The alternatives are:
- Use `raw_ostream::str()` without `raw_ostream::
[clang] NFC: Use flush() idiomatically
Using both `raw_ostream::flush()` and `raw_ostream::str()` consecutively is redundant. The alternatives are:
- Use `raw_ostream::str()` without `raw_ostream::flush()` - Use `raw_ostream::flush()` and then use the destination for `raw_ostream` writer
The latter is more idiomatic, so the fix resolves this particular case in its favor.
Reviewed By: kadircet
Differential Revision: https://reviews.llvm.org/D118247
show more ...
|
| #
b777d354 |
| 26-Jan-2022 |
Kadir Cetinkaya <[email protected]> |
[clang][DeclPrinter] Fix printing for noexcept expressions
We are already building into the final result, no need to append it again.
Fixes https://github.com/clangd/vscode-clangd/issues/290.
Diff
[clang][DeclPrinter] Fix printing for noexcept expressions
We are already building into the final result, no need to append it again.
Fixes https://github.com/clangd/vscode-clangd/issues/290.
Differential Revision: https://reviews.llvm.org/D118245
show more ...
|
|
Revision tags: llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2 |
|
| #
33c3ef2f |
| 30-Dec-2021 |
Sam McCall <[email protected]> |
[CodeCompletion][clangd] Clean __uglified parameter names in completion & hover
Underscore-uglified identifiers are used in standard library implementations to guard against collisions with macros,
[CodeCompletion][clangd] Clean __uglified parameter names in completion & hover
Underscore-uglified identifiers are used in standard library implementations to guard against collisions with macros, and they hurt readability considerably. (Consider `push_back(Tp_ &&__value)` vs `push_back(Tp value)`. When we're describing an interface, the exact names of parameters are not critical so we can drop these prefixes.
This patch adds a new PrintingPolicy flag that can applies this stripping when recursively printing pieces of AST. We set it in code completion/signature help, and in clangd's hover display. All three features also do a bit of manual poking at names, so fix up those too.
Fixes https://github.com/clangd/clangd/issues/736
Differential Revision: https://reviews.llvm.org/D116387
show more ...
|
|
Revision tags: llvmorg-13.0.1-rc1 |
|
| #
b2589e32 |
| 15-Nov-2021 |
David Blaikie <[email protected]> |
ast-print: Avoid extra whitespace before function opening brace
|
| #
604446aa |
| 15-Nov-2021 |
David Blaikie <[email protected]> |
ast-dump: Add missing identation of class template specializations
|
| #
5de36905 |
| 14-Nov-2021 |
David Blaikie <[email protected]> |
Follow-up to D77598: Simplify API by passing template parameters only when used/to imply "TemplOverloaded/overloadable"
These arguments were redundant, and other parts of D77598 did rely on the pres
Follow-up to D77598: Simplify API by passing template parameters only when used/to imply "TemplOverloaded/overloadable"
These arguments were redundant, and other parts of D77598 did rely on the presence/absence of template parameters to imply whether types should be included for the argument (like clang::printTemplateArgumentList) so do that here too.
show more ...
|
| #
b0de656b |
| 09-Nov-2021 |
David Pagan <[email protected]> |
Initial parsing/sema for 'align' clause
Added basic parsing/sema/serialization support for 'align' clause for use with 'allocate' directive.
|
|
Revision tags: llvmorg-13.0.0, llvmorg-13.0.0-rc4 |
|
| #
8bf12445 |
| 20-Sep-2021 |
David Blaikie <[email protected]> |
DebugInfo: workaround for context-sensitive use of non-type-template-parameter integer suffixes
There's a nuanced check about when to use suffixes on these integer non-type-template-parameters, but
DebugInfo: workaround for context-sensitive use of non-type-template-parameter integer suffixes
There's a nuanced check about when to use suffixes on these integer non-type-template-parameters, but when rebuilding names for -gsimple-template-names there isn't enough data in the DWARF to determine when to use suffixes or not. So turn on suffixes always to make it easy to match up names in llvm-dwarfdump --verify.
I /think/ if we correctly modelled auto non-type-template parameters maybe we could put suffixes only on those. But there's also some logic in Clang that puts the suffixes on overloaded functions - at least that's what the parameter says (see D77598 and printTemplateArguments "TemplOverloaded" parameter) - but I think maybe it's for anything that /can/ be overloaded, not necessarily only the things that are overloaded (the argument value is hardcoded at the various callsites, doesn't seem to depend on overload resolution/searching for overloaded functions). So maybe with "auto" modeled more accurately, and differentiating between function templates (always using type suffixes there) and class/variable templates (only using the suffix for "auto" types) we could correctly use integer type suffixes only in the minimal set of cases.
But that seems all too much fuss, so let's just put integer type suffixes everywhere always in the debug info of integer non-type template parameters in template names.
(more context: * https://reviews.llvm.org/D77598#inline-1057607 * https://groups.google.com/g/llvm-dev/c/ekLMllbLIZg/m/-dhJ0hO1AAAJ )
Differential Revision: https://reviews.llvm.org/D111477
show more ...
|
| #
2caf7571 |
| 20-Oct-2021 |
Alfonso Gregory <[email protected]> |
[Clang][AST] Resolve FIXME: Remove ObjCObjectPointer from isSpecifierType
There is no reason to have this here, (since all tests pass) and it isn't even a specifier anyway. We can just treat it as a
[Clang][AST] Resolve FIXME: Remove ObjCObjectPointer from isSpecifierType
There is no reason to have this here, (since all tests pass) and it isn't even a specifier anyway. We can just treat it as a pointer instead.
Differential Revision: https://reviews.llvm.org/D110068
show more ...
|
|
Revision tags: llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init |
|
| #
ef227b32 |
| 30-Jun-2021 |
Richard Smith <[email protected]> |
Add dumping support for RequiresExpr.
In passing, fix an ast-print bug that inserted a spurious extra `;` after a concept definition.
|
|
Revision tags: llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1 |
|
| #
b2d0c16e |
| 05-May-2021 |
Nathan Sidwell <[email protected]> |
[clang] p1099 using enum part 2
This implements the 'using enum maybe-qualified-enum-tag ;' part of 1099. It introduces a new 'UsingEnumDecl', subclassed from 'BaseUsingDecl'. Much of the diff is th
[clang] p1099 using enum part 2
This implements the 'using enum maybe-qualified-enum-tag ;' part of 1099. It introduces a new 'UsingEnumDecl', subclassed from 'BaseUsingDecl'. Much of the diff is the boilerplate needed to get the new class set up.
There is one case where we accept ill-formed, but I believe this is merely an extended case of an existing bug, so consider it orthogonal. AFAICT in class-scope the c++20 rule is that no 2 using decls can bring in the same target decl ([namespace.udecl]/8). But we already accept:
struct A { enum { a }; }; struct B : A { using A::a; }; struct C : B { using A::a; using B::a; }; // same enumerator
this patch permits mixtures of 'using enum Bob;' and 'using Bob::member;' in the same way.
Differential Revision: https://reviews.llvm.org/D102241
show more ...
|
| #
99d63ccf |
| 12-May-2021 |
Pratyush Das <[email protected]> |
Add type information to integral template argument if required.
Non-comprehensive list of cases: * Dumping template arguments; * Corresponding parameter contains a deduced type; * Template argume
Add type information to integral template argument if required.
Non-comprehensive list of cases: * Dumping template arguments; * Corresponding parameter contains a deduced type; * Template arguments are for a DeclRefExpr that hadMultipleCandidates()
Type information is added in the form of prefixes (u8, u, U, L), suffixes (U, L, UL, LL, ULL) or explicit casts to printed integral template argument, if MSVC codeview mode is disabled.
Differential revision: https://reviews.llvm.org/D77598
show more ...
|
|
Revision tags: llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2 |
|
| #
7c9c0a87 |
| 19-Feb-2021 |
Kadir Cetinkaya <[email protected]> |
[clang][DeclPrinter] Pass Context into StmtPrinter whenever possible
ASTContext were only passed to the StmtPrinter in some places, while it is always available in DeclPrinter. The context is used b
[clang][DeclPrinter] Pass Context into StmtPrinter whenever possible
ASTContext were only passed to the StmtPrinter in some places, while it is always available in DeclPrinter. The context is used by StmtPrinter to better print statements in some cases, like printing constants as written.
Differential Revision: https://reviews.llvm.org/D97043
show more ...
|
|
Revision tags: llvmorg-11.1.0, llvmorg-11.1.0-rc3, llvmorg-12.0.0-rc1, llvmorg-13-init, llvmorg-11.1.0-rc2, llvmorg-11.1.0-rc1 |
|
| #
2fd11e0b |
| 04-Jan-2021 |
Thorsten Schütt <[email protected]> |
Revert "[NFC, Refactor] Modernize StorageClass from Specifiers.h to a scoped enum (II)"
This reverts commit efc82c4ad2bcb256a4f4c20238d08cd3afba4d2d.
|
| #
efc82c4a |
| 23-Dec-2020 |
Thorsten Schütt <[email protected]> |
[NFC, Refactor] Modernize StorageClass from Specifiers.h to a scoped enum (II)
Reviewed By: aaron.ballman
Differential Revision: https://reviews.llvm.org/D93765
|
|
Revision tags: llvmorg-11.0.1, llvmorg-11.0.1-rc2, llvmorg-11.0.1-rc1, llvmorg-11.0.0, llvmorg-11.0.0-rc6, llvmorg-11.0.0-rc5, llvmorg-11.0.0-rc4, llvmorg-11.0.0-rc3, llvmorg-11.0.0-rc2 |
|
| #
f7a039de |
| 05-Aug-2020 |
Bruno Ricci <[email protected]> |
[clang][NFC] DeclPrinter: use NamedDecl::getDeclName instead of NamedDecl::printName to print the name of enumerations, namespaces and template parameters.
NamedDecl::printName will print the pretty
[clang][NFC] DeclPrinter: use NamedDecl::getDeclName instead of NamedDecl::printName to print the name of enumerations, namespaces and template parameters.
NamedDecl::printName will print the pretty-printed name of the entity, which is not what we want here (we should print "enum { e };" instead of "enum (unnamed enum at input.cc:1:5) { e };").
For now only DecompositionDecl and MDGuidDecl have an overloaded printName so this does not result in any functional change, but this change is needed since I will be adding overloads to better handle unnamed entities in diagnostics.
show more ...
|
|
Revision tags: llvmorg-11.0.0-rc1, llvmorg-12-init |
|
| #
ea201e83 |
| 09-Jul-2020 |
David Goldman <[email protected]> |
[AST][ObjC] Fix crash when printing invalid objc categories
Summary: If no valid interface definition was found previously we would crash.
With this change instead we just print `<<error-type>>` in
[AST][ObjC] Fix crash when printing invalid objc categories
Summary: If no valid interface definition was found previously we would crash.
With this change instead we just print `<<error-type>>` in place of the NULL interface. In the future this could be improved by saving the invalid interface's name and using that.
Reviewers: sammccall, gribozavr
Subscribers: cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D83513
show more ...
|
|
Revision tags: llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2 |
|
| #
6407aa9d |
| 27-May-2020 |
Daniel Martín <[email protected]> |
[clangd] Add access specifier information to hover contents
Summary: For https://github.com/clangd/clangd/issues/382
This commit adds access specifier information to the hover contents. For example
[clangd] Add access specifier information to hover contents
Summary: For https://github.com/clangd/clangd/issues/382
This commit adds access specifier information to the hover contents. For example, the hover information of a class field or member function will now indicate if the field or member is private, public, or protected. This can be particularly useful when a developer is in the implementation file and wants to know if a particular member definition is public or private.
Reviewers: kadircet
Reviewed By: kadircet
Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, usaxena95, cfe-commits
Tags: #clang
Differential Revision: https://reviews.llvm.org/D80472
show more ...
|
|
Revision tags: llvmorg-10.0.1-rc1 |
|
| #
86e50af7 |
| 05-May-2020 |
Erik Pilkington <[email protected]> |
[AST] Print fixed enum type regardless of language mode
These are permitted in all language modes, not just C++11.
|