| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 184912
|
|
|
|
| |
llvm-svn: 184909
|
|
|
|
| |
llvm-svn: 184908
|
|
|
|
| |
llvm-svn: 184907
|
|
|
|
|
|
|
|
|
|
|
| |
account ImportDecls.
The top-level hash is used to determine if we need to update the global code-completion results.
ImportDecls did not affect the hash so a newly introduced ImportDecl would not trigger an update of the global results.
rdar://14202797
llvm-svn: 184782
|
|
|
|
| |
llvm-svn: 184432
|
|
|
|
| |
llvm-svn: 184218
|
|
|
|
|
|
| |
This is preparation for replacing Path.h with PathV2.h.
llvm-svn: 183781
|
|
|
|
| |
llvm-svn: 183751
|
|
|
|
|
|
|
|
| |
PrecompilePreambleConsumer.
Actions outlive consumers. PR16295. Found by AddressSanitizer.
llvm-svn: 183741
|
|
|
|
|
|
|
|
|
|
|
| |
A while ago we allowed libclang to build a PCH that had compiler errors; this was to retain the performance
afforded by a PCH even if the user's code is in an intermediate state.
Extend this for the precompiled preamble as well.
rdar://14109828
llvm-svn: 183717
|
|
|
|
|
|
|
|
|
|
| |
instead of trying to continue in an invalid state.
Also don't let libclang create a PCH with such an error.
Fixes rdar://13953768
llvm-svn: 182629
|
|
|
|
|
|
|
|
| |
to install the ASTWriter that we create as an ASTMutationListener.
Fixes rdar://13833268
llvm-svn: 181575
|
|
|
|
|
|
|
|
| |
This made sense in pre-module era, before merging of HeaderFileInfos was introduced.
Final part of rdar://13840148.
llvm-svn: 181490
|
|
|
|
| |
llvm-svn: 181150
|
|
|
|
| |
llvm-svn: 181070
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, we would clone the current diagnostic consumer to produce
a new diagnostic consumer to use when building a module. The problem
here is that we end up losing diagnostics for important diagnostic
consumers, such as serialized diagnostics (where we'd end up with two
diagnostic consumers writing the same output file). With forwarding,
the diagnostics from all of the different modules being built get
forwarded to the one serialized-diagnostic consumer and are emitted in
a sane way.
Fixes <rdar://problem/13663996>.
llvm-svn: 181067
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and the global module index.
The global module index was querying the file manager for each of the
module files it knows about at load time, to prune out any out-of-date
information. The file manager would then cache the results of the
stat() falls used to find that module file.
Later, the same translation unit could end up trying to import one of the
module files that had previously been ignored by the module cache, but
after some other Clang instance rebuilt the module file to bring it
up-to-date. The stale stat() results in the file manager would
trigger a second rebuild of the already-up-to-date module, causing
failures down the line.
The global module index now lazily resolves its module file references
to actual AST reader module files only after the module file has been
loaded, eliminating the stat-caching race. Moreover, the AST reader
can communicate to its caller that a module file is missing (rather
than simply being out-of-date), allowing us to simplify the
module-loading logic and allowing the compiler to recover if a
dependent module file ends up getting deleted.
llvm-svn: 177367
|
|
|
|
|
|
| |
print out the filename.
llvm-svn: 176511
|
|
|
|
|
|
|
|
| |
available the
full information about the macro (e.g if it was imported and where).
llvm-svn: 175978
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
commands
Add an ability to specify custom documentation block comment commands via a new
class CommentOptions. The intention is that this class will hold future
customizations for comment parsing, including defining documentation comments
with specific numbers of parameters, etc.
CommentOptions instance is a member of LangOptions.
CommentOptions is controlled by a new command-line parameter
-fcomment-block-commands=Foo,Bar,Baz.
llvm-svn: 175892
|
|
|
|
| |
llvm-svn: 173277
|
|
|
|
|
|
|
|
|
|
| |
crash if Precompilepreamble
is set to true because there is no FileManager at that point.
Patch by Hurcan Solter!
llvm-svn: 173071
|
|
|
|
|
|
|
| |
Also, it was the only reason that `argc` and `argv` were being passed
into createDiagnostics, so remove those parameters and clean up callers.
llvm-svn: 172945
|
|
|
|
|
|
| |
brought into 'clang' namespace by clang/Basic/LLVM.h
llvm-svn: 172323
|
|
|
|
|
|
|
|
| |
ASTUnit
came from loading a PCH/module.
llvm-svn: 172259
|
|
|
|
| |
llvm-svn: 171367
|
|
|
|
|
|
|
|
|
|
|
| |
to the
code-completion results, the SourceManager state may be slightly
different when code-completing.
And we don't even care for diagnostics when code-completing, anyway.
llvm-svn: 170979
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
uncovered.
This required manually correcting all of the incorrect main-module
headers I could find, and running the new llvm/utils/sort_includes.py
script over the files.
I also manually added quite a few missing headers that were uncovered by
shuffling the order or moving headers up to be main-module-headers.
llvm-svn: 169237
|
|
|
|
|
|
| |
it as a pointer.
llvm-svn: 168136
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
CachedCompletionAllocator
to the CodeCompletionTUInfo that is going to be used to get the results.
Previously we would use ASTUnit's CodeCompletionTUInfo which has its own allocator
that will go away when we reparse. That could result in a use-after-free bug when
getting the parent context name from a CodeCompletionString.
Addresses rdar://12568377.
llvm-svn: 168133
|
|
|
|
|
|
| |
as the include location of the main file of an imported module.
llvm-svn: 168061
|
|
|
|
| |
llvm-svn: 168041
|
|
|
|
|
|
| |
a memory buffer instead of only a filename.
llvm-svn: 167627
|
|
|
|
|
|
| |
enabled.
llvm-svn: 167325
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The stat cache became essentially useless ever since we started
validating all file entries in the PCH.
But the motivating reason for removing it now is that it also affected
correctness in this situation:
-You have a header without include guards (using "#pragma once" or #import)
-When creating the PCH:
-The same header is referenced in an #include with different filename cases.
-In the PCH, of course, we record only one file entry for the header file
-But we cache in the PCH file the stat info for both filename cases
-Then the source files are updated and the header file is updated in a way that
its size and modification time are the same but its inode changes
-When using the PCH:
-We validate the headers, we check that header file and we create a file entry with its current inode
-There's another #include with a filename with different case than the previously created file entry
-In order to get its stat info we go through the cached stat info of the PCH and we receive the old inode
-because of the different inodes, we think they are different files so we go ahead and include its contents.
Removing the stat cache will potentially break clients that are attempting to use the stat cache
as a way of avoiding having the actual input files available. If that use case is important, patches are welcome
to bring it back in a way that will actually work correctly (i.e., emit a PCH that is self-contained, coping with
literal strings, line/column computations, etc.).
This fixes rdar://5502805
llvm-svn: 167172
|
|
|
|
|
|
| |
add a test to make sure code-completion skips bodies.
llvm-svn: 167141
|
|
|
|
| |
llvm-svn: 166981
|
|
|
|
| |
llvm-svn: 166650
|
|
|
|
| |
llvm-svn: 166599
|
|
|
|
|
|
| |
reference-counted, and hold a reference to it in HeaderSearch.
llvm-svn: 166583
|
|
|
|
|
|
|
| |
the various stakeholders bump up the reference count. In particular,
the diagnostics engine now keeps the DiagnosticOptions object alive.
llvm-svn: 166508
|
|
|
|
|
|
|
|
|
| |
check each of the files within that directory to determine if any of
them is an AST file that matches the language and target options. If
so, the first matching AST file is loaded. This fixes a longstanding
discrepency with GCC's precompiled header implementation.
llvm-svn: 166469
|
|
|
|
|
|
|
|
|
|
| |
failures they know how to tolerate, e.g., out-of-date input files or
configuration/version mismatches. Suppress the corresponding
diagnostics if the client can handle it.
No clients actually use this functionality, yet.
llvm-svn: 166449
|
|
|
|
|
|
|
|
| |
file corruption, compiler version mismatch, target/language
configuration mismatch, out-of-date AST file. No functionality change
yet.
llvm-svn: 166446
|
|
|
|
|
|
|
| |
target options around so they can be accessed at any point (rather
than keeping them transient).
llvm-svn: 166072
|
|
|
|
|
|
| |
created.
llvm-svn: 165943
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
an invalid location if the location points to the synthetic buffer
for the module input.
llvm-svn: 165592
|
|
|
|
| |
llvm-svn: 165161
|