History log of /llvm-project/clang/lib/Frontend/ASTUnit.cpp (Results 276 – 300 of 656)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 588c9372 19-Feb-2014 Reid Kleckner <reid@kleckner.net>

Use llvm::DeleteContainerSeconds when possible

llvm-svn: 201739


# 090610d3 19-Feb-2014 Ben Langmuir <blangmuir@apple.com>

Initial implementation of virtual file system

This adds the minimum virtual file system support to start migrating
FileManager onto the VFS.

Originally discussed here:
http://lists.cs.uiuc.edu/pipe

Initial implementation of virtual file system

This adds the minimum virtual file system support to start migrating
FileManager onto the VFS.

Originally discussed here:
http://lists.cs.uiuc.edu/pipermail/cfe-dev/2014-February/035188.html

Differential Revision: http://llvm-reviews.chandlerc.com/D2745

llvm-svn: 201618

show more ...


# d90ec571 12-Feb-2014 Daniel Jasper <djasper@google.com>

Fix memory leak introduced by r201010.

llvm-svn: 201220


# b41e7e2c 10-Feb-2014 Dmitri Gribenko <gribozavr@gmail.com>

ASTUnit: simplify remapping files by using the exact same logic in Preprocessor

llvm-svn: 201082


# c444b577 08-Feb-2014 Dmitri Gribenko <gribozavr@gmail.com>

ASTUnit: remove dead code in remapping files

ASTUnit contains code to remap files to other files on disk. This code is not
used. We only remap files to MemoryBuffers.

llvm-svn: 201010


# 2febd212 07-Feb-2014 Dmitri Gribenko <gribozavr@gmail.com>

ASTUnit: ArrayRef'ize RemappedFiles

llvm-svn: 200975


# c50b4bfc 03-Feb-2014 Reid Kleckner <reid@kleckner.net>

Fix a -Wformat warning in ASTUnit.cpp

llvm::sys::cas_flag is 'long' instead of 'uint32_t' on win32, because
that's what InterlockedIncrement is defined to accept.

I still don't know if we should be

Fix a -Wformat warning in ASTUnit.cpp

llvm::sys::cas_flag is 'long' instead of 'uint32_t' on win32, because
that's what InterlockedIncrement is defined to accept.

I still don't know if we should be calling fprintf from ASTUnit.cpp
behind a getenv check.

llvm-svn: 200718

show more ...


# 2a008784 10-Jan-2014 Rafael Espindola <rafael.espindola@gmail.com>

Use the simpler version of llvm::sys::fs::remove when possible.

llvm-svn: 198957


Revision tags: llvmorg-3.4.0
# 556b3d69 20-Dec-2013 Alp Toker <alp@nuanti.com>

Remove obsolete preamble FIXME

The MD5 is checked since r197755 which is as good as comparing buffer contents
in this context.

llvm-svn: 197842


# 3ec8ee72 20-Dec-2013 Dmitri Gribenko <gribozavr@gmail.com>

Correctly compute the size in bytes of PreambleFileHash.MD5

llvm-svn: 197762


# 4765252d 20-Dec-2013 Dmitri Gribenko <gribozavr@gmail.com>

ASTUnit::getMainBufferWithPrecompiledPreamble: use MD5 hash of the remapped
files to tell if they were changed since the last time we have computed the
preamble

We used to check only the buffer size

ASTUnit::getMainBufferWithPrecompiledPreamble: use MD5 hash of the remapped
files to tell if they were changed since the last time we have computed the
preamble

We used to check only the buffer size, so if the new remapped buffer has the
same size as the previous one, we would think that the buffer did not change,
and we did not rebuild the preambule, which sometimes caused us to crash.

llvm-svn: 197755

show more ...


# 40798d30 19-Dec-2013 Dmitri Gribenko <gribozavr@gmail.com>

Simplify code

llvm-svn: 197748


