| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
| |
member function or member function template is declared 'const'
Patch by Kevin Funk with testcase updates by me.
llvm-svn: 205714
|
|
|
|
| |
llvm-svn: 203169
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A 'remark' is information that is not an error or a warning, but rather some
additional information provided to the user. In contrast to a 'note' a 'remark'
is an independent diagnostic, whereas a 'note' always depends on another
diagnostic.
A typical use case for remark nodes is information provided to the user, e.g.
information provided by the vectorizer about loops that have been vectorized.
This patch provides the initial implementation of 'remarks'. It includes the
actual definiton of the remark nodes, their printing as well as basic parameter
handling. We are reusing the existing diagnostic parameters which means a remark
can be enabled with normal '-Wdiagnostic-name' flags and can be upgraded to
an error using '-Werror=diagnostic-name'. '-Werror' alone does not upgrade
remarks.
This patch is by intention minimal in terms of parameter handling. More
experience and more discussions will most likely lead to further enhancements
in the parameter handling.
llvm-svn: 202475
|
|
|
|
|
|
|
|
|
|
| |
clang_Type_getTemplateArgument
Note that these functions don't handle variadic templates -- see tests.
Patch by Matthieu Nottale and Philippe Daouadi.
llvm-svn: 202406
|
|
|
|
| |
llvm-svn: 201512
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit improves libclang to report the error condition when
CXTranslationUnit can not be created because of a stale PCH file. This allows
the caller, for example, to rebuild the PCH file and retry the request.
There two are APIs in libclang that return a CXTranslationUnit and don't
support reporting detailed errors (the only error condition is a NULL result).
For these APIs, a second, superior, version is introduced --
clang_createTranslationUnit2 and clang_parseTranslationUnit2. These functions
return a CXTranslationUnit indirectly and also return an error code. Old
functions are still supported and are nothing more than convenience wrappers
that ignore extended error codes.
As a cleanup, this commit also categorizes some libclang errors in the
functions I had to modify anyway.
llvm-svn: 201249
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the build
When Clang loads the module, it verifies the user source files that the module
was built from. If any file was changed, the module is rebuilt. There are two
problems with this:
1. correctness: we don't verify system files (there are too many of them, and
stat'ing all of them would take a lot of time);
2. performance: the same module file is verified again and again during a
single build.
This change allows the build system to optimize source file verification. The
idea is based on the fact that while the project is being built, the source
files don't change. This allows us to verify the module only once during a
single build session. The build system passes a flag,
-fbuild-session-timestamp=, to inform Clang of the time when the build started.
The build system also requests to enable this feature by passing
-fmodules-validate-once-per-build-session. If these flags are not passed, the
behavior is not changed. When Clang verifies the module the first time, it
writes out a timestamp file. Then, when Clang loads the module the second
time, it finds a timestamp file, so it can compare the verification timestamp
of the module with the time when the build started. If the verification
timestamp is too old, the module is verified again, and the timestamp file is
updated.
llvm-svn: 201224
|
|
|
|
|
|
|
|
| |
future-proof.
Suggested by Alp Toker.
llvm-svn: 196591
|
|
|
|
|
|
|
|
| |
is more
Windows friendly than the colon.
llvm-svn: 196529
|
|
|
|
|
|
|
|
| |
libclang.
Patch by Erik Verbruggen!
llvm-svn: 196487
|
|
|
|
|
|
|
|
| |
at a particular reparsing iteration.
Passing '-remap-file-1=from:to' will remap the files in the second iteration.
llvm-svn: 196486
|
|
|
|
|
|
|
|
| |
separator.
lldb does not like semicolon as part of an option.
llvm-svn: 196485
|
|
|
|
|
|
|
|
| |
ref-qualifier information of function type.
Patch by Che-Liang Chiou!
llvm-svn: 192493
|
|
|
|
| |
llvm-svn: 186872
|
|
|
|
|
|
| |
warning: initializer for aggregate is not a compile-time constant [-Wc99-extensions]
llvm-svn: 186833
|
|
|
|
|
|
|
|
| |
declaration was affected by "@optional"
rdar://14348525.
llvm-svn: 185722
|
|
|
|
|
|
| |
Patch by Seth Fowler.
llvm-svn: 182139
|
|
|
|
|
|
|
|
| |
module file where a module object came from.
rdar://13743084
llvm-svn: 180643
|
|
|
|
|
|
|
|
|
| |
if modules are enabled.
The preprocessing record becomes important when modules are enabled, since it is used to calculate the
module cache hash.
llvm-svn: 180635
|
|
|
|
|
|
|
|
| |
given cursor is a variadic function or method.
rdar://13667150
llvm-svn: 179819
|
|
|
|
|
|
|
|
|
|
| |
Qualifiers' written next to the return and
parameter types in an ObjC method declarations.
rdar://13676977
llvm-svn: 179816
|
|
|
|
|
|
|
|
| |
written attributes in a property declaration.
rdar://13684512
llvm-svn: 179803
|
|
|
|
|
|
|
|
| |
of a C++ declaration within its parent scope.
Suggested by Stefan Seefeld.
llvm-svn: 179297
|
|
|
|
|
|
|
|
|
|
|
| |
clang_Type_getAlignOf
clang_Type_getSizeOf
clang_Type_getOffsetOf
clang_Cursor_isBitField
Patch by Loïc Jaquemet!
llvm-svn: 179251
|
|
|
|
|
|
| |
functionality.
llvm-svn: 179123
|
|
|
|
|
|
|
|
|
|
|
| |
This allows resolving top-header filenames of modules to FileEntries when
we need them, not eagerly.
Note that that this breaks ABI for libclang functions
clang_Module_getTopLevelHeader / clang_Module_getNumTopLevelHeaders
but this is fine because they are experimental and not widely used yet.
llvm-svn: 176975
|
|
|
|
|
|
| |
Patch by Guy Benyei!
llvm-svn: 176806
|
|
|
|
|
|
|
|
|
| |
all #import/#include directives in a specific file.
It passes to the visitor, that the caller provides, CXCursor_InclusionDirective cursors for
all the include directives in a particular file.
llvm-svn: 176682
|
|
|
|
|
|
| |
These all appear in comments or (ironically) diagnostics output.
llvm-svn: 176383
|
|
|
|
|
|
|
|
|
| |
Adds a function clang_getTypeSpelling(CXType CT) that returns
a CXString containing the underlying type.
Patch by Ben Gertzfield.
llvm-svn: 175299
|
|
|
|
|
|
| |
Patch from Edwin Vane!
llvm-svn: 170366
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
that were already parsed in the same "indexing session".
An indexing session is defined as using the same CXIndexAction object
for multiple clang_indexSourceFile calls.
Passing CXIndexOpt_SkipParsedBodiesInSession as an indexing option will
enable the mode where we try to skip bodies that were already parsed in
another translation unit.
If a function's body was skipped, the "flags" field in the CXIdxDeclInfo
structure will have "CXIdxDeclFlag_Skipped" bit was set.
llvm-svn: 169539
|
|
|
|
|
|
|
|
| |
database file
and does an '-index-file' for all compile commands in the database.
llvm-svn: 169430
|
|
|
|
| |
llvm-svn: 169277
|
|
|
|
|
|
| |
Patch by Jyun-Yan You.
llvm-svn: 169276
|
|
|
|
|
|
|
|
| |
the receiver of an ObjC message expression.
rdar://12578643
llvm-svn: 167201
|
|
|
|
|
| |
FIXME: They are still long strings without formatter in printf(3)!
llvm-svn: 166636
|
|
|
|
|
|
| |
modules/PCH files.
llvm-svn: 166605
|
|
|
|
|
|
| |
imports.
llvm-svn: 166161
|
|
|
|
| |
llvm-svn: 165797
|
|
|
|
|
|
|
| |
in c-index-test. index_enteredMainFile is not invoked when indexing a
module file.
llvm-svn: 165735
|
|
|
|
| |
llvm-svn: 165732
|
|
|
|
|
|
|
|
|
| |
The ASTUnit needs to initialize an ASTWriter at the beginning of
parsing to fully handle serialization of a translation unit that
imports modules. Do this by introducing an option to enable it, which
corresponds to CXTranslationUnit_ForSerialization on the C API side.
llvm-svn: 165717
|
|
|
|
|
|
| |
importedASTFile indexing callback.
llvm-svn: 165281
|
|
|
|
|
|
|
|
|
|
|
| |
clang_Cursor_getModule
clang_Module_getParent
clang_Module_getName
clang_Module_getFullName
clang_Module_getNumTopLevelHeaders
clang_Module_getTopLevelHeader
llvm-svn: 165280
|
|
|
|
|
|
| |
imports via ImportDecls.
llvm-svn: 165160
|
|
|
|
|
|
| |
make sure that it gets enabled for when a module needs to be created.
llvm-svn: 165021
|
|
|
|
|
|
| |
info about imported modules.
llvm-svn: 165020
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now we have a list of all commands. This is a good thing in itself, but it
also enables us to easily implement typo correction for command names.
With this change we have objects that contain information about each command,
so it makes sense to resolve command name just once during lexing (currently we
store command names as strings and do a linear search every time some property
value is needed). Thus comment token and AST nodes were changed to contain a
command ID -- index into a tables of builtin and registered commands. Unknown
commands are registered during parsing and thus are also uniformly assigned an
ID. Using an ID instead of a StringRef is also a nice memory optimization
since ID is a small integer that fits into a common bitfield in Comment class.
This change implies that to get any information about a command (even a command
name) we need a CommandTraits object to resolve the command ID to CommandInfo*.
Currently a fresh temporary CommandTraits object is created whenever it is
needed since it does not have any state. But with this change it has state --
new commands can be registered, so a CommandTraits object was added to
ASTContext.
Also, in libclang CXComment has to be expanded to include a CXTranslationUnit
so that all functions working on comment AST nodes can get a CommandTraits
object. This breaks binary compatibility of CXComment APIs.
Now clang_FullComment_getAsXML(CXTranslationUnit TU, CXComment CXC) doesn't
need TU parameter anymore, so it was removed. This is a source-incompatible
change for this C API.
llvm-svn: 163540
|
|
|
|
| |
llvm-svn: 163025
|