| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
| |
SourceManager::isBeforeInTranslationUnit() where the
method will sometimes return different results for the same input SourceLocations. I haven't
unraveled this method completely yet, so this truly is a workaround until a better fix comes
along.
llvm-svn: 103143
|
|
|
|
|
|
| |
a const_cast.
llvm-svn: 101940
|
|
|
|
|
|
|
|
| |
into ContentCache::getBuffer. This allows it to produce
diagnostics on the broken #include line instead of without a
location.
llvm-svn: 101939
|
|
|
|
|
|
|
|
|
| |
about it instead of producing tons of garbage from the lexer.
It would be even better for sourcemgr to dynamically transcode (e.g.
from UTF16 -> UTF8).
llvm-svn: 101924
|
|
|
|
|
|
|
| |
it. PR6812.
- This is another attempt at silencing annoying buildbot failures.
llvm-svn: 100914
|
|
|
|
|
|
|
|
| |
precompiled headers and/or when reading the contents of the file into
memory. These checks seem to be causing spurious regression-test
failures on Windows.
llvm-svn: 100866
|
|
|
|
|
|
|
|
|
|
|
|
| |
Diagnostic subsystem, which is used in the rare case where we find a
serious problem (i.e., an inconsistency in the file system) while
we're busy formatting another diagnostic. In this case, the delayed
diagnostic will be emitted after we're done with the other
diagnostic. This is only to be used for fatal conditions detected at
very inconvenient times, where we can neither stop the current
diagnostic in flight nor can we suppress the second error.
llvm-svn: 99175
|
|
|
|
|
|
|
| |
entry in a precompiled header, so that we can detect modified files
even when we miss in the stat cache.
llvm-svn: 99149
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
deserialization of precompiled headers, where the deserialization of
the source location entry for a buffer (e.g., macro instantiation
scratch space) would overwrite a one-element FileID cache in the
source manager. When tickled at the wrong time, we would return the
wrong decomposed source location and eventually cause c-index-test to
crash.
Found by dumb luck. It's amazing this hasn't shown up before.
llvm-svn: 98940
|
|
|
|
|
|
| |
whether a file has changed since it was originally read.
llvm-svn: 98726
|
|
|
|
|
|
|
| |
changed, rather than trying to point out how it changed. The "why"
doesn't matter.
llvm-svn: 98725
|
|
|
|
|
|
|
|
|
| |
buffer was invalid when it was created, and use that bit to always set
the "Invalid" flag according to whether the buffer is invalid. This
ensures that all accesses to an invalid buffer are marked invalid,
improving recovery.
llvm-svn: 98690
|
|
|
|
|
|
|
| |
SourceManager versions), updating those callers that need to recover
gracefully from failure.
llvm-svn: 98665
|
|
|
|
|
|
| |
const char*.
llvm-svn: 98630
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SourceManager's getBuffer() and, therefore, could fail, along with
Preprocessor::getSpelling(). Use the Invalid parameters in the literal
parsers (string, floating point, integral, character) to make them
robust against errors that stem from, e.g., PCH files that are not
consistent with the underlying file system.
I still need to audit every use caller to all of these routines, to
determine which ones need specific handling of error conditions.
llvm-svn: 98608
|
|
|
|
|
|
| |
simplifying the SourceManager interfaces somewhat.
llvm-svn: 98598
|
|
|
|
|
|
| |
and start simplifying the interfaces in SourceManager that can fail.
llvm-svn: 98594
|
|
|
|
| |
llvm-svn: 98591
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
SourceManager's getBuffer() (and similar) operations. This abstract
can be used to force callers to cope with errors in getBuffer(), such
as missing files and changed files. Fix a bunch of callers to use the
new interface.
Add some very basic checks for file consistency (file size,
modification time) into ContentCache::getBuffer(), although these
checks don't help much until we've updated the main callers (e.g.,
SourceManager::getSpelling()).
llvm-svn: 98585
|
|
|
|
| |
llvm-svn: 98170
|
|
|
|
|
|
|
|
|
| |
end-of-line source location when given a column number beyond the
length of the line, or an end-of-file source location when given a
line number beyond the length of the file. Previously, we would return
an invalid location.
llvm-svn: 97299
|
|
|
|
|
|
|
|
|
|
|
| |
we'd add an offset from the spelling location space to the
instantiation location, which doesn't make sense and would
lead up to the text diagnostics crashing when presented with
non-sensical locations.
This fixes rdar://7597492, a crash on 255.vortex.
llvm-svn: 96004
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
files.
- The issue is that PCH uses a stat cache, which may reference files which have
been deleted or moved. In such cases ContentCache::getBuffer was returning 0
but most clients are incapable of dealing with this (i.e., they don't).
For the time being, resolve this issue by just making up some invalid file
contents and. Eventually we should detect that we are in an inconsistent
situation and error out with a nice message that the PCH is out of date.
llvm-svn: 90699
|
|
|
|
| |
llvm-svn: 90459
|
|
|
|
|
|
|
|
|
|
| |
files with the contents of an arbitrary memory buffer. Use this new
functionality to drastically clean up the way in which we handle file
truncation for code-completion: all of the truncation/completion logic
is now encapsulated in the preprocessor where it belongs
(<rdar://problem/7434737>).
llvm-svn: 90300
|
|
|
|
|
|
| |
ContentCache
llvm-svn: 90294
|
|
|
|
|
|
|
|
|
|
| |
source locations with no common ancestor in the include stack, determine order by assuming memory buffers preceed files, and then that FileIDs are created in order.
The later assumption is patently false, but this was already broken -- this situation is conceptually impossible, my feeling is we should fix SourceManager and friends to make it impossible in practice as well. However, we need to fix PR5662 and perhaps some other things involving memory buffers first. In the short term I'm pretty sure this is reliable.
Chris, Argiris, is this going to break anything that wasn't already broken?
llvm-svn: 90280
|
|
|
|
|
|
|
|
|
|
|
|
| |
in diagnostics when we fail to open a file. This allows us to
report things like:
$ clang test.c -I.
test.c:2:10: fatal error: error opening file './foo.h': Permission denied
#include "foo.h"
^
llvm-svn: 90276
|
|
|
|
|
|
| |
Amine Khaldi!
llvm-svn: 88797
|
|
|
|
| |
llvm-svn: 85862
|
|
|
|
| |
llvm-svn: 85825
|
|
|
|
|
|
|
|
|
|
|
| |
-code-completion-at=filename:line:column
which performs code completion at the specified location by truncating
the file at that position and enabling code completion. This approach
makes it possible to run multiple tests from a single test file, and
gives a more natural command-line interface.
llvm-svn: 82571
|
|
|
|
| |
llvm-svn: 81346
|
|
|
|
| |
llvm-svn: 79868
|
|
|
|
| |
llvm-svn: 79854
|
|
|
|
| |
llvm-svn: 74194
|
|
|
|
| |
llvm-svn: 74020
|
|
|
|
|
|
| |
source locations and determine which one comes before the other, relative to the translation unit.
llvm-svn: 74014
|
|
|
|
|
|
| |
another place.
llvm-svn: 73931
|
|
|
|
| |
llvm-svn: 73826
|
|
|
|
|
|
| |
"file:line:column" triplet.
llvm-svn: 73823
|
|
|
|
| |
llvm-svn: 73027
|
|
|
|
|
|
| |
- Chris, please see added FIXMEs.
llvm-svn: 72019
|
|
|
|
|
|
| |
ignore a PCH file.
llvm-svn: 70251
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
file. In particular, only eagerly load source location entries for
files and for the predefines buffer. Other buffers and
macro-instantiation source location entries are loaded lazily.
With the Cocoa-prefixed "Hello, World", we only load 815/26555 source
location entities. This halves the amount of user time we spend in
this "Hello, World" program with -fsyntax-only (down to .007s).
This optimization is part 1 of 2 for the source manager. This
eliminates most of the user time in loading a PCH file. We still spend
too much time initialize File structures (especially in the calls to
stat), so we need to either make the loading of source location
entries for files lazy or import the stat cache from the PTH
implementation.
llvm-svn: 70196
|
|
|
|
|
|
|
| |
headers. Future approaches to (de-)serializing ASTs will be based on
the PCH infrastructure.
llvm-svn: 69828
|
|
|
|
|
|
| |
properly cope with #line directives in PCH files.
llvm-svn: 68963
|
|
|
|
|
|
| |
separate Internals header. No functionality change
llvm-svn: 68960
|
|
|
|
| |
llvm-svn: 68346
|
|
|
|
|
|
|
| |
with "clang t.i s.i" where the .i files contain line markers.
rdar://6667812
llvm-svn: 66619
|