Revision tags: llvmorg-3.4.0-rc3, llvmorg-3.4.0-rc2
# b159c13d 22-Nov-2013 Alp Toker <alp@nuanti.com>

Make ASTUnit structure stable with NDEBUG

ASTUnit instances are allocated infrequently so it's fine to keep this field
around in all build configurations.

Assigns null to silence -Wunused-private-f

Make ASTUnit structure stable with NDEBUG

ASTUnit instances are allocated infrequently so it's fine to keep this field
around in all build configurations.

Assigns null to silence -Wunused-private-field in Release.

llvm-svn: 195419

show more ...


Revision tags: llvmorg-3.4.0-rc1
# 1f76c4e8 24-Oct-2013 Manuel Klimek <klimek@google.com>

Use the same SourceManager for ModuleMaps and compilations.

This allows using virtual file mappings on the original SourceManager to
map in virtual module.map files. Without this patch, the ModuleMa

Use the same SourceManager for ModuleMaps and compilations.

This allows using virtual file mappings on the original SourceManager to
map in virtual module.map files. Without this patch, the ModuleMap
search will find a module.map file (as the FileEntry exists in the
FileManager), but will be unable to get the content from the
SourceManager (as ModuleMap previously created its own SourceManager).

Two problems needed to be fixed which this patch exposed:

1. Storing the inferred module map
When writing out a module, the ASTWriter stores the names of the files
in the main source manager; when loading the AST again, the ASTReader
errs out if such a file is found missing, unless it is overridden.
Previously CompilerInstance's compileModule method would store the
inferred module map to a temporary file; the problem with this approach
is that now that the module map is handled by the main source manager,
the ASTWriter stores the name of the temporary module map as source to
the compilation; later, when the module is loaded, the temporary file
has already been deleted, which leads to a compilation error. This patch
changes the inferred module map to instead inject a virtual file into
the source manager. This both saves some disk IO, and works with how the
ASTWriter/ASTReader handle overridden source files.

