Revision tags: 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 |
|
#
edd690b0 |
| 03-Nov-2023 |
Vlad Serebrennikov <serebrennikov.vladislav@gmail.com> |
[clang][NFC] Refactor `TagTypeKind` (#71160)
This patch converts TagTypeKind into scoped enum. Among other benefits,
this allows us to forward-declare it where necessary.
|
Revision tags: 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 |
|
#
4a68babd |
| 07-Dec-2022 |
Brett Wilson <brettw@gmail.com> |
[clang-doc] Add template support.
Reads template information from the AST and adds template parameters and specialization information to the corresponding clang-doc structures.
Add a "QualName" to
[clang-doc] Add template support.
Reads template information from the AST and adds template parameters and specialization information to the corresponding clang-doc structures.
Add a "QualName" to the Reference struct which includes the full qualified type name. The Reference object represents a link in the HTML/MD generators so is based on the unqualified name. But this does not encode C-V qualifiers or template information that decorate the name. The new QualName member encodes all of this information and also makes it easier for the generators or downsteam YAML consumers to generate the full name (before they had to process the "Path").
In test code that was changed, remove made-up paths to built-in types like "int". In addition to slightnly cleaning up the code, these types do not have paths in real execution, and generating incorrect references to nonexistant data may complicate future changes in the generators.
Convert llvm::Optional to std::optional (YAML library requires this for the new usage, and this makes everything consistent according to the llvm::Optional -> std::optional transition).
Differential Revision: https://reviews.llvm.org/D139154
show more ...
|
#
91b38c6a |
| 07-Dec-2022 |
Brett Wilson <brettw@gmail.com> |
Revert "[clang-doc] Add template support."
Causes a build failure in YAML specializations.
This reverts commit 0f6dbb5f164662c3e6a167a89e7a89f07c60e32b.
|
Revision tags: llvmorg-15.0.6, llvmorg-15.0.5 |
|
#
0f6dbb5f |
| 07-Nov-2022 |
Brett Wilson <brettw@gmail.com> |
[clang-doc] Add template support.
Reads template information from the AST and adds template parameters and specialization information to the corresponding clang-doc structures.
Add a "QualName" to
[clang-doc] Add template support.
Reads template information from the AST and adds template parameters and specialization information to the corresponding clang-doc structures.
Add a "QualName" to the Reference struct which includes the full qualified type name. The Reference object represents a link in the HTML/MD generators so is based on the unqualified name. But this does not encode C-V qualifiers or template information that decorate the name. The new QualName member encodes all of this information and also makes it easier for the generators or downsteam YAML consumers to generate the full name (before they had to process the "Path").
In test code that was changed, remove made-up paths to built-in types like "int". In addition to slightnly cleaning up the code, these types do not have paths in real execution, and generating incorrect references to nonexistant data may complicate future changes in the generators.
Differential Revision: https://reviews.llvm.org/D139154
show more ...
|
#
c589730a |
| 05-Dec-2022 |
Krzysztof Parzyszek <kparzysz@quicinc.com> |
[YAML] Convert Optional to std::optional
|
#
7b8c7e02 |
| 29-Nov-2022 |
Brett Wilson <brettw@gmail.com> |
[clang-doc] Move file layout to the generators.
Previously file naming and directory layout was handled on a per Info object basis by ClangDocMain and the generators blindly wrote to the files given
[clang-doc] Move file layout to the generators.
Previously file naming and directory layout was handled on a per Info object basis by ClangDocMain and the generators blindly wrote to the files given. This means all generators must use the same file layout and caused problems where multiple objects mapped to the same file. The object collision problem happens most easily with template specializations because the template parameters are not part of the "name".
This patch moves the responsibility for output file organization to the generators. Currently HTML and MD use the same structure as before. But they now collect all objects that map to a given file and combine them, avoiding the corruption problems.
Converts the YAML generator to naming files based on USR in one directory. This is easier for downstream tools to manage and avoids the naming problems with template specializations. Since this change requires backward-incompatible output changes to referenced files anyway (since each one is now an array), this is a good time to introduce this change.
Differential Revision: https://reviews.llvm.org/D138073
show more ...
|
#
48bb1471 |
| 22-Nov-2022 |
Paul Kirth <paulkirth@google.com> |
Revert "[clang-doc] Move file layout to the generators."
This reverts commit f8a469fc572778d05b72f34a772082cf3abd3cda.
The test in single-file-public.cpp breaks on Mac, due to an unknown regextype
Revert "[clang-doc] Move file layout to the generators."
This reverts commit f8a469fc572778d05b72f34a772082cf3abd3cda.
The test in single-file-public.cpp breaks on Mac, due to an unknown regextype in the find command.
show more ...
|
#
f8a469fc |
| 15-Nov-2022 |
Brett Wilson <brettw@gmail.com> |
[clang-doc] Move file layout to the generators.
Previously file naming and directory layout was handled on a per Info object basis by ClangDocMain and the generators blindly wrote to the files given
[clang-doc] Move file layout to the generators.
Previously file naming and directory layout was handled on a per Info object basis by ClangDocMain and the generators blindly wrote to the files given. This means all generators must use the same file layout and caused problems where multiple objects mapped to the same file. The object collision problem happens most easily with template specializations because the template parameters are not part of the "name".
This patch moves the responsibility for output file organization to the generators. Currently HTML and MD use the same structure as before. But they now collect all objects that map to a given file and combine them, avoiding the corruption problems.
Converts the YAML generator to naming files based on USR in one directory. This is easier for downstream tools to manage and avoids the naming problems with template specializations. Since this change requires backward-incompatible output changes to referenced files anyway (since each one is now an array), this is a good time to introduce this change.
Differential Revision: https://reviews.llvm.org/D138073
show more ...
|
Revision tags: llvmorg-15.0.4, llvmorg-15.0.3 |
|
#
21fb70c6 |
| 14-Oct-2022 |
Brett Wilson <brettw@gmail.com> |
[clang-doc] Add typedef/using information.
Read typedef and "using" type alias declarations and serialize into the internal structures. Emit this information in the YAML output. The HTML and MD gene
[clang-doc] Add typedef/using information.
Read typedef and "using" type alias declarations and serialize into the internal structures. Emit this information in the YAML output. The HTML and MD generators are unchanged.
Separate out the logic to create the parent namespace or record object and insert the newly created child into it. This logic was previously duplicated for every "info" type and is now shared.
To help this, a struct containing the child vectors was separated out so children can be added generically and without having too many templates.
A small change was made to populateParentNamespaces() to allow using types that aren't themselves DeclContexts (typedefs are the first example of this).
Differential Revision: https://reviews.llvm.org/D134371
show more ...
|
Revision tags: working, llvmorg-15.0.2 |
|
#
a7594772 |
| 28-Sep-2022 |
Haowei Wu <haowei@google.com> |
Revert "[clang-doc] Add typedef/using information."
This reverts commit eed22583fd78d4d657fb70b99e62fbdc1f83b8f9, which breaks clang build with -Werror.
|
#
eed22583 |
| 27-Sep-2022 |
Brett Wilson <brettw@google.com> |
[clang-doc] Add typedef/using information.
Read typedef and "using" type alias declarations and serialize into the internal structures. Emit this information in the YAML output. The HTML and MD gene
[clang-doc] Add typedef/using information.
Read typedef and "using" type alias declarations and serialize into the internal structures. Emit this information in the YAML output. The HTML and MD generators are unchanged.
Separate out the logic to create the parent namespace or record object and insert the newly created child into it. This logic was previously duplicated for every "info" type and is now shared.
To help this, a struct containing the child vectors was separated out so children can be added generically and without having too many templates.
A small change was made to populateParentNamespaces() to allow using types that aren't themselves DeclContexts (typedefs are the first example of this).
Reviewed By: paulkirth, haowei
Differential Revision: https://reviews.llvm.org/D134371
show more ...
|
#
0afc6085 |
| 27-Sep-2022 |
Brett Wilson <brettw@google.com> |
[clang-doc] Clean up *Info constructors.
The *Info object (for the copy of the AST") constructors had many duplicated variants. Many of the variants seemed to be in an attempt to avoid default argum
[clang-doc] Clean up *Info constructors.
The *Info object (for the copy of the AST") constructors had many duplicated variants. Many of the variants seemed to be in an attempt to avoid default arguments. But default arguments are not prohibited and using them allows most of the variants to be removed which improves readability.
Remove the IsInGlobalNamespace flag on a Reference. This is set when the path is empty, and only read once in the HTML generator with the identical condition. The constructor cleanup exposed a problem where this was set to false when the constructor with no path was used, but true when the path was set to empty.
There should be no observable change with the exception that IsInGlobalNamespace is no longer emitted in YAML.
Reviewed By: paulkirth, haowei
Differential Revision: https://reviews.llvm.org/D134235
show more ...
|
Revision tags: llvmorg-15.0.1 |
|
#
eaa7b324 |
| 19-Sep-2022 |
Brett Wilson <brettw@google.com> |
[clang-doc] Add support for explicitly typed enums
Add support for explicitly typed enums: enum Foo : unsigned { ... }; to the internal representation and to the YAML output.
Add support for gett
[clang-doc] Add support for explicitly typed enums
Add support for explicitly typed enums: enum Foo : unsigned { ... }; to the internal representation and to the YAML output.
Add support for getting the value of an enum constant, as well as accessing the original expression that produced it. This changes the YAML output of enums from an array of strings for the enum members to an array of dictionaries. These dictionaries now report the name, value, and original expression.
The markdown and HTML outputs are unchanged, they still output the name from the new enhanced internal schema.
Reviewed By: paulkirth
Differential Revision: https://reviews.llvm.org/D134055
show more ...
|
#
e191086b |
| 16-Sep-2022 |
Brett Wilson <brettw@google.com> |
[clang-doc] Support default args for functions.
Adds support for default arguments in the internal representation and reads these values from the source. Implements writing these values to YAML but
[clang-doc] Support default args for functions.
Adds support for default arguments in the internal representation and reads these values from the source. Implements writing these values to YAML but does not implement this for the HTML or markdown outputs.
Reviewed By: paulkirth
Differential Revision: https://reviews.llvm.org/D133732
show more ...
|
Revision tags: llvmorg-15.0.0, llvmorg-15.0.0-rc3 |
|
#
68266828 |
| 12-Aug-2022 |
Brett Wilson <brettw@google.com> |
[clang-doc] Always emit the TagType for RecordInfo
Always emit the TagType for RecordInfo in YAML output. Previously this omitted the type for "struct", considering it the default. But records in C+
[clang-doc] Always emit the TagType for RecordInfo
Always emit the TagType for RecordInfo in YAML output. Previously this omitted the type for "struct", considering it the default. But records in C++ don't really have a default type so always emitting this is more clear.
Emit IsTypeDef in YAML. Previously this existed only in the Representation but was never written. Additionally, adds IsTypeDef to the record merge operation which was clearing it (all RecordInfo structures are merged with am empty RecordInfo during the reduce phase).
Reviewed By: paulkirth
Differential Revision: https://reviews.llvm.org/D131739
show more ...
|
#
99baa10f |
| 11-Aug-2022 |
Brett Wilson <brettw@google.com> |
[clang-doc] Read docstrings for record members
Struct/class data members did not have the comments associated with them. This adds that information to the MemberTypeInfo class and emits it in the YA
[clang-doc] Read docstrings for record members
Struct/class data members did not have the comments associated with them. This adds that information to the MemberTypeInfo class and emits it in the YAML. This does not update the frontends yet.
Reviewed By: paulkirth
Differential Revision: https://reviews.llvm.org/D131298
show more ...
|
Revision tags: llvmorg-15.0.0-rc2, llvmorg-15.0.0-rc1, llvmorg-16-init, llvmorg-14.0.6, 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, llvmorg-14.0.0-rc1, llvmorg-15-init, llvmorg-13.0.1, llvmorg-13.0.1-rc3, llvmorg-13.0.1-rc2, llvmorg-13.0.1-rc1, llvmorg-13.0.0, llvmorg-13.0.0-rc4, llvmorg-13.0.0-rc3, llvmorg-13.0.0-rc2, llvmorg-13.0.0-rc1, llvmorg-14-init, llvmorg-12.0.1, llvmorg-12.0.1-rc4, llvmorg-12.0.1-rc3, llvmorg-12.0.1-rc2, llvmorg-12.0.1-rc1, llvmorg-12.0.0, llvmorg-12.0.0-rc5, llvmorg-12.0.0-rc4, llvmorg-12.0.0-rc3, llvmorg-12.0.0-rc2, 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, 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, llvmorg-11.0.0-rc1, llvmorg-12-init, llvmorg-10.0.1, llvmorg-10.0.1-rc4, llvmorg-10.0.1-rc3, llvmorg-10.0.1-rc2, llvmorg-10.0.1-rc1, llvmorg-10.0.0, llvmorg-10.0.0-rc6, llvmorg-10.0.0-rc5, llvmorg-10.0.0-rc4, llvmorg-10.0.0-rc3, llvmorg-10.0.0-rc2, llvmorg-10.0.0-rc1, llvmorg-11-init, llvmorg-9.0.1, llvmorg-9.0.1-rc3, llvmorg-9.0.1-rc2, llvmorg-9.0.1-rc1, llvmorg-9.0.0, llvmorg-9.0.0-rc6, llvmorg-9.0.0-rc5, llvmorg-9.0.0-rc4, llvmorg-9.0.0-rc3 |
|
#
18038065 |
| 28-Aug-2019 |
Fangrui Song <maskray@google.com> |
[clang-doc] Use llvm::createStringError and canonicalize error messages
"Bad block found.\n" -> "bad block found"
The lower cased form with no full stop or newline is more common in LLVM tools.
Re
[clang-doc] Use llvm::createStringError and canonicalize error messages
"Bad block found.\n" -> "bad block found"
The lower cased form with no full stop or newline is more common in LLVM tools.
Reviewed By: juliehockett
Differential Revision: https://reviews.llvm.org/D66783
llvm-svn: 370155
show more ...
|
#
ba3d595f |
| 16-Aug-2019 |
Diego Astiazaran <diegoaat97@gmail.com> |
[clang-doc] Serialize inherited attributes and methods
clang-doc now serializes the inherited attributes and methods, not only the name of the base class. All inherited are tracked, if B:A and C:B,
[clang-doc] Serialize inherited attributes and methods
clang-doc now serializes the inherited attributes and methods, not only the name of the base class. All inherited are tracked, if B:A and C:B, info of A is included in C. This data is stored in attribute Bases in a RecordInfo. Previously tracked inheritance data, stored in Parents and VParents, hasn't been removed to reduce review load.
Differential revision: https://reviews.llvm.org/D66238
llvm-svn: 369075
show more ...
|
#
6a29ae4b |
| 15-Aug-2019 |
Diego Astiazaran <diegoaat97@gmail.com> |
[clang-doc] Fix bitcode writer for access specifiers
Bitcode writer was not emitting the corresponding record for the Access attribute of a FunctionInfo. This has been added. AS_none was being used
[clang-doc] Fix bitcode writer for access specifiers
Bitcode writer was not emitting the corresponding record for the Access attribute of a FunctionInfo. This has been added. AS_none was being used as the default value for any AcesssSpecifier attribute (in FunctionInfo and MemberTypeInfo), this has been changed to AS_public because this is the enum value that evaluates to 0. The bitcode writer doesn't write values that are 0 so if an attribute was set to AS_public, this value is not written and after reading the bitcode it would have the default value which is AS_none. This is why the default value is now AS_public.
Differential Revision: https://reviews.llvm.org/D66151
llvm-svn: 369063
show more ...
|
Revision tags: llvmorg-9.0.0-rc2 |
|
#
7dfe0bc3 |
| 06-Aug-2019 |
Diego Astiazaran <diegoaat97@gmail.com> |
[clang-doc] Add index in each info html file
An index structure is created while generating the output file for each info. This structure is parsed to JSON and written to a file in the output direct
[clang-doc] Add index in each info html file
An index structure is created while generating the output file for each info. This structure is parsed to JSON and written to a file in the output directory. The html for the index is not rendered by clang-doc. A Javascript file is included in the output directory, this will the JSON file and insert HTML elements into the file.
Differential Revision: https://reviews.llvm.org/D65690
llvm-svn: 368070
show more ...
|
#
15e468e0 |
| 06-Aug-2019 |
Diego Astiazaran <diegoaat97@gmail.com> |
[clang-doc] Fix link generation
Before making a link to a reference it is required to check that the reference has a path (eg. primitives won't have paths). This was done by checking if the path was
[clang-doc] Fix link generation
Before making a link to a reference it is required to check that the reference has a path (eg. primitives won't have paths). This was done by checking if the path was empty; that worked because when generating paths the outdirectory was included, so if the path was assigned it had that outdirectory at least. The path generation was changed, it's now only the composite of the namespaces without the outdirectory. So if the info is in the global namespace the path would be empty and the old check wouldn't work as expected. A new attribute has been added to the Reference struct that indicates if the info's parent is the global namespace. Paths generation now fails if the path is empty and if the info is not in the global namespace.
Differential Revision: https://reviews.llvm.org/D64958
llvm-svn: 367958
show more ...
|
Revision tags: llvmorg-9.0.0-rc1 |
|
#
acd35f6c |
| 25-Jul-2019 |
Diego Astiazaran <diegoaat97@gmail.com> |
[clang-doc] Add option for user provided stylesheets
An option has been added to clang-doc to provide a list of css stylesheets that the user wants to use for the generated html docs.
Depends on D6
[clang-doc] Add option for user provided stylesheets
An option has been added to clang-doc to provide a list of css stylesheets that the user wants to use for the generated html docs.
Depends on D64539.
Differential Revision: https://reviews.llvm.org/D64938
llvm-svn: 367072
show more ...
|
#
db5d8e3d |
| 25-Jul-2019 |
Diego Astiazaran <diegoaat97@gmail.com> |
[clang-doc] Add stylesheet to generated html docs
A default css stylesheet is included for docs generated in html format.
Differential Revision: https://reviews.llvm.org/D64539
llvm-svn: 367056
|
Revision tags: llvmorg-10-init |
|
#
2c1c9a24 |
| 12-Jul-2019 |
Julie Hockett <juliehockett@google.com> |
[clang-doc] Add html links to references
<a> tags are added for the parents and members of records and return type and params of functions. The link redirects to the reference's info file.
The dire
[clang-doc] Add html links to references
<a> tags are added for the parents and members of records and return type and params of functions. The link redirects to the reference's info file.
The directory path where each info file will be saved is now generated in the serialization phase and stored as an attribute in each Info.
Bitcode writer and reader were modified to handle the new attributes.
Committed on behalf of Diego Astiazarán (diegoaat97@gmail.com).
Differential Revision: https://reviews.llvm.org/D63663
llvm-svn: 365937
show more ...
|
Revision tags: llvmorg-8.0.1, llvmorg-8.0.1-rc4, llvmorg-8.0.1-rc3, llvmorg-8.0.1-rc2, llvmorg-8.0.1-rc1, llvmorg-8.0.0, llvmorg-8.0.0-rc5, llvmorg-8.0.0-rc4 |
|
#
ffe9f00c |
| 01-Mar-2019 |
Fangrui Song <maskray@google.com> |
Fix file headers. NFC
llvm-svn: 355188
|