2. Changing test input in test/Modules/Inputs/*
Now that the module map file is handled by the main source manager, the
VerifyDiagnosticConsumer will not ignore diagnostics created while
parsing the module map file. The module test test/Modules/renamed.m uses
-I test/Modules/Inputs and triggers recursive loading of all module maps
in test/Modules/Inputs, some of which had conflicting names, thus
leading errors while parsing the module maps. Those diagnostics already
occur on trunk, but before this patch they would not break the test, as
they were ignored by the VerifyDiagnosticConsumer. This patch thus
changes the module maps that have been recently introduced which broke
the invariant of compatible modules maps in test/Modules/Inputs.

llvm-svn: 193314

show more ...


# ca5c7be0 15-Oct-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com>

[libclang] For an unscoped enum include the enumerators in the top-level code-completion hash since they enter the top-level namespace.

rdar://14703327

llvm-svn: 192720


# 0a4e61f8 13-Sep-2013 David Blaikie <dblaikie@gmail.com>

Remove unnecessary inclusion of Sema.h

Let me tell you a tale...

Within some twisted maze of debug info I've ended up implementing an
insane man's Include What You Use device. When the debugger emi

Remove unnecessary inclusion of Sema.h

Let me tell you a tale...

Within some twisted maze of debug info I've ended up implementing an
insane man's Include What You Use device. When the debugger emits debug
info it really shouldn't, I find out why & then realize the code could
be improved too.

In this instance CIndexDiagnostics.cpp had a lot more debug info with
Clang than GCC. Upon inspection a major culprit was all the debug info
describing clang::Sema. This was emitted because clang::Sema is
befriended by DiagnosticEngine which was rightly required, but GCC
doesn't emit debug info for friends so it never emitted anything for
Clang. Clang does emit debug info for friends (will be fixed/changed to
reduce debug info size).

But why didn't Clang just emit a declaration of Sema if this entire TU
didn't require a definition?

1) Diagnostic.h did the right thing, only using a declaration of Sema
and not including Sema.h at all.
2) Some other dependency of CIndexDiagnostics.cpp didn't do the right
thing. ASTUnit.h, only needing a declaration, still included Sema.h
(hence this commit which removes that include and adds the necessary
includes to the cpp files that were relying on this)
3) -flimit-debug-info didn't save us because of
EnterExpressionEvaluationContext, defined inline in Sema.h which fires
the "requiresCompleteType" check/flag (since it uses nested types from
Sema and calls Sema member functions) and thus, if debug info is ever
emitted for the type, the whole type is emitted and not just a
declaration.

Improving -flimit-debug-info to account for this would be... hard.
Modifying the code so that's not 'required to be complete' might be
possible, but probably only by moving EnterExpressionEvaluationContext
either into Sema, or out of Sema.h. That might be a bit too much of a
contortion to be bothered with.

Also, this is only one of the cases where emitting debug info for
friends caused us to emit a lot more debug info (this change reduces
Clang's DWO size by 0.93%, dropping friends entirely reduces debug info
by 3.2%) - I haven't hunted down the other cases, but I assume they
might be similar (Sema or something like it). IWYU or a similar tool
might help us reduce build times a bit, but analyzing debug info to find
these differences isn't worthwhile. I'll take the 3.2% win, provide this
small improvement to the code itself, and move on.

llvm-svn: 190715

show more ...


# 45025c0c 24-Aug-2013 Benjamin Kramer <benny.kra@googlemail.com>

This wasn't headers, just missing namespaces.

/me bows head in shame.

llvm-svn: 189172


# e3e855bb 24-Aug-2013 Benjamin Kramer <benny.kra@googlemail.com>

Replace compLocDecl with less_first.

llvm-svn: 189170


# acfbbd77 07-Aug-2013 Argyrios Kyrtzidis <akyrtzi@gmail.com>

[PCH] Fix a PCH serialization crash, with invalid code related to forward enum references.

The problem was that an enum without closing semicolon could be associated as a forward enum
in an erroneou

[PCH] Fix a PCH serialization crash, with invalid code related to forward enum references.

The problem was that an enum without closing semicolon could be associated as a forward enum
in an erroneous declaration, leading to the identifier being associated with the enum decl but
without a declaration actually referencing it.
This resulted in not having it serialized before serializing the identifier that is associated with.

Also prevent the ASTUnit from querying the serialized DeclID for an invalid top-level decl; it may not
have been serialized.

rdar://14539667

llvm-svn: 187914

show more ...


# 073ff101 29-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com>

Update for llvm api change.

llvm-svn: 187379


# e4777f46 29-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com>

Convert a use of stat with sys::fs::status.

llvm-svn: 187364


# be0474c0 18-Jul-2013 Manuel Klimek <klimek@google.com>

Fix crash in libclang if code completion is used with unknown flags.

Use CaptureDroppedDiagnostics to make sure that there is a diagnostic
client installed when warning flags are parsed.

llvm-svn:

Fix crash in libclang if code completion is used with unknown flags.

Use CaptureDroppedDiagnostics to make sure that there is a diagnostic
client installed when warning flags are parsed.

llvm-svn: 186582

show more ...


Revision tags: llvmorg-3.3.1-rc1
# 18627115 05-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com>

Use llvm::sys::fs::createUniqueFile.

Include a test that clang now produces output files with permissions matching
the umask.

llvm-svn: 185727


# a36e78ef 05-Jul-2013 Rafael Espindola <rafael.espindola@gmail.com>

Use llvm::sys::fs::createTemporaryFile.

llvm-svn: 185717


# f5e5bc47 26-Jun-2013 Rafael Espindola <rafael.espindola@gmail.com>

Don't use PathV1.h in ASTUnit.cpp.

llvm-svn: 184912


1...<<11121314151617181920>>...27