ef8225444452a1486bd721f3285301fe84643b00 |
21-Jul-2014 |
Stephen Hines <srhines@google.com> |
Update Clang for rebase to r212749. This also fixes a small issue with arm_neon.h not being generated always. Includes a cherry-pick of: r213450 - fixes mac-specific header issue r213126 - removes a default -Bsymbolic on Android Change-Id: I2a790a0f5d3b2aab11de596fc3a74e7cbc99081d
STUnit.h
hainedIncludesSource.h
odeGenOptions.def
odeGenOptions.h
ompilerInstance.h
ompilerInvocation.h
ependencyOutputOptions.h
iagnosticRenderer.h
angStandard.h
angStandards.def
ogDiagnosticPrinter.h
extDiagnostic.h
tils.h
erifyDiagnosticConsumer.h
|
6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 |
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update Clang for 3.5 rebase (r209713). Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
STUnit.h
odeGenOptions.def
odeGenOptions.h
ompilerInstance.h
ompilerInvocation.h
iagnosticRenderer.h
rontendAction.h
rontendActions.h
rontendOptions.h
ultiplexConsumer.h
extDiagnosticBuffer.h
tils.h
erifyDiagnosticConsumer.h
|
651f13cea278ec967336033dd032faef0e9fc2ec |
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Updated to Clang 3.5a. Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
STUnit.h
hainedDiagnosticConsumer.h
hainedIncludesSource.h
odeGenOptions.def
odeGenOptions.h
ompilerInstance.h
ependencyOutputOptions.h
iagnosticRenderer.h
rontendAction.h
rontendActions.h
rontendOptions.h
ayoutOverrideSource.h
ogDiagnosticPrinter.h
ultiplexConsumer.h
erializedDiagnosticPrinter.h
extDiagnostic.h
extDiagnosticBuffer.h
extDiagnosticPrinter.h
tils.h
erifyDiagnosticConsumer.h
|
ce5b5f13a6c90904040b29b9eb765bb7cd736f0b |
17-Nov-2013 |
Hal Finkel <hfinkel@anl.gov> |
Add -freroll-loops to enable loop rerolling This adds -freroll-loops (and -fno-reroll-loops in the usual way) to enable loop rerolling as part of the optimization pass manager. This transformation can enable vectorization, reduce code size (or both). Briefly, loop rerolling can transform a loop like this: for (int i = 0; i < 3200; i += 5) { a[i] += alpha * b[i]; a[i + 1] += alpha * b[i + 1]; a[i + 2] += alpha * b[i + 2]; a[i + 3] += alpha * b[i + 3]; a[i + 4] += alpha * b[i + 4]; } into this: for (int i = 0; i < 3200; ++i) { a[i] += alpha * b[i]; } Loop rerolling is currently disabled by default at all optimization levels. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194967 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
|
2c050f6a68c4f871d26be63f8d598f1b64a8e16f |
14-Nov-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[objcmt] Introduce "objcmt-white-list-dir-path=" option. This options accepts a path to a directory, collects the filenames of the files it contains, and the migrator will only modify files with the same filename. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194710 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
b85a9ec6df63f30bbdef9a3975b1d31a680b15c1 |
13-Nov-2013 |
Diego Novillo <dnovillo@google.com> |
Add -fprofile-sample-use to Clang's driver. This adds a new option -fprofile-sample-use=filename to Clang. It tells the driver to schedule the SampleProfileLoader pass and passes on the name of the profile file to use. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194567 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
5d2a20671954f55f765b96375e8bcd38367cb3ba |
13-Nov-2013 |
Fariborz Jahanian <fjahanian@apple.com> |
ObjectiveC migrator. Place use of NS_NONATOMIC_IOSONLY on inferred property attribute under -objcmt-ns-nonatomic-iosonly option. // rdar://15442742 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194532 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
3347b497157d36cf280d1d9f52956faa6e702f34 |
12-Nov-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Rather than duplicating extension diagnostics to allow them to cause a substitution failure, allow a flag to be set on the Diagnostic object, to mark it as 'causes substitution failure'. Refactor Diagnostic.td and the tablegen to use an enum for SFINAE behavior rather than a bunch of flags. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194444 91177308-0d34-0410-b5e6-96231b3b80d8
rontendDiagnostic.h
|
78e39b0b69ee5af1d9691f3143de15cb37b8ad55 |
08-Nov-2013 |
Fariborz Jahanian <fjahanian@apple.com> |
ObjectiveC migrator. Fixes an obscure bug where NS_RETURNS_INNER_POINTER ends up unintentionally on the @property under -objcmt-migrate-all // rdar://15396636 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194233 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
cd569f2788ece55b9f790b6900164e2b2d5d966c |
05-Nov-2013 |
Fariborz Jahanian <fjahanian@apple.com> |
ObjectiveC migrator. Please annotation of properties with NS_RETURNS_INNER_POINTER under -objcmt-returns-innerpointer-property flag (off by default), as older compilers do not support such annotations. // rdar://15396636 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194100 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
063820655db8121f0022a7c51458463c7250324c |
20-Oct-2013 |
Benjamin Kramer <benny.kra@googlemail.com> |
Miscellaneous speling fixes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193046 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
39ebb02cb0bd342ced56de6d19aa9992aa0371b8 |
09-Oct-2013 |
Fariborz Jahanian <fjahanian@apple.com> |
ObjectiveC migrator. Introduce a new objcmt-atomic-property option and use it to infer all properties as 'atomic'. // rdar://14988132 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192317 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
9a7e09fffbad657f775417252bc966098dfb1501 |
07-Oct-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Remove -ast-dump-xml. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192131 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
rontendActions.h
rontendOptions.h
|
081099d302b79d1746c7a39da14e3265971eb718 |
02-Oct-2013 |
Fariborz Jahanian <fjahanian@apple.com> |
ObjectiveC migrator. Starting distiguising different migrations under their own option. wip and // rdar://15003157 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191855 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
74fd551c0ba344d62aedc8636ed81b45652f04d8 |
02-Oct-2013 |
Fariborz Jahanian <fjahanian@apple.com> |
Objective-C migrator. Simplify migrator option processing in preparation for adding several more options. // rdar://15003157 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191842 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
89e32745123c02159fa1d1f19f96bdd4173029f0 |
24-Sep-2013 |
Hans Wennborg <hans@hanshq.net> |
clang-cl: print diagnostics as "error(clang): foo" in /fallback mode This solves two problems: 1) MSBuild will not flag the build as unsuccessful just because we print an error in the output, since "error(clang):" doesn't seem to match the regex it's using. 2) It becomes more clear that the diagnostic is coming from clang as supposed to cl.exe. Differential Revision: http://llvm-reviews.chandlerc.com/D1735 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191250 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnostic.h
|
0b5ca510fb00eeb19ab82ebfd3c2585404bc9aa8 |
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 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190715 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
5b98aba1d74184923da32016c3abbc20e9a7686d |
29-Aug-2013 |
Fariborz Jahanian <fjahanian@apple.com> |
ObjectiveC migrator. This patch infers readonly properties for no-parameter instance methods returning non-void. This will be quite noisy. So, it is placed under a new migrator flag -objcmt-migrate-readonly-property. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189537 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
708002ede3938256a6223d153a0c040f7a40f5cc |
09-Aug-2013 |
Hans Wennborg <hans@hanshq.net> |
clang-cl: Support /showIncludes This option prints information about #included files to stderr. Clang could already do it, this patch just teaches the existing code about the /showIncludes style and adds the flag. Differential Revision: http://llvm-reviews.chandlerc.com/D1333 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188037 91177308-0d34-0410-b5e6-96231b3b80d8
ependencyOutputOptions.h
tils.h
|
b3574796d7cc0113e54b6516fc16e17ca09459fb |
08-Aug-2013 |
Hans Wennborg <hans@hanshq.net> |
clang-cl: Support the run-time selection options (/MD, /MT et al.) These flags set some preprocessor macros and injects a dependency on the runtime library into the object file, which later is picked up by the linker. This also adds a new CC1 flag for adding a dependent library. Differential Revision: http://llvm-reviews.chandlerc.com/D1315 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187945 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
d412999a3da6387dbfaf00f7647132082e94310e |
09-Jul-2013 |
Fariborz Jahanian <fjahanian@apple.com> |
ObjC migrator: Add -objcmt-migrate-property to do property migration. Also, fixes an old bug where older migration flags were not being checked for properly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185948 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
375a4f519eb85d37e702c90498ef9816aeda4c3e |
27-Jun-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Small improvements to createOutputFile. * Use a single stat to find out if the file exists and if it is a regular file. * Use early returns when possible. * Add comments explaining why we have each check. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@185091 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
92306906ba0a57084942ef93e941dff4d2d9320e |
26-Jun-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove forward declarations of sys::Path. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184911 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
|
b804cb315cfeebc4d1c4d2d023ffb08440f77254 |
26-Jun-2013 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove some uses of llvm::sys::Path. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184907 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
fdf137b9073aa52423183fe886d072bc3b7d3889 |
25-Jun-2013 |
Nick Lewycky <nicholas@mxc.ca> |
Make -vectorize-... proper cc1 flags instead of abusing -backend-option. Fixes usage of clang as a library. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184812 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
|
ab297ccbcc51d5197d4ddb4e99b7bc8868d38314 |
24-Jun-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Add -ast-dump-lookups switch to -cc1 to dump DeclContext lookup maps. Test to follow. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184678 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
rontendOptions.h
|
73b8d4bdd68372bff9eddc5a02675ee345a8a94f |
21-Jun-2013 |
Nick Lewycky <nicholas@mxc.ca> |
Fix a leak of TargetMachine in clang. We'll continue to leak it on purpose if given -disable-free. (Reviewed by John McCall over IRC.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184595 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
|
8f5d7d1d1f990f174c7f2682271a83acf64dd93d |
21-Jun-2013 |
Douglas Gregor <dgregor@apple.com> |
[Modules] If a module map resides in a system header directory, treat it as a system module. This prevents -pedantic from causing warnings in the system headers used to create modules. Fixes <rdar://problem/14201171>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184560 91177308-0d34-0410-b5e6-96231b3b80d8
rontendActions.h
|
fc0f91cf0673775ce4b8b174dbb05ad2e4e6cd01 |
19-Jun-2013 |
Manman Ren <mren@apple.com> |
Debug Info: support for gdwarf-2 gdwarf-3 gdwarf-4 These options will add a module flag with name "Dwarf Version". The behavior flag is currently set to Warning, so when two values disagree, a warning will be emitted. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184276 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
|
b8b52972c72b2ba6fe171c522e5d3d7d69503021 |
18-Jun-2013 |
John McCall <rjmccall@apple.com> |
Add support for -fpcc-struct-return. Patch by Arthur O'Dwyer! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184166 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
odeGenOptions.h
|
dd0b3c4c72464af92e2c27dd5a67e29f91ba7b28 |
17-Jun-2013 |
Reid Kleckner <reid@kleckner.net> |
[Driver] Remove the using namespace directives from headers This adds a bunch of llvm::opt name specifiers to all the uses of types from that namespace. Reviewers: espindola Differential Revision: http://llvm-reviews.chandlerc.com/D983 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184079 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
|
b1e25a1bc03292dc538d336573e0be1490223171 |
14-Jun-2013 |
Reid Kleckner <reid@kleckner.net> |
[Driver] Refactor clang driver to use LLVM's Option library The big changes are: - Deleting Driver/(Arg|Opt)* - Rewriting includes to llvm/Option/ and re-sorting - 'using namespace llvm::opt' in clang::driver - Fixing the autoconf build by adding option everywhere As discussed in the review, this change includes using directives in header files. I'll make follow up changes to remove those in favor of name specifiers. Reviewers: espindola Differential Revision: http://llvm-reviews.chandlerc.com/D975 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183989 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
tils.h
|
1f01f7c160c06f8290b4f1c203e36b242074c6b1 |
11-Jun-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Allow building a precompiled preamble with compiler errors 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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@183717 91177308-0d34-0410-b5e6-96231b3b80d8
rontendAction.h
|
3b7deda7137e62810a810ce25b062927a9fc7c71 |
24-May-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[modules] If we hit a failure while loading a PCH/module, abort parsing instead of trying to continue in an invalid state. Also don't let libclang create a PCH with such an error. Fixes rdar://13953768 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@182629 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
|
7247c88d1e41514a41085f83ebf03dd5220e054a |
15-May-2013 |
David Blaikie <dblaikie@gmail.com> |
Use only explicit bool conversion operator The most common (non-buggy) case are where such objects are used as return expressions in bool-returning functions or as boolean function arguments. In those cases I've used (& added if necessary) a named function to provide the equivalent (or sometimes negative, depending on convenient wording) test. DiagnosticBuilder kept its implicit conversion operator owing to the prevalent use of it in return statements. One bug was found in ExprConstant.cpp involving a comparison of two PointerUnions (PointerUnion did not previously have an operator==, so instead both operands were converted to bool & then compared). A test is included in test/SemaCXX/constant-expression-cxx1y.cpp for the fix (adding operator== to PointerUnion in LLVM). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181869 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
rontendAction.h
|
7eca8d2262a26eedb2ff3cc0fd11be2494b17cc1 |
10-May-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] When parsing with CXTranslationUnit_ForSerialization, make sure to install the ASTWriter that we create as an ASTMutationListener. Fixes rdar://13833268 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181575 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
cc2b653c319599f502425d2c3de29865d47bb9e4 |
04-May-2013 |
Douglas Gregor <dgregor@apple.com> |
Remove DiagnosticConsumer::clone(), a bad idea that is now unused. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181070 91177308-0d34-0410-b5e6-96231b3b80d8
hainedDiagnosticConsumer.h
ompilerInstance.h
ogDiagnosticPrinter.h
extDiagnosticBuffer.h
extDiagnosticPrinter.h
erifyDiagnosticConsumer.h
|
cbdbbd1ba105e65c5c1afa30c6c64f44adf56ad4 |
26-Apr-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[frontend] Make -chain-include work when used with modules. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180633 91177308-0d34-0410-b5e6-96231b3b80d8
hainedIncludesSource.h
ompilerInstance.h
|
b42f200777a66b98989160bf3987ce431540a584 |
17-Apr-2013 |
Andy Gibbs <andyg1001@hotmail.co.uk> |
Extended VerifyDiagnosticConsumer to also verify source file for diagnostic. VerifyDiagnosticConsumer previously would not check that the diagnostic and its matching directive referenced the same source file. Common practice was to create directives that referenced other files but only by line number, and this led to problems such as when the file containing the directive didn't have enough lines to match the location of the diagnostic in the other file, leading to bizarre file formatting and other oddities. This patch causes VerifyDiagnosticConsumer to match source files as well as line numbers. Therefore, a new syntax is made available for directives, for example: // expected-error@file:line {{diagnostic message}} This extends the @line feature where "file" is the file where the diagnostic is generated. The @line syntax is still available and uses the current file for the diagnostic. "file" can be specified either as a relative or absolute path - although the latter has less usefulness, I think! The #include search paths will be used to locate the file and if it is not found an error will be generated. The new check is not optional: if the directive is in a different file to the diagnostic, the file must be specified. Therefore, a number of test-cases have been updated with regard to this. This closes out PR15613. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179677 91177308-0d34-0410-b5e6-96231b3b80d8
erifyDiagnosticConsumer.h
|
f4910132078b4b8852fc46657f3150ed472f4654 |
16-Apr-2013 |
Daniel Dunbar <daniel@zuster.org> |
[Modules] Convert module specific -fno-modules-autolink into -fno-autolink. - There is no reason to have a modules specific flag for disabling autolinking. Instead, convert the existing flag into -fno-autolink (which should cover other autolinking code generation paths like #pragmas if and when we support them). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179612 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
|
493fe6d504a436c0639e641ef7c3c3982cf5feca |
08-Apr-2013 |
Bill Wendling <isanbard@gmail.com> |
The recent GCOV changes expect the initial version string to be in forward order. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179050 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
b37a73d5c6a0c8bb1f6e363d3b53980e4fa0cead |
04-Apr-2013 |
Manman Ren <mren@apple.com> |
Initial support for struct-path aware TBAA. Added TBAABaseType and TBAAOffset in LValue. These two fields are initialized to the actual type and 0, and are updated in EmitLValueForField. Path-aware TBAA tags are enabled for EmitLoadOfScalar and EmitStoreOfScalar. Added command line option -struct-path-tbaa. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178797 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
|
7cc0a110bcf3fe9c4d1269ea2ae7e72aa7f37531 |
04-Apr-2013 |
Manman Ren <mren@apple.com> |
revert r178784 since it does not have a commit message git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178796 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
|
ab4ffe242935ae0dd66fbe0dcc792c1ad38b00c1 |
04-Apr-2013 |
Manman Ren <mren@apple.com> |
Index: include/clang/Driver/CC1Options.td =================================================================== --- include/clang/Driver/CC1Options.td (revision 178718) +++ include/clang/Driver/CC1Options.td (working copy) @@ -161,6 +161,8 @@ HelpText<"Use register sized accesses to bit-fields, when possible.">; def relaxed_aliasing : Flag<["-"], "relaxed-aliasing">, HelpText<"Turn off Type Based Alias Analysis">; +def struct_path_tbaa : Flag<["-"], "struct-path-tbaa">, + HelpText<"Turn on struct-path aware Type Based Alias Analysis">; def masm_verbose : Flag<["-"], "masm-verbose">, HelpText<"Generate verbose assembly output">; def mcode_model : Separate<["-"], "mcode-model">, Index: include/clang/Driver/Options.td =================================================================== --- include/clang/Driver/Options.td (revision 178718) +++ include/clang/Driver/Options.td (working copy) @@ -587,6 +587,7 @@ Flags<[CC1Option]>, HelpText<"Disable spell-checking">; def fno_stack_protector : Flag<["-"], "fno-stack-protector">, Group<f_Group>; def fno_strict_aliasing : Flag<["-"], "fno-strict-aliasing">, Group<f_Group>; +def fstruct_path_tbaa : Flag<["-"], "fstruct-path-tbaa">, Group<f_Group>; def fno_strict_enums : Flag<["-"], "fno-strict-enums">, Group<f_Group>; def fno_strict_overflow : Flag<["-"], "fno-strict-overflow">, Group<f_Group>; def fno_threadsafe_statics : Flag<["-"], "fno-threadsafe-statics">, Group<f_Group>, Index: include/clang/Frontend/CodeGenOptions.def =================================================================== --- include/clang/Frontend/CodeGenOptions.def (revision 178718) +++ include/clang/Frontend/CodeGenOptions.def (working copy) @@ -85,6 +85,7 @@ VALUE_CODEGENOPT(OptimizeSize, 2, 0) ///< If -Os (==1) or -Oz (==2) is specified. CODEGENOPT(RelaxAll , 1, 0) ///< Relax all machine code instructions. CODEGENOPT(RelaxedAliasing , 1, 0) ///< Set when -fno-strict-aliasing is enabled. +CODEGENOPT(StructPathTBAA , 1, 0) ///< Whether or not to use struct-path TBAA. CODEGENOPT(SaveTempLabels , 1, 0) ///< Save temporary labels. CODEGENOPT(SanitizeAddressZeroBaseShadow , 1, 0) ///< Map shadow memory at zero ///< offset in AddressSanitizer. Index: lib/CodeGen/CGExpr.cpp =================================================================== --- lib/CodeGen/CGExpr.cpp (revision 178718) +++ lib/CodeGen/CGExpr.cpp (working copy) @@ -1044,7 +1044,8 @@ llvm::Value *CodeGenFunction::EmitLoadOfScalar(LValue lvalue) { return EmitLoadOfScalar(lvalue.getAddress(), lvalue.isVolatile(), lvalue.getAlignment().getQuantity(), - lvalue.getType(), lvalue.getTBAAInfo()); + lvalue.getType(), lvalue.getTBAAInfo(), + lvalue.getTBAABaseType(), lvalue.getTBAAOffset()); } static bool hasBooleanRepresentation(QualType Ty) { @@ -1106,7 +1107,9 @@ llvm::Value *CodeGenFunction::EmitLoadOfScalar(llvm::Value *Addr, bool Volatile, unsigned Alignment, QualType Ty, - llvm::MDNode *TBAAInfo) { + llvm::MDNode *TBAAInfo, + QualType TBAABaseType, + uint64_t TBAAOffset) { // For better performance, handle vector loads differently. if (Ty->isVectorType()) { llvm::Value *V; @@ -1158,8 +1161,11 @@ Load->setVolatile(true); if (Alignment) Load->setAlignment(Alignment); - if (TBAAInfo) - CGM.DecorateInstruction(Load, TBAAInfo); + if (TBAAInfo) { + llvm::MDNode *TBAAPath = CGM.getTBAAStructTagInfo(TBAABaseType, TBAAInfo, + TBAAOffset); + CGM.DecorateInstruction(Load, TBAAPath); + } if ((SanOpts->Bool && hasBooleanRepresentation(Ty)) || (SanOpts->Enum && Ty->getAs<EnumType>())) { @@ -1217,7 +1223,8 @@ bool Volatile, unsigned Alignment, QualType Ty, llvm::MDNode *TBAAInfo, - bool isInit) { + bool isInit, QualType TBAABaseType, + uint64_t TBAAOffset) { // Handle vectors differently to get better performance. if (Ty->isVectorType()) { @@ -1268,15 +1275,19 @@ llvm::StoreInst *Store = Builder.CreateStore(Value, Addr, Volatile); if (Alignment) Store->setAlignment(Alignment); - if (TBAAInfo) - CGM.DecorateInstruction(Store, TBAAInfo); + if (TBAAInfo) { + llvm::MDNode *TBAAPath = CGM.getTBAAStructTagInfo(TBAABaseType, TBAAInfo, + TBAAOffset); + CGM.DecorateInstruction(Store, TBAAPath); + } } void CodeGenFunction::EmitStoreOfScalar(llvm::Value *value, LValue lvalue, bool isInit) { EmitStoreOfScalar(value, lvalue.getAddress(), lvalue.isVolatile(), lvalue.getAlignment().getQuantity(), lvalue.getType(), - lvalue.getTBAAInfo(), isInit); + lvalue.getTBAAInfo(), isInit, lvalue.getTBAABaseType(), + lvalue.getTBAAOffset()); } /// EmitLoadOfLValue - Given an expression that represents a value lvalue, this @@ -2494,9 +2505,12 @@ llvm::Value *addr = base.getAddress(); unsigned cvr = base.getVRQualifiers(); + bool TBAAPath = CGM.getCodeGenOpts().StructPathTBAA; if (rec->isUnion()) { // For unions, there is no pointer adjustment. assert(!type->isReferenceType() && "union has reference member"); + // TODO: handle path-aware TBAA for union. + TBAAPath = false; } else { // For structs, we GEP to the field that the record layout suggests. unsigned idx = CGM.getTypes().getCGRecordLayout(rec).getLLVMFieldNo(field); @@ -2508,6 +2522,8 @@ if (cvr & Qualifiers::Volatile) load->setVolatile(true); load->setAlignment(alignment.getQuantity()); + // Loading the reference will disable path-aware TBAA. + TBAAPath = false; if (CGM.shouldUseTBAA()) { llvm::MDNode *tbaa; if (mayAlias) @@ -2541,6 +2557,16 @@ LValue LV = MakeAddrLValue(addr, type, alignment); LV.getQuals().addCVRQualifiers(cvr); + if (TBAAPath) { + const ASTRecordLayout &Layout = + getContext().getASTRecordLayout(field->getParent()); + // Set the base type to be the base type of the base LValue and + // update offset to be relative to the base type. + LV.setTBAABaseType(base.getTBAABaseType()); + LV.setTBAAOffset(base.getTBAAOffset() + + Layout.getFieldOffset(field->getFieldIndex()) / + getContext().getCharWidth()); + } // __weak attribute on a field is ignored. if (LV.getQuals().getObjCGCAttr() == Qualifiers::Weak) Index: lib/CodeGen/CGValue.h =================================================================== --- lib/CodeGen/CGValue.h (revision 178718) +++ lib/CodeGen/CGValue.h (working copy) @@ -157,6 +157,11 @@ Expr *BaseIvarExp; + /// Used by struct-path-aware TBAA. + QualType TBAABaseType; + /// Offset relative to the base type. + uint64_t TBAAOffset; + /// TBAAInfo - TBAA information to attach to dereferences of this LValue. llvm::MDNode *TBAAInfo; @@ -175,6 +180,10 @@ this->ImpreciseLifetime = false; this->ThreadLocalRef = false; this->BaseIvarExp = 0; + + // Initialize fields for TBAA. + this->TBAABaseType = Type; + this->TBAAOffset = 0; this->TBAAInfo = TBAAInfo; } @@ -232,6 +241,12 @@ Expr *getBaseIvarExp() const { return BaseIvarExp; } void setBaseIvarExp(Expr *V) { BaseIvarExp = V; } + QualType getTBAABaseType() const { return TBAABaseType; } + void setTBAABaseType(QualType T) { TBAABaseType = T; } + + uint64_t getTBAAOffset() const { return TBAAOffset; } + void setTBAAOffset(uint64_t O) { TBAAOffset = O; } + llvm::MDNode *getTBAAInfo() const { return TBAAInfo; } void setTBAAInfo(llvm::MDNode *N) { TBAAInfo = N; } Index: lib/CodeGen/CodeGenFunction.h =================================================================== --- lib/CodeGen/CodeGenFunction.h (revision 178718) +++ lib/CodeGen/CodeGenFunction.h (working copy) @@ -2211,7 +2211,9 @@ /// the LLVM value representation. llvm::Value *EmitLoadOfScalar(llvm::Value *Addr, bool Volatile, unsigned Alignment, QualType Ty, - llvm::MDNode *TBAAInfo = 0); + llvm::MDNode *TBAAInfo = 0, + QualType TBAABaseTy = QualType(), + uint64_t TBAAOffset = 0); /// EmitLoadOfScalar - Load a scalar value from an address, taking /// care to appropriately convert from the memory representation to @@ -2224,7 +2226,9 @@ /// the LLVM value representation. void EmitStoreOfScalar(llvm::Value *Value, llvm::Value *Addr, bool Volatile, unsigned Alignment, QualType Ty, - llvm::MDNode *TBAAInfo = 0, bool isInit=false); + llvm::MDNode *TBAAInfo = 0, bool isInit = false, + QualType TBAABaseTy = QualType(), + uint64_t TBAAOffset = 0); /// EmitStoreOfScalar - Store a scalar value to an address, taking /// care to appropriately convert from the memory representation to Index: lib/CodeGen/CodeGenModule.cpp =================================================================== --- lib/CodeGen/CodeGenModule.cpp (revision 178718) +++ lib/CodeGen/CodeGenModule.cpp (working copy) @@ -227,6 +227,20 @@ return TBAA->getTBAAStructInfo(QTy); } +llvm::MDNode *CodeGenModule::getTBAAStructTypeInfo(QualType QTy) { + if (!TBAA) + return 0; + return TBAA->getTBAAStructTypeInfo(QTy); +} + +llvm::MDNode *CodeGenModule::getTBAAStructTagInfo(QualType BaseTy, + llvm::MDNode *AccessN, + uint64_t O) { + if (!TBAA) + return 0; + return TBAA->getTBAAStructTagInfo(BaseTy, AccessN, O); +} + void CodeGenModule::DecorateInstruction(llvm::Instruction *Inst, llvm::MDNode *TBAAInfo) { Inst->setMetadata(llvm::LLVMContext::MD_tbaa, TBAAInfo); Index: lib/CodeGen/CodeGenModule.h =================================================================== --- lib/CodeGen/CodeGenModule.h (revision 178718) +++ lib/CodeGen/CodeGenModule.h (working copy) @@ -501,6 +501,11 @@ llvm::MDNode *getTBAAInfo(QualType QTy); llvm::MDNode *getTBAAInfoForVTablePtr(); llvm::MDNode *getTBAAStructInfo(QualType QTy); + /// Return the MDNode in the type DAG for the given struct type. + llvm::MDNode *getTBAAStructTypeInfo(QualType QTy); + /// Return the path-aware tag for given base type, access node and offset. + llvm::MDNode *getTBAAStructTagInfo(QualType BaseTy, llvm::MDNode *AccessN, + uint64_t O); bool isTypeConstant(QualType QTy, bool ExcludeCtorDtor); Index: lib/CodeGen/CodeGenTBAA.cpp =================================================================== --- lib/CodeGen/CodeGenTBAA.cpp (revision 178718) +++ lib/CodeGen/CodeGenTBAA.cpp (working copy) @@ -21,6 +21,7 @@ #include "clang/AST/Mangle.h" #include "clang/AST/RecordLayout.h" #include "clang/Frontend/CodeGenOptions.h" +#include "llvm/ADT/SmallSet.h" #include "llvm/IR/Constants.h" #include "llvm/IR/LLVMContext.h" #include "llvm/IR/Metadata.h" @@ -225,3 +226,87 @@ // For now, handle any other kind of type conservatively. return StructMetadataCache[Ty] = NULL; } + +/// Check if the given type can be handled by path-aware TBAA. +static bool isTBAAPathStruct(QualType QTy) { + if (const RecordType *TTy = QTy->getAs<RecordType>()) { + const RecordDecl *RD = TTy->getDecl()->getDefinition(); + // RD can be struct, union, class, interface or enum. + // For now, we only handle struct. + if (RD->isStruct() && !RD->hasFlexibleArrayMember()) + return true; + } + return false; +} + +llvm::MDNode * +CodeGenTBAA::getTBAAStructTypeInfo(QualType QTy) { + const Type *Ty = Context.getCanonicalType(QTy).getTypePtr(); + assert(isTBAAPathStruct(QTy)); + + if (llvm::MDNode *N = StructTypeMetadataCache[Ty]) + return N; + + if (const RecordType *TTy = QTy->getAs<RecordType>()) { + const RecordDecl *RD = TTy->getDecl()->getDefinition(); + + const ASTRecordLayout &Layout = Context.getASTRecordLayout(RD); + SmallVector <std::pair<uint64_t, llvm::MDNode*>, 4> Fields; + // To reduce the size of MDNode for a given struct type, we only output + // once for all the fields with the same scalar types. + // Offsets for scalar fields in the type DAG are not used. + llvm::SmallSet <llvm::MDNode*, 4> ScalarFieldTypes; + unsigned idx = 0; + for (RecordDecl::field_iterator i = RD->field_begin(), + e = RD->field_end(); i != e; ++i, ++idx) { + QualType FieldQTy = i->getType(); + llvm::MDNode *FieldNode; + if (isTBAAPathStruct(FieldQTy)) + FieldNode = getTBAAStructTypeInfo(FieldQTy); + else { + FieldNode = getTBAAInfo(FieldQTy); + // Ignore this field if the type already exists. + if (ScalarFieldTypes.count(FieldNode)) + continue; + ScalarFieldTypes.insert(FieldNode); + } + if (!FieldNode) + return StructTypeMetadataCache[Ty] = NULL; + Fields.push_back(std::make_pair( + Layout.getFieldOffset(idx) / Context.getCharWidth(), FieldNode)); + } + + // TODO: This is using the RTTI name. Is there a better way to get + // a unique string for a type? + SmallString<256> OutName; + llvm::raw_svector_ostream Out(OutName); + MContext.mangleCXXRTTIName(QualType(Ty, 0), Out); + Out.flush(); + // Create the struct type node with a vector of pairs (offset, type). + return StructTypeMetadataCache[Ty] = + MDHelper.createTBAAStructTypeNode(OutName, Fields); + } + + return StructMetadataCache[Ty] = NULL; +} + +llvm::MDNode * +CodeGenTBAA::getTBAAStructTagInfo(QualType BaseQTy, llvm::MDNode *AccessNode, + uint64_t Offset) { + if (!CodeGenOpts.StructPathTBAA) + return AccessNode; + + const Type *BTy = Context.getCanonicalType(BaseQTy).getTypePtr(); + TBAAPathTag PathTag = TBAAPathTag(BTy, AccessNode, Offset); + if (llvm::MDNode *N = StructTagMetadataCache[PathTag]) + return N; + + llvm::MDNode *BNode = 0; + if (isTBAAPathStruct(BaseQTy)) + BNode = getTBAAStructTypeInfo(BaseQTy); + if (!BNode) + return StructTagMetadataCache[PathTag] = AccessNode; + + return StructTagMetadataCache[PathTag] = + MDHelper.createTBAAStructTagNode(BNode, AccessNode, Offset); +} Index: lib/CodeGen/CodeGenTBAA.h =================================================================== --- lib/CodeGen/CodeGenTBAA.h (revision 178718) +++ lib/CodeGen/CodeGenTBAA.h (working copy) @@ -35,6 +35,14 @@ namespace CodeGen { class CGRecordLayout; + struct TBAAPathTag { + TBAAPathTag(const Type *B, const llvm::MDNode *A, uint64_t O) + : BaseT(B), AccessN(A), Offset(O) {} + const Type *BaseT; + const llvm::MDNode *AccessN; + uint64_t Offset; + }; + /// CodeGenTBAA - This class organizes the cross-module state that is used /// while lowering AST types to LLVM types. class CodeGenTBAA { @@ -46,8 +54,13 @@ // MDHelper - Helper for creating metadata. llvm::MDBuilder MDHelper; - /// MetadataCache - This maps clang::Types to llvm::MDNodes describing them. + /// MetadataCache - This maps clang::Types to scalar llvm::MDNodes describing + /// them. llvm::DenseMap<const Type *, llvm::MDNode *> MetadataCache; + /// This maps clang::Types to a struct node in the type DAG. + llvm::DenseMap<const Type *, llvm::MDNode *> StructTypeMetadataCache; + /// This maps TBAAPathTags to a tag node. + llvm::DenseMap<TBAAPathTag, llvm::MDNode *> StructTagMetadataCache; /// StructMetadataCache - This maps clang::Types to llvm::MDNodes describing /// them for struct assignments. @@ -89,9 +102,49 @@ /// getTBAAStructInfo - Get the TBAAStruct MDNode to be used for a memcpy of /// the given type. llvm::MDNode *getTBAAStructInfo(QualType QTy); + + /// Get the MDNode in the type DAG for given struct type QType. + llvm::MDNode *getTBAAStructTypeInfo(QualType QType); + /// Get the tag MDNode for a given base type, the actual sclar access MDNode + /// and offset into the base type. + llvm::MDNode *getTBAAStructTagInfo(QualType BaseQType, + llvm::MDNode *AccessNode, uint64_t Offset); }; } // end namespace CodeGen } // end namespace clang +namespace llvm { + +template<> struct DenseMapInfo<clang::CodeGen::TBAAPathTag> { + static clang::CodeGen::TBAAPathTag getEmptyKey() { + return clang::CodeGen::TBAAPathTag( + DenseMapInfo<const clang::Type *>::getEmptyKey(), + DenseMapInfo<const MDNode *>::getEmptyKey(), + DenseMapInfo<uint64_t>::getEmptyKey()); + } + + static clang::CodeGen::TBAAPathTag getTombstoneKey() { + return clang::CodeGen::TBAAPathTag( + DenseMapInfo<const clang::Type *>::getTombstoneKey(), + DenseMapInfo<const MDNode *>::getTombstoneKey(), + DenseMapInfo<uint64_t>::getTombstoneKey()); + } + + static unsigned getHashValue(const clang::CodeGen::TBAAPathTag &Val) { + return DenseMapInfo<const clang::Type *>::getHashValue(Val.BaseT) ^ + DenseMapInfo<const MDNode *>::getHashValue(Val.AccessN) ^ + DenseMapInfo<uint64_t>::getHashValue(Val.Offset); + } + + static bool isEqual(const clang::CodeGen::TBAAPathTag &LHS, + const clang::CodeGen::TBAAPathTag &RHS) { + return LHS.BaseT == RHS.BaseT && + LHS.AccessN == RHS.AccessN && + LHS.Offset == RHS.Offset; + } +}; + +} // end namespace llvm + #endif Index: lib/Driver/Tools.cpp =================================================================== --- lib/Driver/Tools.cpp (revision 178718) +++ lib/Driver/Tools.cpp (working copy) @@ -2105,6 +2105,8 @@ options::OPT_fno_strict_aliasing, getToolChain().IsStrictAliasingDefault())) CmdArgs.push_back("-relaxed-aliasing"); + if (Args.hasArg(options::OPT_fstruct_path_tbaa)) + CmdArgs.push_back("-struct-path-tbaa"); if (Args.hasFlag(options::OPT_fstrict_enums, options::OPT_fno_strict_enums, false)) CmdArgs.push_back("-fstrict-enums"); Index: lib/Frontend/CompilerInvocation.cpp =================================================================== --- lib/Frontend/CompilerInvocation.cpp (revision 178718) +++ lib/Frontend/CompilerInvocation.cpp (working copy) @@ -324,6 +324,7 @@ Opts.UseRegisterSizedBitfieldAccess = Args.hasArg( OPT_fuse_register_sized_bitfield_access); Opts.RelaxedAliasing = Args.hasArg(OPT_relaxed_aliasing); + Opts.StructPathTBAA = Args.hasArg(OPT_struct_path_tbaa); Opts.DwarfDebugFlags = Args.getLastArgValue(OPT_dwarf_debug_flags); Opts.MergeAllConstants = !Args.hasArg(OPT_fno_merge_all_constants); Opts.NoCommon = Args.hasArg(OPT_fno_common); Index: test/CodeGen/tbaa.cpp =================================================================== --- test/CodeGen/tbaa.cpp (revision 0) +++ test/CodeGen/tbaa.cpp (working copy) @@ -0,0 +1,217 @@ +// RUN: %clang_cc1 -O1 -disable-llvm-optzns %s -emit-llvm -o - | FileCheck %s +// RUN: %clang_cc1 -O1 -struct-path-tbaa -disable-llvm-optzns %s -emit-llvm -o - | FileCheck %s -check-prefix=PATH +// Test TBAA metadata generated by front-end. + +#include <stdint.h> +typedef struct +{ + uint16_t f16; + uint32_t f32; + uint16_t f16_2; + uint32_t f32_2; +} StructA; +typedef struct +{ + uint16_t f16; + StructA a; + uint32_t f32; +} StructB; +typedef struct +{ + uint16_t f16; + StructB b; + uint32_t f32; +} StructC; +typedef struct +{ + uint16_t f16; + StructB b; + uint32_t f32; + uint8_t f8; +} StructD; + +typedef struct +{ + uint16_t f16; + uint32_t f32; +} StructS; +typedef struct +{ + uint16_t f16; + uint32_t f32; +} StructS2; + +uint32_t g(uint32_t *s, StructA *A, uint64_t count) { +// CHECK: define i32 @{{.*}}( +// CHECK: store i32 1, i32* %{{.*}}, align 4, !tbaa !4 +// CHECK: store i32 4, i32* %{{.*}}, align 4, !tbaa !4 +// PATH: define i32 @{{.*}}( +// PATH: store i32 1, i32* %{{.*}}, align 4, !tbaa !4 +// PATH: store i32 4, i32* %{{.*}}, align 4, !tbaa !5 + *s = 1; + A->f32 = 4; + return *s; +} + +uint32_t g2(uint32_t *s, StructA *A, uint64_t count) { +// CHECK: define i32 @{{.*}}( +// CHECK: store i32 1, i32* %{{.*}}, align 4, !tbaa !4 +// CHECK: store i16 4, i16* %{{.*}}, align 2, !tbaa !5 +// PATH: define i32 @{{.*}}( +// PATH: store i32 1, i32* %{{.*}}, align 4, !tbaa !4 +// PATH: store i16 4, i16* %{{.*}}, align 2, !tbaa !8 + *s = 1; + A->f16 = 4; + return *s; +} + +uint32_t g3(StructA *A, StructB *B, uint64_t count) { +// CHECK: define i32 @{{.*}}( +// CHECK: store i32 1, i32* %{{.*}}, align 4, !tbaa !4 +// CHECK: store i32 4, i32* %{{.*}}, align 4, !tbaa !4 +// PATH: define i32 @{{.*}}( +// PATH: store i32 1, i32* %{{.*}}, align 4, !tbaa !5 +// PATH: store i32 4, i32* %{{.*}}, align 4, !tbaa !9 + A->f32 = 1; + B->a.f32 = 4; + return A->f32; +} + +uint32_t g4(StructA *A, StructB *B, uint64_t count) { +// CHECK: define i32 @{{.*}}( +// CHECK: store i32 1, i32* %{{.*}}, align 4, !tbaa !4 +// CHECK: store i16 4, i16* %{{.*}}, align 2, !tbaa !5 +// PATH: define i32 @{{.*}}( +// PATH: store i32 1, i32* %{{.*}}, align 4, !tbaa !5 +// PATH: store i16 4, i16* %{{.*}}, align 2, !tbaa !11 + A->f32 = 1; + B->a.f16 = 4; + return A->f32; +} + +uint32_t g5(StructA *A, StructB *B, uint64_t count) { +// CHECK: define i32 @{{.*}}( +// CHECK: store i32 1, i32* %{{.*}}, align 4, !tbaa !4 +// CHECK: store i32 4, i32* %{{.*}}, align 4, !tbaa !4 +// PATH: define i32 @{{.*}}( +// PATH: store i32 1, i32* %{{.*}}, align 4, !tbaa !5 +// PATH: store i32 4, i32* %{{.*}}, align 4, !tbaa !12 + A->f32 = 1; + B->f32 = 4; + return A->f32; +} + +uint32_t g6(StructA *A, StructB *B, uint64_t count) { +// CHECK: define i32 @{{.*}}( +// CHECK: store i32 1, i32* %{{.*}}, align 4, !tbaa !4 +// CHECK: store i32 4, i32* %{{.*}}, align 4, !tbaa !4 +// PATH: define i32 @{{.*}}( +// PATH: store i32 1, i32* %{{.*}}, align 4, !tbaa !5 +// PATH: store i32 4, i32* %{{.*}}, align 4, !tbaa !13 + A->f32 = 1; + B->a.f32_2 = 4; + return A->f32; +} + +uint32_t g7(StructA *A, StructS *S, uint64_t count) { +// CHECK: define i32 @{{.*}}( +// CHECK: store i32 1, i32* %{{.*}}, align 4, !tbaa !4 +// CHECK: store i32 4, i32* %{{.*}}, align 4, !tbaa !4 +// PATH: define i32 @{{.*}}( +// PATH: store i32 1, i32* %{{.*}}, align 4, !tbaa !5 +// PATH: store i32 4, i32* %{{.*}}, align 4, !tbaa !14 + A->f32 = 1; + S->f32 = 4; + return A->f32; +} + +uint32_t g8(StructA *A, StructS *S, uint64_t count) { +// CHECK: define i32 @{{.*}}( +// CHECK: store i32 1, i32* %{{.*}}, align 4, !tbaa !4 +// CHECK: store i16 4, i16* %{{.*}}, align 2, !tbaa !5 +// PATH: define i32 @{{.*}}( +// PATH: store i32 1, i32* %{{.*}}, align 4, !tbaa !5 +// PATH: store i16 4, i16* %{{.*}}, align 2, !tbaa !16 + A->f32 = 1; + S->f16 = 4; + return A->f32; +} + +uint32_t g9(StructS *S, StructS2 *S2, uint64_t count) { +// CHECK: define i32 @{{.*}}( +// CHECK: store i32 1, i32* %{{.*}}, align 4, !tbaa !4 +// CHECK: store i32 4, i32* %{{.*}}, align 4, !tbaa !4 +// PATH: define i32 @{{.*}}( +// PATH: store i32 1, i32* %{{.*}}, align 4, !tbaa !14 +// PATH: store i32 4, i32* %{{.*}}, align 4, !tbaa !17 + S->f32 = 1; + S2->f32 = 4; + return S->f32; +} + +uint32_t g10(StructS *S, StructS2 *S2, uint64_t count) { +// CHECK: define i32 @{{.*}}( +// CHECK: store i32 1, i32* %{{.*}}, align 4, !tbaa !4 +// CHECK: store i16 4, i16* %{{.*}}, align 2, !tbaa !5 +// PATH: define i32 @{{.*}}( +// PATH: store i32 1, i32* %{{.*}}, align 4, !tbaa !14 +// PATH: store i16 4, i16* %{{.*}}, align 2, !tbaa !19 + S->f32 = 1; + S2->f16 = 4; + return S->f32; +} + +uint32_t g11(StructC *C, StructD *D, uint64_t count) { +// CHECK: define i32 @{{.*}}( +// CHECK: store i32 1, i32* %{{.*}}, align 4, !tbaa !4 +// CHECK: store i32 4, i32* %{{.*}}, align 4, !tbaa !4 +// PATH: define i32 @{{.*}}( +// PATH: store i32 1, i32* %{{.*}}, align 4, !tbaa !20 +// PATH: store i32 4, i32* %{{.*}}, align 4, !tbaa !22 + C->b.a.f32 = 1; + D->b.a.f32 = 4; + return C->b.a.f32; +} + +uint32_t g12(StructC *C, StructD *D, uint64_t count) { +// CHECK: define i32 @{{.*}}( +// CHECK: store i32 1, i32* %{{.*}}, align 4, !tbaa !4 +// CHECK: store i32 4, i32* %{{.*}}, align 4, !tbaa !4 +// TODO: differentiate the two accesses. +// PATH: define i32 @{{.*}}( +// PATH: store i32 1, i32* %{{.*}}, align 4, !tbaa !9 +// PATH: store i32 4, i32* %{{.*}}, align 4, !tbaa !9 + StructB *b1 = &(C->b); + StructB *b2 = &(D->b); + // b1, b2 have different context. + b1->a.f32 = 1; + b2->a.f32 = 4; + return b1->a.f32; +} + +// CHECK: !1 = metadata !{metadata !"omnipotent char", metadata !2} +// CHECK: !2 = metadata !{metadata !"Simple C/C++ TBAA"} +// CHECK: !4 = metadata !{metadata !"int", metadata !1} +// CHECK: !5 = metadata !{metadata !"short", metadata !1} + +// PATH: !1 = metadata !{metadata !"omnipotent char", metadata !2} +// PATH: !4 = metadata !{metadata !"int", metadata !1} +// PATH: !5 = metadata !{metadata !6, metadata !4, i64 4} +// PATH: !6 = metadata !{metadata !"_ZTS7StructA", i64 0, metadata !7, i64 4, metadata !4} +// PATH: !7 = metadata !{metadata !"short", metadata !1} +// PATH: !8 = metadata !{metadata !6, metadata !7, i64 0} +// PATH: !9 = metadata !{metadata !10, metadata !4, i64 8} +// PATH: !10 = metadata !{metadata !"_ZTS7StructB", i64 0, metadata !7, i64 4, metadata !6, i64 20, metadata !4} +// PATH: !11 = metadata !{metadata !10, metadata !7, i64 4} +// PATH: !12 = metadata !{metadata !10, metadata !4, i64 20} +// PATH: !13 = metadata !{metadata !10, metadata !4, i64 16} +// PATH: !14 = metadata !{metadata !15, metadata !4, i64 4} +// PATH: !15 = metadata !{metadata !"_ZTS7StructS", i64 0, metadata !7, i64 4, metadata !4} +// PATH: !16 = metadata !{metadata !15, metadata !7, i64 0} +// PATH: !17 = metadata !{metadata !18, metadata !4, i64 4} +// PATH: !18 = metadata !{metadata !"_ZTS8StructS2", i64 0, metadata !7, i64 4, metadata !4} +// PATH: !19 = metadata !{metadata !18, metadata !7, i64 0} +// PATH: !20 = metadata !{metadata !21, metadata !4, i64 12} +// PATH: !21 = metadata !{metadata !"_ZTS7StructC", i64 0, metadata !7, i64 4, metadata !10, i64 28, metadata !4} +// PATH: !22 = metadata !{metadata !23, metadata !4, i64 12} +// PATH: !23 = metadata !{metadata !"_ZTS7StructD", i64 0, metadata !7, i64 4, metadata !10, i64 28, metadata !4, i64 32, metadata !1} git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178784 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
|
3105627bd76d6a0cc5ee305c99f4c96519bac9ac |
04-Apr-2013 |
Eric Christopher <echristo@gmail.com> |
Plumb through the -fsplit-stack option using the existing backend support. Caveat: Other than the existing segmented stacks support, no claims are made of this working. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178744 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
|
c544ba09695e300f31355af342258bd57619e737 |
27-Mar-2013 |
Douglas Gregor <dgregor@apple.com> |
<rdar://problem/13509689> Introduce -module-file-info option that provides information about a particular module file. This option can be useful for end users who want to know why they ended up with a ton of different variants of the "std" module in their module cache. This problem should go away over time, as we reduce the need for module variants, but it will never go away entirely. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@178148 91177308-0d34-0410-b5e6-96231b3b80d8
rontendActions.h
rontendOptions.h
|
906d66acc5cf2679453e10a4f0a67feedd765b21 |
20-Mar-2013 |
Douglas Gregor <dgregor@apple.com> |
<rdar://problem/12368093> Extend module maps with a 'conflict' declaration, and warn when a newly-imported module conflicts with an already-imported module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177577 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
|
83c546afef39d6b7be69f3f399804ebf037c4022 |
20-Mar-2013 |
Nick Lewycky <nicholas@mxc.ca> |
The flag "-coverage-function-names-in-data" is actually backwards -- we do emit function names in .gcda files by default, and the flag turns that off! Rename the flag to make it match what it actually does. This keeps the default format compatible with gcc 4.2. Also add a test for this flag. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177475 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
|
f2b5e0707229e1149828ebc8d01d9308a997d6df |
20-Mar-2013 |
Nick Lewycky <nicholas@mxc.ca> |
Make clang emit linkage names in debug info for subprograms when coverage info is enabled. Also add a new -test-coverage cc1 flag which makes testing coverage possible and add our first clang-side coverage test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@177470 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
|
0f815f1f91e5cf0726fd8296445038fec3bed80b |
07-Mar-2013 |
Nick Lewycky <nicholas@mxc.ca> |
Add flags for additional control over coverage generation. Pick the version string to be emitted, and two properties about the files themselves. Use $PWD to absolut-ify the path to the coverage file. Yes, this is what GCC does. Reverts my own r175706. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176617 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
odeGenOptions.h
|
44f65a587ee39c20e715c9df411c864d328c71b5 |
05-Mar-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] When logging a CXTranslationUnit that came from an AST file, print out the filename. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@176511 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
ff971d7973aaa00c286b788d30f6919c7b1f4de2 |
23-Feb-2013 |
Eric Christopher <echristo@gmail.com> |
Propagate the split dwarf file information through into the backend and through to the debug info in the module. In order to make the testcase a bit more efficient allow the filename to go through compilation for compile and not assemble jobs and turn off the extract for cases where we don't create an object. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175935 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
c34464ee3367de42c477561c0ae069675be8393c |
16-Feb-2013 |
James Dennett <jdennett@google.com> |
Documentation cleanup: make a \brief be brief, and fix a bad use of \see. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@175340 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticRenderer.h
|
3646c68676c3c46a026b23d52188ef6e0d856178 |
07-Feb-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Simplify FindExternalVisibleDeclsByName by making it return a bool indicating if it found any decls, rather than returning a list of found decls. This removes a returning-ArrayRef-to-deleted-storage bug from MultiplexExternalSemaSource (in code not exercised by any of the clang binaries), reduces the work required in the found-no-decls case with PCH, and importantly removes the need for DeclContext::lookup to be reentrant. No functionality change intended! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174576 91177308-0d34-0410-b5e6-96231b3b80d8
hainedIncludesSource.h
|
5ebcb20b0331a6e64c213f0bb5f4bed9a9e8eb34 |
01-Feb-2013 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
For ModuleLoader::makeModuleVisible() also pass the source location where the module import occurred. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@174191 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
|
19e448df800048314d2f54487c48a3b33231e291 |
30-Jan-2013 |
James Dennett <jdennett@google.com> |
Documentation: fix link to ExecuteAction(), which was previously typoed as "ExecutionAction()". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173948 91177308-0d34-0410-b5e6-96231b3b80d8
rontendAction.h
|
74c2498bb9e339345ee32bdd095e76157cec3b86 |
30-Jan-2013 |
Jordan Rose <jordan_rose@apple.com> |
Don't warn about Unicode characters in -E mode. People use the C preprocessor for things other than C files. Some of them have Unicode characters. We shouldn't warn about Unicode characters appearing outside of identifiers in this case. There's not currently a way for the preprocessor to tell if it's in -E mode, so I added a new flag, derived from the PreprocessorOutputOptions. This is only used by the Unicode warnings for now, but could conceivably be used by other warnings or even behavioral differences later. <rdar://problem/13107323> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173881 91177308-0d34-0410-b5e6-96231b3b80d8
reprocessorOutputOptions.h
|
78d85b1c5830a881c0a20a1b3fea99ee73149590 |
30-Jan-2013 |
Chad Rosier <mcrosier@apple.com> |
[ubsan] Implement the -fcatch-undefined-behavior flag using a trapping implementation; this is much more inline with the original implementation (i.e., pre-ubsan) and does not require run-time library support. The trapping implementation can be invoked using either '-fcatch-undefined-behavior' or '-fsanitize=undefined-trap -fsanitize-undefined-trap-on-error', with the latter being preferred. Eventually, the -fcatch-undefined-behavior' flag will be removed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173848 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
|
20c6f2eae500242d3aef5daaa55d440a0786a1fd |
28-Jan-2013 |
Douglas Gregor <dgregor@apple.com> |
Enable the global module index by default. Introduce the -fno-modules-global-index -cc1 option to allow one to disable the index for performance testing purposes, but with a 10% win in -fsyntax-only time, there is no reason a user would do this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173707 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
f575d6e7c3b887ea4c5394d2c7e322c7a929a57e |
25-Jan-2013 |
Douglas Gregor <dgregor@apple.com> |
Rename the -cc1 option "-generate-module-index" to "-fmodules-global-index" and expand its behavior to include both the use and generation of the global module index. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173404 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
rontendOptions.h
|
a6b00fc97669aa25d89ae9f202b05dfadfd0e324 |
23-Jan-2013 |
Douglas Gregor <dgregor@apple.com> |
Implement the writer side of the global module index. The global module index is a "global" index for all of the module files within a particular subdirectory in the module cache, which keeps track of all of the "interesting" identifiers and selectors known in each of the module files. One can perform a fast lookup in the index to determine which module files will have more information about entities with a particular name/selector. This information can help eliminate redundant lookups into module files (a serious performance problem) and help with creating auto-import/auto-include Fix-Its. The global module index is created or updated at the end of a translation unit that has triggered a (re)build of a module by scraping all of the .pcm files out of the module cache subdirectory, so it catches everything. As with module rebuilds, we use the file system's atomicity to synchronize. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173301 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
rontendOptions.h
|
18f43a62134eca1cd830a5b289f4bee4e6ee42fe |
23-Jan-2013 |
James Dennett <jdennett@google.com> |
Documentation cleanup: fixing documentation for FrontendAction. * Fix a typo, s/BeginSourceAction/BeginSourceFile/, so that the documentation for FrontendAction::BeginSourceFileAction links correctly to BeginSourceFile; * Add some basic \file documentation for FrontendAction.h; * More use of "\brief" instead of repeating the name of the entity being documented; * Stop using Doxygen-style "///" comments in FrontendAction.cpp, as they were polluting the documentation for BeginSourceFile; * Drop incorrect "\see" markup that broke Doxygen's formatting; * Other minor documentation fixes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@173213 91177308-0d34-0410-b5e6-96231b3b80d8
rontendAction.h
|
4bdc60434c79126b75aee2bb391275f3bb746364 |
20-Jan-2013 |
Alexey Samsonov <samsonov@google.com> |
Add top-level Clang flag -f(no-)sanitize-address-zero-base-shadow that makes AddressSanitizer use bottom of the address space for the shadow memory. On Linux it can be used with -fPIE/-pie to improve performance. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172974 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
|
d47afb96a3f988e6d21a92fe4dfe875ab227c7c0 |
20-Jan-2013 |
Sean Silva <silvas@purdue.edu> |
Nuke SetUpBuildDumpLog. Also, it was the only reason that `argc` and `argv` were being passed into createDiagnostics, so remove those parameters and clean up callers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172945 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
f43b7214e812ddca74a6213608c69c960e067956 |
16-Jan-2013 |
Douglas Gregor <dgregor@apple.com> |
Add -fmodules-autolink/-fno-modules-autolink (defaults to on) so that users can explicitly enable/disable modules autolinking. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172592 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
|
08e79d2f075d1326ff7a849fd1bc88dadf99d574 |
15-Jan-2013 |
Chad Rosier <mcrosier@apple.com> |
[driver] Warnings for warning options are handled by the frontend. The driver needs to process the warning options to setup diagnostic state, but should not be emitting warnings as these would be rudndant with what the frontend emits. rdar://13001556 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172497 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
cfa88f893915ceb8ae4ce2f17c46c24a4d67502f |
12-Jan-2013 |
Dmitri Gribenko <gribozavr@gmail.com> |
Remove useless 'llvm::' qualifier from names like StringRef and others that are brought into 'clang' namespace by clang/Basic/LLVM.h git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172323 91177308-0d34-0410-b5e6-96231b3b80d8
ayoutOverrideSource.h
ogDiagnosticPrinter.h
erializedDiagnosticPrinter.h
extDiagnosticPrinter.h
|
ca2ab45341c448284cf93770018c717810575f86 |
12-Jan-2013 |
Douglas Gregor <dgregor@apple.com> |
Provide Decl::getOwningModule(), which determines the (sub)module in which a particular declaration resides. Use this information to customize the "definition of 'blah' must be imported from another module" diagnostic with the module the user actually has to import. Additionally, recover by importing that module, so we don't complain about other names in that module. Still TODO: coming up with decent Fix-Its for these cases, and expand this recovery approach for other name lookup failures. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@172290 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
|
80ad52f327b532bded5c5b0ee38779d841c6cd35 |
02-Jan-2013 |
Richard Smith <richard-llvm@metafoo.co.uk> |
s/CPlusPlus0x/CPlusPlus11/g git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171367 91177308-0d34-0410-b5e6-96231b3b80d8
angStandard.h
angStandards.def
|
b99083e60325a28063fb588f458a871151971fdc |
02-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Re-sort #include lines using the llvm/utils/sort_includes.py script. Removes a duplicate #include as well as cleaning up some sort order regressions since I last ran the script over Clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171364 91177308-0d34-0410-b5e6-96231b3b80d8
ultiplexConsumer.h
|
2d382d149b442b928fd3fb8edcc8d82ea9325872 |
30-Dec-2012 |
Will Dietz <wdietz2@illinois.edu> |
[ubsan] Recover by default, use -fno-sanitize-recover to disable. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171264 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
|
34ef11be9d09ebf916ab02a521e37be6e9e102d3 |
24-Dec-2012 |
Evgeniy Stepanov <eugeni.stepanov@gmail.com> |
Support -fsanitize-memory-track-origins. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@171020 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
|
96e12a264f9268a5fb73020a5d318474f0bfe429 |
21-Dec-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Switch FrontendOptions to using an initializer list rather than initializing the values in the constructor. The constructor implementation is trivial beyond the value initialisations. Patch by Saleem Abdulrasool! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@170929 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
ac31c8346f1ce3628b5a7fb862fefab5b94f8e82 |
05-Dec-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Simplify slightly by seperating out the responsibility for emission of a caret diagnostic from the emission of macro backtraces. Incidentally, we now get the displayed source location for a diagnostic and the location for the caret from the same place, rather than computing them separately. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169357 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticRenderer.h
|
30a2e16f6c27f888dd11eba6bbbae1e980078fcb |
04-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Sort #include lines for all files under include/... This is a simpler sort, entirely automatic with the help of llvm/utils/sort_includes.py -- no manual edits here. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169238 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
ompilerInvocation.h
rontendAction.h
ogDiagnosticPrinter.h
ultiplexConsumer.h
extDiagnosticPrinter.h
|
91ecfa6af51836d3ccc90beddab1193b0c060739 |
03-Dec-2012 |
Alexey Samsonov <samsonov@google.com> |
Add Clang flags -fsanitize-blacklist and -fno-sanitize-blacklist. Make this flag usable for ASan. Blacklisting can be used to disable sanitizer checks for particular file/function/object. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169144 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
ad95481b2769ad61f23afc5e2c31f11c66090657 |
02-Dec-2012 |
Will Dietz <wdietz2@illinois.edu> |
[ubsan] Add flag to enable recovery from checks when possible. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169114 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
|
c2b914fb6fed213a7e7d9847e543f1e7f94d852d |
01-Dec-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Make helper classes anonymous. Make helper functions static instead of private members so the anonymous class doesn't leak out. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169099 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnostic.h
|
4565e487531c7bf6d348dbe9f5529784966fc7ae |
30-Nov-2012 |
Douglas Gregor <dgregor@apple.com> |
Rename ModuleBuildPath -> ModuleBuildStack. Thanks, Dmitri! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169045 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticRenderer.h
|
6c3254316de2d0d554b19702f4b10117ae46b77b |
30-Nov-2012 |
Douglas Gregor <dgregor@apple.com> |
When we're emitting a diagnostic with a source location in an imported module, provide a module import stack similar to what we would get for an include stack, e.g., In module 'DependsOnModule' imported from build-fail-notes.m:4: In module 'Module' imported from DependsOnModule.framework/Headers/DependsOnModule.h:1: Inputs/Module.framework/Headers/Module.h:15:12: note: previous definition is here @interface Module <rdar://problem/12696425> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169042 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticRenderer.h
extDiagnostic.h
|
830ea5b7c75413526c19531f0180fa6e45b98919 |
30-Nov-2012 |
Douglas Gregor <dgregor@apple.com> |
When an error occurs while building a module on demand, provide "While building module 'Foo' imported from..." notes (the same we we provide "In file included from..." notes) in the diagnostic, so that we know how this module got included in the first place. This is part of <rdar://problem/12696425>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@169021 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticRenderer.h
extDiagnostic.h
|
463d90986ec54c62bf8fe31193ef5db701db48a5 |
30-Nov-2012 |
Douglas Gregor <dgregor@apple.com> |
Keep track of modules that have failed to build. If we encounter an import of that module elsewhere, don't try to build the module again: it won't work, and the experience is quite dreadful. We track this information somewhat globally, shared among all of the related CompilerInvocations used to build modules on-the-fly, so that a particular Clang instance will only try to build a given module once. Fixes <rdar://problem/12552849>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168961 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
|
85489080807b47b70d26611ba543801e16bec4cd |
23-Nov-2012 |
Joey Gouly <joey.gouly@arm.com> |
PR14306: Move -fbounds-checking to -fsanitize=bounds. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168510 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
|
931c0833811c030884fa50b2ccbd3c34f0f4c4ee |
15-Nov-2012 |
Lang Hames <lhames@gmail.com> |
Make -ffp-contract a codegen option, rather than a laguage option. This makes more sense anyway - it determines how expressions are codegen'd. It also ensures that -ffp-contract=fast has the intended effect when compiling LLVM IR. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@168027 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
odeGenOptions.h
|
bb23628148f555a4cf71f98c27096a7a804c085c |
11-Nov-2012 |
Nico Weber <nicolasweber@gmx.de> |
s/BCPLComment/LineComment/ git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167690 91177308-0d34-0410-b5e6-96231b3b80d8
angStandard.h
angStandards.def
|
8616f9af65b9a3662f2c9dfed38eeabc509f8446 |
09-Nov-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Turn FrontendInputFile into an immutable class and have it also accept a memory buffer instead of only a filename. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167627 91177308-0d34-0410-b5e6-96231b3b80d8
rontendAction.h
rontendOptions.h
|
8e1fbbc492bc1f4833136d9b55e1aaf478565d32 |
09-Nov-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Make CompilerInstance::InitializeSourceManager accept a FrontendInputFile, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167626 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
485577dcac0b0877cfb5395b365490a0189c66f5 |
09-Nov-2012 |
Chad Rosier <mcrosier@apple.com> |
Implement -mstrict-align using '-backend-option -arm-strict-align' as this saves us from having to make any backend changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167623 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
|
7e293276281bd5bf8526c064d298082b08f0bd8b |
09-Nov-2012 |
Chad Rosier <mcrosier@apple.com> |
[driver] Add a -mstrict-align compiler option for ARM targets. rdar://12340498 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167619 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
|
7c3f8b3dafebc87b4b1492276f63b6cabbc7c59b |
01-Nov-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Remove CompilerInvocation::toArgs and clang -cc1test mode. These were untested and apparently unused (and since they are untested, they're presumably also broken). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167210 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
|
4182ed686283b72736b287cbe28583cb641f8934 |
31-Oct-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Remove the stat cache from the PCH file. 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 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@167172 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
942fbddccc1b5540336674e577abb59e5c231778 |
30-Oct-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove leftover const. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166996 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
848bc3a5db57fb267e2b2541cb55e71dba4bf228 |
30-Oct-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
getOriginalSourceFileName and getOriginalSourceFile can return a StringRef. MaybeAddSystemRootToFilename doesn't need to return anything, it modifies its argument. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166988 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
badb3f6971bec4a7341ed152d367f27d572682e0 |
30-Oct-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Move getOriginalSourceFileName inline. Patch by Laszlo Nagy. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166981 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
14e71f04136de056c08ffb9ccd44b4ca391cc8a5 |
24-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Move PreprocessorOptions into the Lex library, and make it intrusively reference-counted. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166587 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
reprocessorOptions.h
|
c042edd54face617a3b9d0b4b9d5a3ff229d0f48 |
24-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Move HeaderSearchOptions into the Lex library, make it intrusively reference-counted, and hold a reference to it in HeaderSearch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166583 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInvocation.h
eaderSearchOptions.h
|
aafd111afa6acd50fe4bec6c41add02ecf556535 |
24-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Remove the HiddenWeakTemplateVTables CodeGen option. It's currently unused. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166561 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
|
dc7b641574a733624489bd87fc7061771edf2113 |
24-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Use a .def file for most of the diagnostic options. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166520 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
02c23ebf41ae2f70da0ba7337e05c51fbfe35f7f |
24-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Make DiagnosticOptions intrusively reference-counted, and make sure the various stakeholders bump up the reference count. In particular, the diagnostics engine now keeps the DiagnosticOptions object alive. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166508 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
ompilerInvocation.h
iagnosticOptions.h
iagnosticRenderer.h
ogDiagnosticPrinter.h
erializedDiagnosticPrinter.h
extDiagnostic.h
extDiagnosticPrinter.h
|
4cdad3151bfb2075c6bdbfe89fbb08f31a90a45b |
23-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Switch CodeGenOptions over to a .def file, like we do with LangOptions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166497 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.def
odeGenOptions.h
|
266dba3661928d26f043560b169bea87578aa917 |
19-Oct-2012 |
Andy Gibbs <andyg1001@hotmail.co.uk> |
Change VerifyDiagnosticConsumer so that it *must* contain at least one "expected-*" directive. As a result, for test-cases that are not expected to generate any diagnostics, an additional directive "expected-no-diagnostics" has been implemented which can then be included in such test-cases. This new directive may not be used in conjunction with any other "expected-*" directive. This change was initially proposed as a solution to the problem highlighted by check-in r164677, i.e. that -verify will not cause a test-case failure where the compile command does not actually reference the file. Patch reviewed by David Blaikie. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166281 91177308-0d34-0410-b5e6-96231b3b80d8
erifyDiagnosticConsumer.h
|
da3301eec823fe770bfa49a1cb19649506caa698 |
18-Oct-2012 |
Eric Christopher <echristo@gmail.com> |
Add a new option for and disable column number information as there are no known current users of column info. Robustify and fix up a few tests in the process. Reduces the size of debug information by a small amount. Part of PR14106 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166236 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
5ba49c0177bd594a9760956f51293b5731b03d6d |
18-Oct-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Add -std=c++1y argument, for *highly* experimental C++14 support. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166139 91177308-0d34-0410-b5e6-96231b3b80d8
angStandard.h
angStandards.def
|
57016dda61498294120b1a881d9e6606337b29d9 |
17-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Serialize TargetOptions into an AST file, and make sure that we keep target options around so they can be accessed at any point (rather than keeping them transient). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166072 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInvocation.h
|
9a022bb007a3e77e1ac1330f955a239cfb1dd0fb |
15-Oct-2012 |
Douglas Gregor <dgregor@apple.com> |
Teach TargetInfo to hold on to the TargetOptions with which it was created. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165943 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
b43d87b0646aa04951056c7e0d1ab9a58eb09f66 |
12-Oct-2012 |
Sean Silva <silvas@purdue.edu> |
Remove pointless classof()'s. Updates to llvm/Support/Casting.h have rendered these classof()'s irrelevant. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165770 91177308-0d34-0410-b5e6-96231b3b80d8
ultiplexConsumer.h
|
900ab95e12bb7483971640a91075699eec391804 |
11-Oct-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Improve AST serialization done by ASTUnit::Save(). 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165717 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
62288edde26ff4af9fc079c979a0e1bdc577ce9d |
10-Oct-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
When indexing a module file, for the ppIncludedFile callback give an invalid location if the location points to the synthetic buffer for the module input. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165592 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
3da76bfbd24b2747ceb72d1918bbbe3123dac841 |
03-Oct-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] When indexing, invoke the importedASTFile for PCH files as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165161 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
95c579cae01118eadd311d445ff7f491d0011fb0 |
03-Oct-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Some renames to use the 'visitor' nomenclature, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165083 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
2093e0bc4e436b1b2791d5423fb3274dd37231b8 |
02-Oct-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] When indexing an AST file, only deserialize the file level declarations of the current primary module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165046 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
632dcc92f60ab7f806a89c5bca3a0951763a9219 |
02-Oct-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] When indexing an AST file, only deserialize the preprocessing record entities of the current primary module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@165023 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
e6d22027bc22d3767a2acdc80299c76b91159867 |
26-Sep-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Have ASTUnit::Save() return a bool to indicate save error. Removes a dependency of ASTUnit to clang-c/Index.h. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@164704 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
f56faa01936b9cf909623d7f06e3c2569ca4a78e |
15-Sep-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Use LLVM_DELETED_FUNCTION in place of 'DO NOT IMPLEMENT' comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163983 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
erifyDiagnosticConsumer.h
|
1824d54df85a462ada812dadda18130f951d40f3 |
13-Sep-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Fix Doxygen misuse: refer to parameter names in paragraphs correctly (\arg is not what most people want -- it starts a new paragraph). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163793 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
rontendAction.h
eaderSearchOptions.h
|
e23fb90712233bdfa04387e48b54a7168e23cb3e |
12-Sep-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Fix a couple of Doxygen issues pointed out by -Wdocumentation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@163722 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
45796b10d11869e86c6b85e24df165410536b313 |
31-Aug-2012 |
Ted Kremenek <kremenek@apple.com> |
Make AnalyzerOptions a shared object between CompilerInvocation and AnalysisManager, allowing the StringMap of configuration values to be propagated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162978 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
ompilerInvocation.h
|
987695a5ddd78beca784d4e503ffbc2dc879181a |
31-Aug-2012 |
Ted Kremenek <kremenek@apple.com> |
Move AnalyzerOptions.h into 'Core' StaticAnalyzer sub-library. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162977 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
|
5705a40c7ec62f1a903bf26e1e6a7f91b5b98ba3 |
30-Aug-2012 |
Ted Kremenek <kremenek@apple.com> |
Move AnalyzerOptions.h to include/clang/StaticAnalyzer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162928 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
ompilerInvocation.h
|
82f5aceed89b85e79373086b7e0e7986e2c59179 |
30-Aug-2012 |
Ted Kremenek <kremenek@apple.com> |
Move Analyses.def to include/clang/StaticAnalyzer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162927 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
nalyzerOptions.h
|
7b73e0832b20af1f43601a3d19e76d02d9f4dce5 |
29-Aug-2012 |
Ted Kremenek <kremenek@apple.com> |
Add new -cc1 driver option -analyzer-config, which allows one to specify a comma separated collection of key:value pairs (which are strings). This allows a general way to provide analyzer configuration data from the command line. No clients yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162827 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
56d7f2348a182002563700db2158da0c6fc115a5 |
24-Aug-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Change the -fenable-experimental-ms-inline-asm option from a CodeGen option to a LangOpt option. In turn, hoist the guard into the parser so that we avoid the new (and fairly unstable) Sema/AST/CodeGen logic. This should restore the behavior of clang to that prior to r158325. <rdar://problem/12163681> git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162602 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
70517ca5c07c4b41ff8662b94ee22047b0299f8c |
23-Aug-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Fix a bunch of -Wdocumentation warnings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162452 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
iagnosticRenderer.h
|
e3f3825bd82f84f2a1ae0a02274a33298bb720b3 |
22-Aug-2012 |
Ted Kremenek <kremenek@apple.com> |
Remove BasicConstraintManager. It hasn't been in active service for a while. As part of this change, I discovered that a few of our tests were not testing the RangeConstraintManager. Luckily all of those passed when I moved them over to use that constraint manager. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162384 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
c568e2f801a62e442cbbd823b71f70175715661f |
21-Aug-2012 |
Jordan Rose <jordan_rose@apple.com> |
[analyzer] Set the default IPA mode to 'basic-inlining', which excludes C++. Under -analyzer-ipa=basic-inlining, only C functions, blocks, and C++ static member functions are inlined -- essentially, the calls that behave like simple C function calls. This is essentially the behavior in Xcode 4.4. C++ support still has some rough edges, and we don't want users to be worried about them if they download and run their own checker. (In particular, the massive number of false positives for analyzing LLVM comes from inlining defensively-written code in contexts where more aggressive assumptions are implicitly made. This problem is not unique to C++, but it is exacerbated by the higher proportion of code that lives in header files in C++.) The eventual goal is to be comfortable enough with C++ support (and simple Objective-C support) to advance to -analyzer-ipa=inlining as the default behavior. See the IPA design notes for more details. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162318 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
nalyzerOptions.h
|
a7afeb040416c0eaac19b92db914913a788044f5 |
21-Aug-2012 |
Chad Rosier <mcrosier@apple.com> |
[driver] Add support for the --param ssp-buffer-size= driver option. PR9673 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162285 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
7eaaa186d1e9797f424136f565403f7a8b6672fa |
18-Aug-2012 |
Jordan Rose <jordan_rose@apple.com> |
Allow -verify to be used with files that don't have an associated FileEntry. In Debug builds, VerifyDiagnosticConsumer checks any files with diagnostics to make sure we got the chance to parse them for directives (expected-warning and friends). This check previously relied on every parsed file having a FileEntry, which broke the cling interpreter's test suite. This commit changes the extra debug checking to mark a file as unparsed as soon as we see a diagnostic from that file. At the very end, any files that are still marked as unparsed are checked for directives, and a fatal error is emitted (as before) if we find out that there were directives we missed. -verify directives should always live in actual parsed files, not in PCH or AST files. Patch by Andy Gibbs, with slight modifications by me. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@162171 91177308-0d34-0410-b5e6-96231b3b80d8
erifyDiagnosticConsumer.h
|
026b3588b9916f3fcb20ad2f02ca5472cbbdc5d7 |
14-Aug-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Fix undefined behavior in code completion, caught by -fcatch-undefined-behavior. Don't try to fit 34 different flags into 32 bits. Also, don't use 32-bit signed left shifts for this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161830 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
7c304f56eecbd03db7d222a05dfcd593750d50d3 |
10-Aug-2012 |
Jordan Rose <jordan_rose@apple.com> |
Update VerifyDiagnosticConsumer to only get directives during parsing. The old behavior was to re-scan any files (like modules) where we may have directives but won't actually be parsing during the -verify invocation. Now, we keep the old behavior in Debug builds as a sanity check (though modules are a known entity), and expect all legitimate directives to come from comments seen by the preprocessor. This also affects the ARC migration tool, which captures diagnostics in order to filter some out. This change adds an explicit cleanup to CaptureDiagnosticsConsumer in order to let its sub-consumer handle the real end of diagnostics. This was originally split into four patches, but the tests do not run cleanly without all four, so I've combined them into one commit. Patches by Andy Gibbs, with slight modifications from me. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161650 91177308-0d34-0410-b5e6-96231b3b80d8
erifyDiagnosticConsumer.h
|
e90d3f847dcce76237078b67db8895eb7a24189e |
09-Aug-2012 |
Anna Zaks <ganna@apple.com> |
[analyzer] Bifurcate the path with dynamic dispatch. This is an initial (unoptimized) version. We split the path when inlining ObjC instance methods. On one branch we always assume that the type information for the given memory region is precise. On the other we assume that we don't have the exact type info. It is important to check since the class could be subclassed and the method can be overridden. If we always inline we can loose coverage. Had to refactor some of the call eval functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161552 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
e1ce783708b65eaa832ffad03d239264046dd0eb |
31-Jul-2012 |
Jordan Rose <jordan_rose@apple.com> |
[analyzer] Turn -cfg-add-initializers on by default, and remove the flag. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161060 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
171af64ef10ae816ed2a4f15f5d17aca1d71769f |
31-Jul-2012 |
Alexander Kornienko <alexfh@google.com> |
Added -ast-list option to dump filterable AST decl node names. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161040 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
rontendActions.h
rontendOptions.h
|
3738db9445b60d6d7cab5367122308f5f2c302fc |
30-Jul-2012 |
Anna Zaks <ganna@apple.com> |
[analyzer] fixup for adding of the "dynamic" ipa option git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160990 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
e34a052d642ba7830174b1a51787251d7f704f80 |
26-Jul-2012 |
Alexander Kornienko <alexfh@google.com> |
Added -ast-dump-filter option to clang -cc1. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160784 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
rontendOptions.h
|
d759cddde308fe7419d652b76eb143e2ab094560 |
20-Jul-2012 |
Chad Rosier <mcrosier@apple.com> |
Tidy up. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160581 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
89770e5640dd5039569ecdc64c61acd9aa22cff9 |
20-Jul-2012 |
Chad Rosier <mcrosier@apple.com> |
Add the mechanics for -fms-inline-asm. No easy way to test at this time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160580 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
198871cc90375246d8692680467ff6e810edac36 |
12-Jul-2012 |
Tanya Lattner <tonic@nondot.org> |
Add OpenCL metadata for kernel arg names. This output is controlled via a flag as noted in the OpenCL Spec. Includes a test case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160092 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
ff398965a5abfaf5bc47bc022876f56a28e5b9a7 |
11-Jul-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce a flag in SourceManager to treat non-system source files as "volatile", meaning there's a high enough chance that they may change while we are trying to use them. This flag is only enabled by libclang. Currently "volatile" source files will be stat'ed immediately before opening them, because the file size stat info may not be accurate since when we got it (e.g. from the PCH). This avoids crashes when trying to reference mmap'ed memory from a file whose size is not what we expect. Note that there's still a window for a racing issue to occur but the window for it should be way smaller than before. We can consider later on to avoid mmap completely on such files. rdar://11612916 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160074 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
78541c433049322b27b4f437973076ba29cff709 |
11-Jul-2012 |
Jordan Rose <jordan_rose@apple.com> |
Allow -verify directives to be filtered by preprocessing. This is accomplished by making VerifyDiagnosticsConsumer a CommentHandler, which then only reads the -verify directives that are actually in live blocks of code. It also makes it simpler to handle -verify directives that appear in header files, though we still have to manually reparse some files depending on how they are generated. This requires some test changes. In particular, all PCH tests now have their -verify directives outside the "header" portion of the file, using the @line syntax added in r159978. Other tests have been modified mostly to make it clear what is being tested, and to prevent polluting the expected output with the directives themselves. Patch by Andy Gibbs! (with slight modifications) The new Frontend/verify-* tests exercise the functionality of this commit, as well as r159978, r159979, and r160053 (Andy's other -verify enhancements). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160068 91177308-0d34-0410-b5e6-96231b3b80d8
erifyDiagnosticConsumer.h
|
202c0541b69cab612bf0aceb49ddd8bb11199c8d |
11-Jul-2012 |
Nico Weber <nicolasweber@gmx.de> |
Remove unused override of CompilerInvocation::setLangDefaults(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@160051 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
|
3b81b7d604e851498243ee732dee3babc1cf20d4 |
10-Jul-2012 |
Jordan Rose <jordan_rose@apple.com> |
Allow -verify directives to specify a min and max count, not just "+". void f(); // expected-note 0+ {{previous declaration is here}} void g(); // expected-note 0-1 {{previous declaration is here}} The old "+" syntax is still an alias for "1+", and single numbers still work. Patch by Andy Gibbs! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159979 91177308-0d34-0410-b5e6-96231b3b80d8
erifyDiagnosticConsumer.h
|
aa48fe80a1b2000809900a437f0819d929793002 |
10-Jul-2012 |
Jordan Rose <jordan_rose@apple.com> |
Allow line numbers on -verify directives. // expected-warning@10 {{some text}} The line number may be absolute (as above), or relative to the current line by prefixing the number with either '+' or '-'. Patch by Andy Gibbs! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159978 91177308-0d34-0410-b5e6-96231b3b80d8
erifyDiagnosticConsumer.h
|
4313c013c658f6c97e6460e7780c26faa6b78d9a |
10-Jul-2012 |
Jordan Rose <jordan_rose@apple.com> |
Clean up VerifyDiagnosticsConsumer in preparation for upcoming enhancements. Patch by Andy Gibbs! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159977 91177308-0d34-0410-b5e6-96231b3b80d8
erifyDiagnosticConsumer.h
|
478851c3ed6bd784e7377dffd8e57b200c1b9ba9 |
04-Jul-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Drop the ASTContext.h include from Stmt.h and fix up transitive users. This required moving the ctors for IntegerLiteral and FloatingLiteral out of line which shouldn't change anything as they are usually called through Create methods that are already out of line. ASTContext::Deallocate has been a nop for a long time, drop it from ASTVector and make it independent from ASTContext.h Pass the StorageAllocator directly to AccessedEntity so it doesn't need to have a definition of ASTContext around. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159718 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
d99ef536b241071b6f4c01db6525dc03242ac30b |
02-Jul-2012 |
Dmitri Gribenko <gribozavr@gmail.com> |
Add a new libclang completion API to get brief documentation comment that is attached to a declaration in the completion string. Since extracting comments isn't free, a new code completion option is introduced. A new code completion option that enables including brief comments into CodeCompletionString should be a, err, code completion option. But because ASTUnit caches global declarations during parsing before even completion consumer is created, the option is duplicated as a translation unit option (in both libclang and ASTUnit, like the option to cache code completion results). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159539 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
rontendOptions.h
|
de981f3ff163bc9ec69e4c5e7316e94276412993 |
28-Jun-2012 |
Hans Wennborg <hans@hanshq.net> |
Add -ftls-model command-line flag. This allows for setting the default TLS model. (PR9788) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159336 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
246b6aa6763de8c617d564ef33123a8f3293a80e |
26-Jun-2012 |
Richard Trieu <rtrieu@google.com> |
Add template type diffing to Clang. This feature will provide a better comparison between two templated types when they both appear in a diagnostic. Type elision will remove indentical template arguments, which can be disabled with -fno-elide-type. Cyan highlighting is applied to the differing types. For more formatting, -fdiagnostic-show-template-tree will output the template type as an indented text tree, with differences appearing inline. Template tree works with or without type elision. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@159216 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
|
efce31f51d6e7e31e125f96c20f6cdab3ead0a47 |
22-Jun-2012 |
James Dennett <jdennett@google.com> |
Documentation cleanup: * Primarily fixed \param commands with names not matching any actual parameters of the documented functions. In many cases this consists just of fixing up the parameter name in the \param to match the code, in some it means deleting obsolete documentation and occasionally it means documenting the parameter that has replaced the older one that was documented, which sometimes means some simple reverse-engineering of the docs from the implementation; * Fixed \param ParamName [out] to the correct format with [out] before the parameter name; * Fixed some \brief summaries. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158980 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
|
a6366f5c7e92466ebad0042afa55c2e5952ebe61 |
20-Jun-2012 |
James Dennett <jdennett@google.com> |
Documentation cleanup: * Escape < characters in Doxygen comments as needed; * Add \code...\endcode around code examples; * Remove an incorrect use of Doxygen's \arg command. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158859 91177308-0d34-0410-b5e6-96231b3b80d8
erifyDiagnosticConsumer.h
|
1070e324c79b772a722b815d48dda999eea52bf8 |
20-Jun-2012 |
James Dennett <jdennett@google.com> |
Documentation cleanup: escaping # characters in Doxygen comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158847 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
|
260611a32535c851237926bfcf78869b13c07d5b |
20-Jun-2012 |
John McCall <rjmccall@apple.com> |
Restructure how the driver communicates information about the target Objective-C runtime down to the frontend: break this down into a single target runtime kind and version, and compute all the relevant information from that. This makes it relatively painless to add support for new runtimes to the compiler. Make the new -cc1 flag, -fobjc-runtime=blah-x.y.z, available at the driver level as a better and more general alternative to -fgnu-runtime and -fnext-runtime. This new concept of an Objective-C runtime also encompasses what we were previously separating out as the "Objective-C ABI", so fragile vs. non-fragile runtimes are now really modelled as different kinds of runtime, paving the way for better overall differentiation. As a sort of special case, continue to accept the -cc1 flag -fobjc-runtime-has-weak, as a sop to PLCompatibilityWeak. I won't go so far as to say "no functionality change", even ignoring the new driver flag, but subtle changes in driver semantics are almost certainly not intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158793 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
8af669f2f1d92436fe6dc43144bb084a620e7516 |
19-Jun-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add a -fuse-init-array option to cc1 and map to the UseInitArray target option. On the driver, check if we are using libraries from gcc 4.7 or newer and if so pass -fuse-init-array to the frontend. The crtbegin*.o files in gcc 4.7 no longer call the constructors listed in .ctors, so we have to use .init_array. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158694 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
f4205e12cede5db17f47b31471852bb4a1f27533 |
19-Jun-2012 |
Tanya Lattner <tonic@nondot.org> |
Add language std for OpenCL 1.1 and 1.2. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158686 91177308-0d34-0410-b5e6-96231b3b80d8
angStandards.def
|
d3cb28bef1e1d397b35126029465f2b7e8e8dc1f |
16-Jun-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Guard private fields that are unused in Release builds with #ifndef NDEBUG. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158609 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
2edbc98b046de22f3aba3c5142e85e7f3437fd03 |
16-Jun-2012 |
James Dennett <jdennett@google.com> |
Documentation cleanup: Escaped # characters in Doxygen comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158568 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
|
f1492f970c7c6eb85dc18f13fb864b185bed1d23 |
14-Jun-2012 |
David Blaikie <dblaikie@gmail.com> |
Support -frewrite-includes as an option while preprocessing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158460 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
reprocessorOutputOptions.h
|
809d1be9820039b4cf6efa48246a0d70ffa13394 |
14-Jun-2012 |
James Dennett <jdennett@google.com> |
More doxygen/documentation cleanups. This reduces the number of warnings generated by Doxygen by about 100 (roughly 10%). Issues addressed: (1) Primarily, backslash-escaped "@foo" and "#bah" in Doxygen comments when they're not supposed to be Doxygen commands or links, and similarly for "<baz>" when it's not intended as as HTML tag; (2) Changed some \t commands (which don't exist) to \c ("to refer to a word of code", as the Doxygen manual says); (3) \precondition becomes \pre; (4) When touching comments, deleted a couple of spurious spaces in them; (5) Changed some \n and \r to \\n and \\r; (6) Fixed one tiny typo: #pragms -> #pragma. This patch touches documentation/comments only. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158422 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
eaderSearchOptions.h
reprocessorOutputOptions.h
|
f122a138e39dbb29162abfa9a3d44091d8efa7af |
13-Jun-2012 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Add -isystem-prefix and -ino-system-prefix arguments, which can be used to override whether headers are system headers by checking for prefixes of the header name specified in the #include directive. This allows warnings to be disabled for third-party code which is found in specific subdirectories of include paths. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158418 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
|
7ed25df166c68a3d67f0f05b0b7dd802c57adfb8 |
11-Jun-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Const'ify CompilerInvocation::toArgs(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158298 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
|
374a00bcc6e26b4fc3cd1d378a5d056c4c7d618e |
08-Jun-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Don't crash when saving a PCH from a prefix header that does not exist. rdar://11607033 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158193 91177308-0d34-0410-b5e6-96231b3b80d8
rontendAction.h
|
8c0b3787e7ccc7978b42dfbb84da2b802c743a5d |
06-Jun-2012 |
David Blaikie <dblaikie@gmail.com> |
Add a -rewrite-includes option, which is similar to -rewrite-macros, but only expands #include directives. Patch contributed by Lubos Lunak (l.lunax@suse.cz). Review by Matt Beaumont-Gay (matthewbg@google.com). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158093 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
48d798ce32447607144db70a484cdb99c1180663 |
02-Jun-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix typos found by http://github.com/lyda/misspell-check git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157886 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnostic.h
|
def18494b97f554ea0d95db75627c3e77b74307f |
22-May-2012 |
Nuno Lopes <nunoplopes@sapo.pt> |
wire -fbounds-checking to the new LLVM bounds checking pass git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157262 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
16afdf76b6f12e41ff6f6e6828bfb1d4732523ba |
10-May-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix an assertion hit when the serialized diagnostics writer receive a diagnostic from the frontend when the location is invalid and the SourceManager null. Instead of keeping the SourceManager object in DiagnosticRenderer, propagate it to the calls accordingly (as reference when it is expected to not be null, or pointer when it may be null). This effectively makes DiagnosticRenderer not tied to a specific SourceManager, removing a hack from TextDiagnosticPrinter. rdar://11386874 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156536 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticRenderer.h
extDiagnostic.h
extDiagnosticPrinter.h
|
fd00eecad6fa5400cf37269d84361a0551d0e6d3 |
04-May-2012 |
Alexey Samsonov <samsonov@google.com> |
This patch adds a new Clang compiler flag "-gline-tables-only". It reduces the amount of emitted debug information: 1) DIEs in .debug_info have types DW_TAG_compile_unit, DW_TAG_subprogram, DW_TAG_inlined_subroutine (for opt builds) and DW_TAG_lexical_block only. 2) .debug_str contains only function names. 3) No debug data for types/namespaces/variables is emitted. 4) The data in .debug_line is enough to produce valid stack traces with function names and line numbers. Reviewed by Eric Christopher. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156160 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
0639c8b31fdde248170fdd151a12566d0fbe7bf8 |
02-May-2012 |
David Blaikie <dblaikie@gmail.com> |
Fix same line doxycomments so they comment the adjacent field. Without the '<' prefix in the doxycomment these comments were incorrectly attached to the proceeding comment on the next line, rather than the preceeding one. Fixes PR12722 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155993 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
3a70cd6e1cc414856e41ce5509aa61c89bf472dc |
27-Apr-2012 |
Alexey Samsonov <samsonov@google.com> |
Use enum to set debug info size generated by Clang git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@155697 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
6749dd50869281f9b49ad5960e25288c15a71cac |
18-Apr-2012 |
Seth Cantrell <seth.cantrell@gmail.com> |
Nicer display of unprintable source, and fix caret display for non-ascii text Unprintable source in diagnostics is transformed to a printable form and then displayed with reversed colors if possible. Unprintable characters are displayed as <U+NNNN> while bytes that do not represent valid characters are shown as <XX>. Column adjustments to diagnostic carets, highlighted ranges, and fixups are made both for characters escaped as above and for characters which are printable but take up more than a single column. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154980 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnostic.h
|
9591697707c69af99bb196d70895f4e7e28be333 |
17-Apr-2012 |
Seth Cantrell <seth.cantrell@gmail.com> |
Revert "Nicer display of unprintable source, and fix caret display for non-ascii text" This reverts commit e9a3b76ba589a8a884e978273beaed0d97cf9861. Revert "fix display of source lines with null characters" This reverts commit 70712b276e40bbe11e5063dfc7e82ce3209929cd. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154950 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnostic.h
|
e9a3b76ba589a8a884e978273beaed0d97cf9861 |
17-Apr-2012 |
Seth Cantrell <seth.cantrell@gmail.com> |
Nicer display of unprintable source, and fix caret display for non-ascii text Unprintable source in diagnostics is transformed to a printable form and then displayed with reversed colors if possible. Unprintable characters are displayed as <U+NNNN> while bytes that do not represent valid characters are shown as <XX>. Column adjustments to diagnostic carets, highlighted ranges, and fixups are made both for characters escaped as above and for characters which are printable but take up more than a single column. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154946 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnostic.h
|
87e154c09bbb060a0620bc988d7723bee64fb79c |
13-Apr-2012 |
Douglas Gregor <dgregor@apple.com> |
Remove the unused, unmaintained, incomplete 'Index' library. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154672 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
105047124ca8ccc27e4fa48ae8af8bb472c57648 |
13-Apr-2012 |
Douglas Gregor <dgregor@apple.com> |
Remove the -cc1-level option "-pubnames-dump". Such things should stay out of the tree and use the tooling infrastructure. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154668 91177308-0d34-0410-b5e6-96231b3b80d8
rontendActions.h
rontendOptions.h
|
6a91d385618ea4d28236c496f540a26877c95525 |
12-Apr-2012 |
Erik Verbruggen <erikjv@me.com> |
Added a flag to the parser to skip method bodies. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154584 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
rontendOptions.h
|
e722ed6f5464232e23be52f4976312ef526fae99 |
11-Apr-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] If displayDiagnostics is set (when calling clang_createIndex), make sure to output the errors that occurred even if we did not get an AST (e.g. because the PCH failed to load). Also honor displayDiagnostics in clang_indexSourceFile(). rdar://11203489 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154472 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
28a83f57003469fb615ad27dd34bcf5b0a10da8c |
10-Apr-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[code-complete] Introduce CodeCompletionTUInfo which will be used for caching code-completion related strings specific to a translation unit (ASTContext and related data) CodeCompletionAllocator does such limited caching, by caching the name assigned to a DeclContext*, but that is not the appropriate place since that object has a lifetime that can extend beyond that of an ASTContext. Introduce CodeCompletionTUInfo which will be always tied to a translation unit to do this kind of caching and move the caching of CodeCompletionAllocator into this object, and propagate it to all the places where it will be needed. The plan is to extend the caching where appropriate, using CodeCompletionTUInfo, to avoid re-calculating code-completion strings. Part of rdar://10796159. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154408 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
561d62280aecff3168097086425a7da0442d0de4 |
09-Apr-2012 |
David Chisnall <csdavec@swan.ac.uk> |
Revert r154321, pending more discussion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154327 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
649ee3fec12dcf7167630ff88087ad116e9eefa6 |
09-Apr-2012 |
David Chisnall <csdavec@swan.ac.uk> |
Add -fobjc-trace to emit a call before and after each Objective-C message send for hooking in code flow visualisation applications. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@154321 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
b47dbcbc12430fdf3e5a5b9f59cdec5480e89e75 |
28-Mar-2012 |
Anna Zaks <ganna@apple.com> |
[analyzer] Enable retry exhausted without inlining by default. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153591 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
82fe6aea407a5a09a6131452ce622087ba83880d |
28-Mar-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Move the emission of strict enum range metadata behind a flag (the same flag as GCC uses: -fstrict-enums). There is a *lot* of code making unwarranted assumptions about the underlying type of enums, and it doesn't seem entirely reasonable to eagerly break all of it. Much more importantly, the current state of affairs is *very* good at optimizing based upon this information, which causes failures that are very distant from the actual enum. Before we push for enabling this by default, I think we need to implement -fcatch-undefined-behavior support for instrumenting and trapping whenever we store or load a value outside of the range. That way we can track down the misbehaving code very quickly. I discussed this with Rafael, and currently the only important cases he is aware of are the bool range-based optimizations which are staying hard enabled. We've not seen any issue with those either, and they are much more important for performance. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153550 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
5903a373db3d27794c90b25687e0dd6adb0e497d |
27-Mar-2012 |
Anna Zaks <ganna@apple.com> |
[analyzer] Add an option to re-analyze a dead-end path without inlining. The analyzer gives up path exploration under certain conditions. For example, when the same basic block has been visited more than 4 times. With inlining turned on, this could lead to decrease in code coverage. Specifically, if we give up inside the inlined function, the rest of parent's basic blocks will not get analyzed. This commit introduces an option to enable re-run along the failed path, in which we do not inline the last inlined call site. This is done by enqueueing the node before the processing of the inlined call site with a special policy encoded in the state. The policy tells us not to inline the call site along the path. This lead to ~10% increase in the number of paths analyzed. Even though we expected a much greater coverage improvement. The option is turned off by default for now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153534 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
978fc9c485d21ee89b4f0bc77ce1ea55c65c7f12 |
27-Mar-2012 |
Douglas Gregor <dgregor@apple.com> |
Introduce a -cc1-level option -pubnames-dump, which simply dumps the list of identifiers that that 'public' names at the end of the translation unit, e.g., defined macros or identifiers with top-level names, in sorted order. Meant to support <rdar://problem/10921596>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@153522 91177308-0d34-0410-b5e6-96231b3b80d8
rontendActions.h
rontendOptions.h
|
fc055f943d154c9b7463f43a3b59e093723362c9 |
15-Mar-2012 |
Chad Rosier <mcrosier@apple.com> |
[frontend] Fix how the frontend handles -fno-inline. AFAIK clang now matches the behavior of gcc with respect to the -fno-inline and -fno-inline-functions flags. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152861 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
8fbe3855db0c341964bb550e13659505efe06c43 |
15-Mar-2012 |
Chad Rosier <mcrosier@apple.com> |
[frontend] Add support for disabling the "inline" keyword using -fno-inline-functions. This behaves much like -fno-inline in gcc, but based on a discussion with Daniel it was decided that -fno-inline-functions should subsume -fno-inline. Please speak up if you object. The -fno-inline flag remains ignored. Final part of rdar://10972766 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152754 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
2dec85b21822f950bf6035640c496ad835e11728 |
13-Mar-2012 |
Chad Rosier <mcrosier@apple.com> |
[driver] Parse diagnostic args in the driver. Previously, only diagnostics thrown by the cc1 process were actually honoring the diagnostic options given on the command line, like -Werror. Reuse the existing code in Frontend currently used for cc1, adjusting it to not interpret -Wl, linker flags as warnings. Also fix a faulty test exposed by this change. It wasn't actually testing anything, and was giving this warning: clang-3: warning: argument unused during compilation: '-verify' Which -Werror didn't turn into an error because it was output by the driver, not the cc1 process, and diagnostic options weren't parsed by the driver. And you couldn't see the warning when running the test suite. Fixes PR12181. Patch by Dylan Noblesmith <nobled@dreamwidth.org>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152660 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
|
29af3c7425b791daf5c9ec0a820d6b5baab2ddcc |
13-Mar-2012 |
Ted Kremenek <kremenek@apple.com> |
Add new analyzer diagnostic mode where plists can have bugs that span multiple files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152586 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
3fd5f370a28552976c52e76c3035d79012d78dda |
09-Mar-2012 |
Anna Zaks <ganna@apple.com> |
[analyzer] Add support for NoRedundancy inlining mode. We do not reanalyze a function, which has already been analyzed as an inlined callee. As per PRELIMINARY testing, this gives over 50% run time reduction on some benchmarks without decreasing of the number of bugs found. Turning the mode on by default. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152440 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
66253352131e3e7a22b3bfd0e180607aa2bfb988 |
09-Mar-2012 |
Anna Zaks <ganna@apple.com> |
[analyzer] Rework inlining related command line options. - Remove -analyzer-inline-call. - Add -analyzer-ipa=[none|inlining] - Add -analyzer-inlining-mode to allow experimentation for different performance tuning methods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152351 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
nalyzerOptions.h
|
025039377d7247620750205dbd61ca1ba336f7e0 |
08-Mar-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Replace MarkVarRequired with a more generic HandleCXXStaticMemberVarInstantiation. Suggested by Argyrios. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152320 91177308-0d34-0410-b5e6-96231b3b80d8
ultiplexConsumer.h
|
bef35c91b594f66216f4aab303b71a6c5ab7abcf |
07-Mar-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] Mark a PCH file with a flag to indicate if the serialized AST had compiler errors or not. -Control whether ASTReader should reject such a PCH by a boolean flag at ASTReader's creation time. By default, such a PCH file will be rejected with an error when trying to load it. [libclang] Allow clang_saveTranslationUnit to create a PCH file even if compiler errors occurred. -Have libclang API calls accept a PCH that had compiler errors. The general idea is that we want libclang to stay functional even if a PCH had a compiler error. rdar://10976363. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152192 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
reprocessorOptions.h
|
30660a898545416f0fea2d717f16f75640001e38 |
06-Mar-2012 |
Ted Kremenek <kremenek@apple.com> |
Add new code migrator support for migrating existing Objective-C code to use the new Objective-C NSArray/NSDictionary/NSNumber literal syntax. This introduces a new library, libEdit, which provides a new way to support migration of code that improves on the original ARC migrator. We now believe that most of its functionality can be refactored into the existing libraries, and thus this new library may shortly disappear. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152141 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
ebcb57a8d298862c65043e88b2429591ab3c58d3 |
06-Mar-2012 |
Ted Kremenek <kremenek@apple.com> |
Add clang support for new Objective-C literal syntax for NSDictionary, NSArray, NSNumber, and boolean literals. This includes both Sema and Codegen support. Included is also support for new Objective-C container subscripting. My apologies for the large patch. It was very difficult to break apart. The patch introduces changes to the driver as well to cause clang to link in additional runtime support when needed to support the new language features. Docs are forthcoming to document the implementation and behavior of these features. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152137 91177308-0d34-0410-b5e6-96231b3b80d8
reprocessorOptions.h
|
8fbb4e665dda8227f369877c11828e4402c48eba |
06-Mar-2012 |
Anna Zaks <ganna@apple.com> |
[analyzer] Bump up the size of the functions that should be considered for inlining to 200 BBs. Setting the max to 10 BBs introduced several false negatives, we'll reevaluate the setting later on along with other inlining heuristics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152072 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
234fe654a3dd2888be42ae5db34db96c5c2c4ba3 |
05-Mar-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix a small difference in sema and codegen views of what needs to be output. In the included testcase, soma thinks that we already have a definition after we see the out of line decl. Codegen puts it in a deferred list, to be output if a use is seen. This would break when we saw an explicit template instantiation definition, since codegen would not be notified. This patch adds a method to the consumer interface so that soma can notify codegen that this decl is now required. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152024 91177308-0d34-0410-b5e6-96231b3b80d8
ultiplexConsumer.h
|
c6c54521f95760a5eaf29b668d4bf41fe2af49d7 |
05-Mar-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[preprocessor] Enhance PreprocessingRecord to keep track of locations of conditional directives. Introduce PreprocessingRecord::rangeIntersectsConditionalDirective() which returns true if a given range intersects with a conditional directive block. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@152018 91177308-0d34-0410-b5e6-96231b3b80d8
reprocessorOptions.h
|
e21dd284d8209a89137a03a0d63f2bd57be9e660 |
03-Mar-2012 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Default to creating output files using temporary files + rename. - This is a more reliable default, as it behaves better on failure and also ensures that we create *new* files (instead of reusing existing inodes). This is useful for other applications (like lldb) which want to cache inode's to know when a file has been rewritten. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151961 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
12f28ab8a53d7743081d607617309891fa8156f3 |
03-Mar-2012 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Don't automatically create missing directories when using temporary files with createOutputFile() - This would otherwise happen as a side effect of llvm::sys::fs::unique_file creating parent directories. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151960 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
8235f9c9c8b3d1737d1c6bd57f7ba3f616b92392 |
02-Mar-2012 |
Anna Zaks <ganna@apple.com> |
[analyzer] Bound the size of the functions being inlined + provide command line options for inlining tuning. This adds the option for stack depth bound as well as function size bound. + minor doxygenification git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151930 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
278f1f8d9557babb22b966379dd89039f3f8a440 |
01-Mar-2012 |
Anna Zaks <ganna@apple.com> |
[analyzer] Turn inlining on by default for better testing exposure. Fix a test, which was most likely an unintended recursive call. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151848 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
81fb169f42769e02c7425b23885a261c025fd5e6 |
27-Feb-2012 |
Anna Zaks <ganna@apple.com> |
[analyzer] Add -analyzer-stats, which hooks up LLVM stats tracking. As in http://llvm.org/docs/ProgrammersManual.html#Statistic git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151570 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
e1d4330adaaa7faf093e725c9c993207eb2d778a |
25-Feb-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Don't record nested macro expansions in the preprocessing record, it can only bring pain when dealing with preprocessor abuse (see: boost). rdar://10898986 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@151427 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
reprocessorOptions.h
|
50933e5bdbbc1bacc4574e5f4d54381969742426 |
20-Feb-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Make PreprocessorOptions::DetailedRecordIncludesNestedMacroExpansions false by default. Recording nested macro expansions is not useful, plus it fixes rdar://10893630 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150995 91177308-0d34-0410-b5e6-96231b3b80d8
reprocessorOptions.h
|
c93dc7889644293e318e19d82830ea2acc45b678 |
20-Feb-2012 |
Dylan Noblesmith <nobled@dreamwidth.org> |
Basic: import IntrusiveRefCntPtr<> into clang namespace The class name is long enough without the llvm:: added. Also bring in RefCountedBase and RefCountedBaseVPTR. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150958 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
ompilerInvocation.h
tils.h
|
ceb15656fbab9ee1da319afa4934b8f6a5964758 |
15-Feb-2012 |
David Blaikie <dblaikie@gmail.com> |
Remove the unuseful -fdiagnostics-show-name This option was added in r129614 and doesn't have any use case that I'm aware of. It's possible that external tools are using these names - and if that's the case we can certainly reassess the functionality, but for now it lets us shave out a few unneeded bits from clang. Move the "StaticDiagNameIndex" table into the only remaining consumer, diagtool. This removes the actual diagnostic name strings from clang entirely. Reviewed by Chris Lattner & Ted Kremenek. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150612 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
|
8be51eab5ad34515d2a40dcdc8558128ca1800ad |
14-Feb-2012 |
Ted Kremenek <kremenek@apple.com> |
Refactor DiagnosticRenderer and SDiagsRenderer to have some functionality pulled into DiagnosticNoteRenderer, and common DiagnosticRenderer that assumes that all custom diagnostic messages are notes. Also extend DiagnosticRenderer to work with StoredDiagnostics in preparation for subsequent changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150455 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticRenderer.h
extDiagnostic.h
|
6d968363877388f0a0268711d59367907b465ae1 |
10-Feb-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Indexing API: Fully index implict template instantiations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150267 91177308-0d34-0410-b5e6-96231b3b80d8
ultiplexConsumer.h
|
f94d392847fb183b3012dbcb2e372b586c80b9fb |
09-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Kill the brief and full explanation fields from StaticDiagInfoRec. They were unused and wasted space for nothing. - per PR11952. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@150199 91177308-0d34-0410-b5e6-96231b3b80d8
rontendDiagnostic.h
|
6f42b62b6194f53bcbc349f5d17388e1936535d7 |
05-Feb-2012 |
Dylan Noblesmith <nobled@dreamwidth.org> |
Basic: import OwningPtr<> into clang namespace git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149798 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
hainedDiagnosticConsumer.h
hainedIncludesSource.h
ompilerInstance.h
rontendAction.h
ultiplexConsumer.h
extDiagnosticPrinter.h
erifyDiagnosticConsumer.h
|
90feede34bf8edb9ee417109c6b72bf96c3c8fb8 |
04-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Some compilers do require Diagnostic.h to be present here. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149785 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
2e033a7cc58f92c5351a66efc62e9e9253201c12 |
04-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Don't include Diagnostics.h twice when it's required zero times. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149784 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
9ec9ce17652819f6d291606fcf295abde2725894 |
04-Feb-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
ArrayRef goodness in MultiplexConsumer, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149764 91177308-0d34-0410-b5e6-96231b3b80d8
ultiplexConsumer.h
|
b3ca2637a9a3aeac5c7103eb4d612528680e7e20 |
04-Feb-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Use variable in place of multiple CI.getFrontendOpts() calls and use a bit of ArrayRef goodness. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149739 91177308-0d34-0410-b5e6-96231b3b80d8
rontendActions.h
|
71fd6cc843719cab528a5df0899ad3d15cb9297f |
03-Feb-2012 |
Bob Wilson <bob.wilson@apple.com> |
Fix -ftrap-function fallout from llvm r145714. <rdar://problem/10799325> That llvm change removed the -trap-func backend option, so that using -ftrap-function with clang would cause the backend to complain. Fix it by adding the trap function name to the CodeGenOptions and passing it through to the TargetOptions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149679 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
773303a505c23d73da624f1e6abcf41a393dad2b |
03-Feb-2012 |
Douglas Gregor <dgregor@apple.com> |
Rename -dependency-graphviz to -dependencncy-dot git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149645 91177308-0d34-0410-b5e6-96231b3b80d8
ependencyOutputOptions.h
|
c69a181049ab52da29f8f69316a34c90c3ea3b8e |
02-Feb-2012 |
Douglas Gregor <dgregor@apple.com> |
Introduce a -cc1 option "-dependency-graphviz" that determines header dependencies and outputs them in GraphViz format. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149575 91177308-0d34-0410-b5e6-96231b3b80d8
ependencyOutputOptions.h
tils.h
|
36579d4f5510e8eb823171f532d6b19ce4250a92 |
01-Feb-2012 |
Dylan Noblesmith <nobled@dreamwidth.org> |
Frontend: fix comment typos git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149495 91177308-0d34-0410-b5e6-96231b3b80d8
rontendAction.h
|
a1f1fad8b60e1cb9d21a40a37f2e03150bcbeb6f |
27-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Introduce module attributes into the module map grammar, along with a single attribute ("system") that allows us to mark a module as being a "system" module. Each of the headers that makes up a system module is considered to be a system header, so that we (for example) suppress warnings there. If a module is being inferred for a framework, and that framework directory is within a system frameworks directory, infer it as a system framework. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149143 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
rontendOptions.h
|
453dbcbe30093fbf947a0bec2fbd46e9694eafe9 |
26-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Extend the ExternalASTSource interface to allow the AST source to provide the layout of records, rather than letting Clang compute the layout itself. LLDB provides the motivation for this feature: because various layout-altering attributes (packed, aligned, etc.) don't get reliably get placed into DWARF, the record layouts computed by LLDB from the reconstructed records differ from the actual layouts, and badness occurs. This interface lets the DWARF data drive layout, so we don't need the attributes preserved to get the answer write. The testing methodology for this change is fun. I've introduced a variant of -fdump-record-layouts called -fdump-record-layouts-simple that always has the simple C format and provides size/alignment/field offsets. There is also a -cc1 option -foverride-record-layout=<file> to take the output of -fdump-record-layouts-simple and parse it to produce a set of overridden layouts, which is introduced into the AST via a testing-only ExternalASTSource (called LayoutOverrideSource). Each test contains a number of records to lay out, which use various layout-changing attributes, and then dumps the layouts. We then run the test again, using the preprocessor to eliminate the layout-changing attributes entirely (which would give us different layouts for the records), but supplying the previously-computed record layouts. Finally, we diff the layouts produced from the two runs to be sure that they are identical. Note that this code makes the assumption that we don't *have* to provide the offsets of bases or virtual bases to get the layout right, because the alignment attributes don't affect it. I believe this assumption holds, but if it does not, we can extend LayoutOverrideSource to also provide base offset information. Fixes the Clang side of <rdar://problem/10169539>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149055 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
ayoutOverrideSource.h
|
61d679ab2831b161c857cf3f974312fbd4ef1efd |
26-Jan-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce 3 new fixit options: -fixit-recompile applies fixits and recompiles the result -fixit-to-temporary applies fixits to temporary files -fix-only-warnings">, applies fixits for warnings only, not errors Combining "-fixit-recompile -fixit-to-temporary" allows testing the result of fixits without touching the original sources. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149027 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
26f0e4e7ab534fb42485c930f20a424ecc8c9830 |
26-Jan-2012 |
Fariborz Jahanian <fjahanian@apple.com> |
arc migrator: Added an option to the migrator unused yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@149001 91177308-0d34-0410-b5e6-96231b3b80d8
igratorOptions.h
|
5ac4b6917aa34fae6da64036539023a6155a3d48 |
25-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Rework the external Sema source's ReadMethodPool() so that it doesn't return pre-built lists. Instead, it feeds the methods it deserializes to Sema so that Sema can unique them, which keeps the chains shorter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148889 91177308-0d34-0410-b5e6-96231b3b80d8
hainedIncludesSource.h
|
b5c6babd3d8e0233b8ea5a4eb1e2700e30c0d396 |
25-Jan-2012 |
Fariborz Jahanian <fjahanian@apple.com> |
arc migrator: Provide infrastructure to add options specific to migrator. Use its first option to warn migrating from GC to arc when NSAllocateCollectable/NSReallocateCollectable is used. // rdar://10532541 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148887 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
igratorOptions.h
|
1db772bd68502e0dabbd8efeb7f7c64a4ab2e37a |
23-Jan-2012 |
Nick Lewycky <nicholas@mxc.ca> |
Add support for -fno-optimize-sibling-calls. Currently only implemented in the X86 backend in LLVM. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148689 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
1f6b2b5c82b2d2d3935b0db76352a04e9877b73f |
20-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Extract the (InputKind, std::string) pair used to describe inputs to the front end into its own class, FrontendInputFile, to make it easier to introduce new per-input data. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148546 91177308-0d34-0410-b5e6-96231b3b80d8
rontendAction.h
rontendOptions.h
|
7fe90f3bfa6bd7f779ecfd4ba201a296a3a1c8cb |
17-Jan-2012 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Make sure Preprocessor is set in ASTUnit during indexing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148319 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
752c74d99b647710a495c2ff5f815c30a30c3264 |
03-Jan-2012 |
Douglas Gregor <dgregor@apple.com> |
Add a "Modules" language option, which subsumes the previous "AutoModuleImport" preprocessor option and is tied to -fmodules. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147448 91177308-0d34-0410-b5e6-96231b3b80d8
reprocessorOptions.h
|
ffbe9b9c64ab2e94b9d48ec56e511f75826fc80a |
23-Dec-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Mass rename C1x references to C11. The name hasn't proliferated like "C++0x" so this patch is surprisingly small. Also drop -Wc1x-extensions in favor of -Wc11-extensions. I don't think we need to keep this around for compatibility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147221 91177308-0d34-0410-b5e6-96231b3b80d8
angStandard.h
angStandards.def
|
d217465128c7be70f74d3b4082355ea8c3b16fee |
23-Dec-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
C1X is now C11, add -std=c11 and -std=gnu11 as aliases for the c1x arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147220 91177308-0d34-0410-b5e6-96231b3b80d8
angStandards.def
|
8fdb6dee2da0dee97d64fe12eda46fb318414de9 |
23-Dec-2011 |
Dylan Noblesmith <nobled@dreamwidth.org> |
Let CompilerInvocation initialization indicate failure This fixes the FIXMEs in ParseAnalyzeArgs. (Also a precursor to moving the analyzer into an AST plugin.) For consistency, do the same with AssemblerInvocation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@147218 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
|
99ba9e3bd70671f3441fb974895f226a83ce0e66 |
20-Dec-2011 |
David Blaikie <dblaikie@gmail.com> |
Unweaken vtables as per http://llvm.org/docs/CodingStandards.html#ll_virtual_anch git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146959 91177308-0d34-0410-b5e6-96231b3b80d8
hainedDiagnosticConsumer.h
rontendAction.h
|
2a76410c0a23a6feb98d0f13e9c8bfa0638d3adf |
17-Dec-2011 |
Ted Kremenek <kremenek@apple.com> |
Refactor SerializeDiagnosticsPrinter to using DiagnosticRenderer. This gives us comparative diagnostics to TextDiagnosticPrinter. This certainly can be cleaned up a bit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146820 91177308-0d34-0410-b5e6-96231b3b80d8
erializedDiagnosticPrinter.h
|
2898d4f7648e6ed5e9047068f1e8ee2f3c2bcd75 |
17-Dec-2011 |
Ted Kremenek <kremenek@apple.com> |
Refactor 'TextDiagnostic' to have a parent class 'DiagnosticRenderer' which handles the policy of how diagnostics are lowered/rendered, while TextDiagnostic handles the actual pretty-printing. This is a first part of reworking SerializedDiagnosticPrinter to use the same inclusion-stack/macro-expansion logic as TextDiagnostic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146819 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticRenderer.h
extDiagnostic.h
|
08d6e032a2a0a8656d12b3b7b93942987bb12eb7 |
16-Dec-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
C++11 constexpr: Add note stacks containing backtraces if constant evaluation fails within a call to a constexpr function. Add -fconstexpr-backtrace-limit argument to driver and frontend, to control the maximum number of notes so produced (default 10). Fix APValue printing to be able to pretty-print all APValue types, and move the testing for this functionality from a unittest to a -verify test now that it's visible in clang's output. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146749 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
|
9f6d068b29ea2f6276f1105c71d9e768201f2b88 |
14-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
Per discussion on the list, remove BitcodeVerify pass to reimplement as a free function. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146530 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
ff7892758f1e46221b552486c1e329db92147ebc |
13-Dec-2011 |
Chad Rosier <mcrosier@apple.com> |
Add frontend flags to enable bitcode verifier pass. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146441 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
71088d1af241ad114294ec3fe03cd9baea39ee08 |
09-Dec-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Move ChainedIncludesSource into the Frontend library. This never really belonged in the Serialization library, it's setting up a compilation, not just deserializing. This should fix PR11512, making Serialization actually be layered below Frontend, a long standing layering violation in Clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146233 91177308-0d34-0410-b5e6-96231b3b80d8
hainedIncludesSource.h
|
cb381eac84e5a14a8c7e7654eadbe1d3d54d795c |
09-Dec-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Move a free function from the Frontend library into the Lex library as part of HeaderSearch. This function just normalizes filenames for use inside of a synthetic include directive, but it is used in both the Frontend and Serialization libraries so it needs a common home. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146227 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
29f2787b6da552018a7716f18f5bd8f67bd6edb5 |
07-Dec-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Make changes to SDiagsWriter to make it work in combination with the ARC migrator: -Allow it to be used with multiple BeginSourceFile/EndSourceFile calls; for this introduce a "finish" callback method in the DiagnosticConsumer. SDiagsWriter finishes up the serialization file inside this method. -Make it independent of any particular DiagnosticsEngine; make it use the SourceManager of the Diagnostic object. -Ignore null source ranges. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146020 91177308-0d34-0410-b5e6-96231b3b80d8
hainedDiagnosticConsumer.h
erializedDiagnosticPrinter.h
|
2e23fd561a3fa739936d9b8416f46aad19a05eb4 |
07-Dec-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Initialize these values, fixing the build in cases where stack realignment actually occurs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146013 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
b80a3869b419c94ad85d2a39041c59100691bb3e |
06-Dec-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove unused member to appease valgrind. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145956 91177308-0d34-0410-b5e6-96231b3b80d8
rontendActions.h
|
4e785c908ae01519d3592eae2828e2cc94fb02eb |
06-Dec-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Stack realignment is a tristate. Add -mno-stackrealign to turn off all stack realignment, even with locals with alignment exceeding the ABI guarantee. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145909 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
e9d11dbfe1f3286c5f8a2f2fc8ac759f63890655 |
06-Dec-2011 |
Joerg Sonnenberger <joerg@bec.de> |
Add -mstack-alignment=X and fix -mstackrealign handling now that the backend options are gone. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145868 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
93ebfa6139bbca4d446c7343e3afc8e5ec777484 |
03-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
When we treat an #include or #import as a module import, create an implicit ImportDecl in the translation unit to record the presence of the import. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145727 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
|
5e35693721364673f8196e4f5a370f56b92e6053 |
01-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce the notion of name visibility into modules. For a given (sub)module, all of the names may be hidden, just the macro names may be exposed (for example, after the preprocessor has seen the import of the module but the parser has not), or all of the names may be exposed. Importing a module makes its names, and the names in any of its non-explicit submodules, visible to name lookup (transitively). This commit only introduces the notion of name visible and marks modules and submodules as visible when they are imported. The actual name-hiding logic in the AST reader will follow (along with test cases). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145586 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
|
8374eda250c1cf6aede92eca289759f5e0a6c308 |
01-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Another GCC fix git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145542 91177308-0d34-0410-b5e6-96231b3b80d8
rontendActions.h
|
1a4761edca58c6b559de825b9abfb66f7f1ba94a |
01-Dec-2011 |
Douglas Gregor <dgregor@apple.com> |
Promote ModuleMap::Module to a namespace-scope class in the Basic library, since modules cut across all of the libraries. Rename serialization::Module to serialization::ModuleFile to side-step the annoying naming conflict. Prune a bunch of ModuleMap.h includes that are no longer needed (most files only needed the Module type). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145538 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
rontendActions.h
|
392ed2b717d86ebdd202cb9bb58d18d8b3b4cd87 |
30-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Implement (de-)serialization of the description of a module and its submodules. This information will eventually be used for name hiding when dealing with submodules. For now, we only use it to ensure that the module "key" returned when loading a module will always be a module (rather than occasionally being a FileEntry). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145497 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
a8cc6ce36e70e2afa22ab6b4340035cb3941c2eb |
30-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
When writing a module file, pass the module through to the AST writer. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145479 91177308-0d34-0410-b5e6-96231b3b80d8
rontendActions.h
|
b514c792821a8f053027d88444e13bfaa8efef76 |
30-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Teach the preprocessor how to handle module import declarations that involve submodules (e.g., importing std.vector), rather than always importing the top-level module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145478 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
49009ec701feb3009450e57e40c656e2ad7c1f41 |
30-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
When loading a module that involves submodules (e.g., std.vector), check whether the named submodules themselves are actually valid, and drill down to the named submodule (although we don't do anything with it yet). Perform typo correction on the submodule names when possible. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145477 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
3d3589db579f7695667b913c5043dd264ebe546f |
30-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Switch the module-loading interfaces and parser from a simple top-level module name to a module path (e.g., std.vector). We're still missing a number of pieces for this actually to do something. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145462 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
|
6649014b792f8a4b1bc1e8be8f844a72220af508 |
29-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Eliminate the -emit-module option, which emitted a module by parsing a source file (e.g., a header). Immediately steal this useful option name for building modules from a module map file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145444 91177308-0d34-0410-b5e6-96231b3b80d8
rontendActions.h
rontendOptions.h
|
6f3ce979a7748fd117e6473d6272b16d643b6262 |
28-Nov-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Indexing API: If the client requested to get a CXTranslationUnit after indexing, honor all the TU options. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145229 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ultiplexConsumer.h
|
991bf49f68e8caeb900dd9738712b861073363d9 |
28-Nov-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Indexing API: Capture diagnostics during indexing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145228 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
b61968857fd2c6579b4dcd7bad65736e89d21185 |
22-Nov-2011 |
Kostya Serebryany <kcc@google.com> |
implement __has_feature(address_sanitizer); also use LangOpts.AddressSanitizer instead of CodeGenOpts.AddressSanitizer git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@145054 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
8a0c5c2ec5c5496cfb01d2c86bd50991866a7356 |
18-Nov-2011 |
Ted Kremenek <kremenek@apple.com> |
Refine placement of LangOptions object in CompilerInvocation by adding a new baseclass CompilerInvocationBase with a custom copy constructor. This ensures that whenever the CompilerInvocation object's copy constructor is used we always clone the LangOptions object. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144973 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
|
88c2596edc8eb475e20f6033de1ea01669695a0c |
18-Nov-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Change ASTConsumer::HandleTopLevelDecl to return true for the parser to continue parsing or false to abort parsing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144943 91177308-0d34-0410-b5e6-96231b3b80d8
ultiplexConsumer.h
|
d3b74d9ca4f239a7a90ad193378c494306c57352 |
18-Nov-2011 |
Ted Kremenek <kremenek@apple.com> |
Make 'LangOptions' in CompilerInvocation a heap-allocated, reference counted object. I discovered that llvm::RefCountedBase<T> has a bug where the reference count is copied in the copy constructor, which means that there were cases when the CompilerInvocation objects created by ASTUnit were actually leaked. When I fixed that bug locally, it showed that a whole bunch of code assumed that the LangOptions object that was part of CompilerInvocation was still alive. By making it heap-allocated and reference counted, we can keep it around after the CompilerInvocation object goes away. As part of this change, change CompilerInvocation:getLangOptions() to return a pointer, acting as another clue that this object may outlive the CompilerInvocation object. This commit doesn't fix the CompilerInvocation leak itself. That will come when I commit the fix to llvm::RefCountedBase<T> to mainline LLVM. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144930 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
ompilerInvocation.h
|
1b4eca67e073f0beefb9924cbe6c65427869f1fa |
16-Nov-2011 |
Kostya Serebryany <kcc@google.com> |
Add -f[no-]address-sanitizer flag git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144800 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
db1cde7dc7bb3aaf48118bd9605192ab94a93635 |
16-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Add support for building a module from a module map to the -cc1 interface. This is currently limited to modules with umbrella headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144736 91177308-0d34-0410-b5e6-96231b3b80d8
rontendActions.h
rontendOptions.h
|
d2536a604f59a3cca491f175bf1e49eeca49163b |
15-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Revert r144703. It was a dumb idea anyway; will add the new bits more incrementally with a new frontend action. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144723 91177308-0d34-0410-b5e6-96231b3b80d8
rontendActions.h
|
b8691df825c99b0fc989fcd92a008d2500ff2e37 |
15-Nov-2011 |
Douglas Gregor <dgregor@apple.com> |
Split GenerateModuleAction into its own action, which will start differing from GeneratePCHAction fairly soon. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144703 91177308-0d34-0410-b5e6-96231b3b80d8
rontendActions.h
|
153221717e39ce41323d5bc6b8b8bf130923c1bd |
10-Nov-2011 |
Ted Kremenek <kremenek@apple.com> |
serialized diagnostics: implement full deserialization of clang diagnostics via the libclang API. I've tested it on simple cases and it works. Test cases to follow as well as a few tweaks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144269 91177308-0d34-0410-b5e6-96231b3b80d8
erializedDiagnosticPrinter.h
|
ba243b59a1074e0962f6abfa3bb9aa984eac1245 |
09-Nov-2011 |
David Blaikie <dblaikie@gmail.com> |
Fixing 80 col violations (& removing any trailing whitespace on files I was touching anyway) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144171 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
0b69aa856308f6b35f8b96ef269a482558f2966b |
08-Nov-2011 |
Ted Kremenek <kremenek@apple.com> |
serialized diagnostics: serialize the version info in a separate meta block. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144115 91177308-0d34-0410-b5e6-96231b3b80d8
erializedDiagnosticPrinter.h
|
ac2bc4d220a6263be96b943e9162f4a11149e26d |
05-Nov-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Add two flags to the CC1 layer that I was hoping to avoid. We need to encode the *exact* semantics which the header search paths internally built by the Frontend layer have had, which is both non-user-provided, and at times adding the implicit extern "C" bit to the directory entry. There are lots of CC1 options that are very close, but none do quite this, and they are all already overloaded for other purposes. In some senses this makes the command lines more clean as it clearly indicates which flags are exclusively used to implement internal detection of "standard" header search paths. Lots of the implementation of this is really crufty, due to the surrounding cruft. It doesn't seem worth investing lots of time cleaning this up as it isn't new, and hopefully *lots* of this code will melt away as header search inside of the frontend becomes increasingly trivial. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143798 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
|
96dcadec26244e028d59287ea1b249802c8fc2bc |
05-Nov-2011 |
Ted Kremenek <kremenek@apple.com> |
serialized diagnostics: include FixIt information in serialized diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143776 91177308-0d34-0410-b5e6-96231b3b80d8
erializedDiagnosticPrinter.h
|
0d34e6ebd9d8b6e97106e12c13c6057f9829b946 |
05-Nov-2011 |
Ted Kremenek <kremenek@apple.com> |
serialized diagnostics: pull emission of filenames into diagnostic block. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143765 91177308-0d34-0410-b5e6-96231b3b80d8
erializedDiagnosticPrinter.h
|
2a20b4fac5d06e2afc4980e7ef1b659c39c27c7b |
05-Nov-2011 |
Ted Kremenek <kremenek@apple.com> |
serialized diagnostics: emit source ranges. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143762 91177308-0d34-0410-b5e6-96231b3b80d8
erializedDiagnosticPrinter.h
|
fdd0ced001babd4e65fb909cc2f847df53faf764 |
05-Nov-2011 |
Ted Kremenek <kremenek@apple.com> |
Move definition of record/block IDs for serialized diagnostics to public header. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143761 91177308-0d34-0410-b5e6-96231b3b80d8
erializedDiagnosticPrinter.h
|
dfb332d0081c6641d1dbae6a2aeff757c99cc740 |
03-Nov-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Add infrastructure to be able to only deserialize decls in a file region and use it for clang_getCursor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143605 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
62ba9f61af6177992d8cd2e3306257e1213b1bd3 |
01-Nov-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Put a reference of the ASTReader in the ASTUnit. This is intended for direct access of the ASTReader for uses that make little sense to try to shoehorn in the ExternalASTSource interface. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143465 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
332cb9be88fd2d1b294a2fbc299c354e93be673c |
31-Oct-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Have the ASTUnit associate the local declarations that get parsed with the file that contains them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143338 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
22a7dfea585703d6755db69b83e29a0e6ee10369 |
30-Oct-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Add support for lazily linking bitcode files (using a new -mlink-bitcode-file flag), and more generally llvm::Modules, before running optimisations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143314 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
7800212ef29be314d55814e8dcc568ff8beed106 |
29-Oct-2011 |
Ted Kremenek <kremenek@apple.com> |
Start work on SerializedDiagnosticPrinter, a new DiagnosticConsumer that serializes out the diagnostics for a given translation unit to a bit code file. This is a WIP. The motivation for this new DiagnosticConsumer is to provide a way for tools invoking the compiler to get its diagnostics via a libclang interface, rather than textually parsing the compiler output. This gives us flexibility to change the compiler's textual output, but have a structured data format for clients to use to get the diagnostics via a stable API. I have no tests for this, but llvm-bcanalyzer so far shows that the emitted file is well-formed. More work to follow. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143259 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
erializedDiagnosticPrinter.h
|
1872b3153a388b3a548c9f699cbc348128059be9 |
27-Oct-2011 |
Ted Kremenek <kremenek@apple.com> |
Move ASTUnit's handling of temporary files and the preamble file into a lazily-created static DenseMap. This DenseMap is cleared (and the files erased) via an atexit routine in the case an ASTUnit is not destroyed. Fixes <rdar://problem/10293367>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@143115 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
f226ff9fe8c8db6c5b74a61ce649eda1491c3502 |
25-Oct-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[PCH] When visiting preprocessed entities, make it possible to avoid deserializing preprocessed entities that are #included in the range that we are interested. This is useful when we are interested in preprocessed entities of a specific file, e.g when we are annotating tokens. There is also an optimization where we cache the last result of PreprocessingRecord::getPreprocessedEntitiesInRange and we re-use it if there is a call with the same range as before. rdar://10313365 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142887 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
3e9d32656a8a3a787f64f9beeef66d2d700eb85d |
24-Oct-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Make sure we don't try to erase past the StoredDiagnostics vector. Ted came upon the bug but I couldn't make a test out of it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142805 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
7c4fd9121f5885096fd3258d20a984e3f08f8603 |
21-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Take DW_AT_comp_dir from $PWD when it's present and starts with a '/'. This is closer to what GCC does, except that GCC also checks that the inodes for $PWD and '.' match. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142633 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
ea523d73a6de06f828952a02f5ff86e4cc631695 |
18-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Wire up support for the controlling the extended dwarf .file directive. With r142300 but not this patch, clang -S may emit .s files that assemblers other than llvm-mc can't parse. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142301 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
05edf668f0984bfa2994ddc8bb7b78d9fb24cf11 |
17-Oct-2011 |
Douglas Gregor <dgregor@apple.com> |
When building a module, use the macro definitions on the command line as part of the hash rather than ignoring them. This means we'll end up building more module variants (overall), but it allows configuration macros such as NDEBUG to work so long as they're specified via command line. More to come in this space. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142187 91177308-0d34-0410-b5e6-96231b3b80d8
reprocessorOptions.h
|
4ba55659982bf45eedc9d32851815e5c4b6d8460 |
16-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Now that the structure of this is more reasonably laid out, fix a long standing deficiency: we were providing no macro backtrace information whenever caret diagnostics were turned off. This sinks the logic for suppressing the code snippet and caret to the code that actually prints tho code snippet and caret. Along the way, clean up the naming of functions, remove some now fixed FIXMEs, and generally improve the wording and logic of this process. Add a test case exerecising this functionality. It is notable that the resulting messages are extremely low quality. I'm working on a follow-up patch that should address this and have left a FIXME in the test case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142120 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnostic.h
|
2ed3495278c13802a3d85578ab20560dcb0ef270 |
16-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Add proper doxyments to the entry point routine, and remove a dead parameter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142109 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnostic.h
|
21a869aace45586125238fde88c477b330618a0b |
16-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Persist the TextDiagnostic object across multiple diagnostics as long as the SourceManager doesn't change, and the source files don't change. This greatly simplifies the interfaces and interactions. The lifetime of the TextDiagnostic object forms the 'session' over which we attempt to condense and deduplicate information in diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142104 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnostic.h
extDiagnosticPrinter.h
|
7531f571808201d44002fa38b67ee0a81e5ae936 |
16-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Clean up the names of all the TextDiagnostic methods (and even a static function) to agree with the coding conventions, and in one case have a bit more information in it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142088 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnostic.h
|
6ddd8871c07ab161742e8ed37d3ef121ac79fa59 |
16-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Move two functions out of the public interface that shouldn't have ever been there. Also delete their redundant doxyments in favor of those in the source file. I'm putting the doxyments for private and static helpers into the implementation file, and only the public interface doxyments into the header. If folks have strong opinions about this type of split, feel free to chime in, I'm happy to re-organize. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142087 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnostic.h
|
db463bb2e4a9751f4cbe53996db751e1985ee966 |
16-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Graduate the TextDiagnostic interface to its own header and source file, making it accessible to anyone from the Frontend library. Still a good bit of cleanup to do here, but its a good milestone. This ensures that *all* of the functionality needed to implement the DiagnosticConsumer is exposed via the generic interface in some form. No sneaky re-use of static functions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142086 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnostic.h
|
03efd2efeeafc97db9a956df8c6ab88fbb6160da |
16-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Rationalize the last bit of "arbitrary" state that is carried between diagnostics to control suppression of redundant information. It now follows the same model as all the other state, and has a bit more clear semantics. This is making the duality of the state a bit annoying, and I've added a FIXME to resolve it. The problem is that I need to lift the TextDiagnostic up into an externally visible layer before that can happen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142083 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
d614040a678c994b0171234e7f5f9cf61e9f86fe |
15-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Neither 'Warning' nor 'NonNote' was a good name for this location... It's the last include-stack-root we tried to walk up. Use a better name and better doxyments for it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142071 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
cae9ab1a8af46643f8cf89399c9ccfb28fba0c36 |
15-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Sink the include stack printing into the generic text diagnostic utility. This is a particularly nice win because it removes a pile of parameters from these routines. Also name them a bit better. I'm trying to follow the pattern of 'emit' routines writing directly to what is expected to be the final output, while 'print' routines take a output stream argument and can be used to build up intermediate buffers, etc. Also, fix a bug I spotted by inspection from my last commit where 'LastLoc' and 'LastNonNoteLoc' were reversed. It's really scary that this didn't trigger a single test failure. Will be working on tests for more of this functionality now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142069 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
f54a61454e548fff63d6ce5700ecc2958297207e |
15-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Rationalize some of how the locations of prior diagnostics are tracked across emissions. 1) The include stack printing is conditioned on non-note diagnostics, not just on warning diagnostics. 2) Those should be full source locations as they're tied to a source manager. 3) We should pass in the prior state to the TextDiagnostic constructor, allow it to mutate as diagnostics are emitted, and then cache the final state before tearing it down. Some of this remains incomplete, specifically #3 isn't finished for the non-note location. That'll come when the include stack printing sinks down a level. This also highlights how *completely* bug-ridden this code is. For example, we currently do all these comparisons of a FullSourceLoc and a SourceLocation... which silently does a SourceLocation to SourceLocation comparison, completely disregarding the source manager from whence one of the arguments came. Oops! Good thing in practice this wasn't important, but it could in theory be suppressing caret diagnostics in a second TU on a single clang invocation. I'm hoping to hammer these bugs out as the refactorings occur, although for so many of them it's really unlikely I can dream up a test case that would show the potentially buggy behavior. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142067 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
9ed3066cfe4545acec30aff63581d1a7b5c88128 |
15-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Sink the EmitDiagnosticLoc method down to the generic TextDiagnostic interface now that its only caller is there. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142065 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
60e4a2a5e9bf534e106b0c2553d06e06c3d07794 |
15-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Sink the non-caret diagnostic logic down and out of the diagnostic consumer. The TextDiagnostic interface now has a generic entry point for emitting a diagnostic which uses a minimal interface that should be compatible with StoredDiagnostics such as are available in libclang etc. Some unfortunate shuffling of static functions as things get relocated. Also some unfortunate public interface points added to TextDiagnosticPrinter, but those are the next bits to get moved so they won't last long. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142064 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
55c611021e771a816e6e3679928439f667f12eb9 |
15-Oct-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Simplify the interface of a helper method in the TextDiagnosticPrinter to operate directly on the source location and ranges associated with a diagnostic rather than digging them out of the diagnostic. This had a side benefit of cleaning up its code a tiny bit by using the ArrayRef interface. No functionality changed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142063 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
abb5afadd11b19568359880faa5d966a4e33551c |
14-Oct-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Allow calling ASTUnit::LoadFromCompilerInvocationAction with a previously created ASTUnit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@142004 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
78f0ea710875425d501a4736565b3a34cf1840c8 |
14-Oct-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Add support for -std=gnu90 and -std=c++03, for compatibility with modern gcc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141922 91177308-0d34-0410-b5e6-96231b3b80d8
angStandards.def
|
312fb51f0aefc83ca4a774e9019180bc86b1b45d |
12-Oct-2011 |
Douglas Gregor <dgregor@apple.com> |
Add -std=c++11 and -std=gnu++11 language flags, from Ahmed Charles git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141785 91177308-0d34-0410-b5e6-96231b3b80d8
angStandards.def
|
a268fc0f2229eb132ebc8501b140093aeb5516bf |
11-Oct-2011 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Replace -nostdinc by -nostdsysteminc (which is just system include paths). The -nostdinc behavior is now -nostdsysteminc + -nobuiltininc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141691 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
|
a696ece1ac449a2b77e7c0a693b55cb10e9e2068 |
10-Oct-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] Implement ConcurrencyCheck using a recursive mutex to allow re-entrancy in the same thread. The checks are performed only in DEBUG, it becomes no-op in release mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141582 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
d51e43af0b3a6897b971f316c4de2035ec82d1f2 |
06-Oct-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
CUDA: add -fcuda-is-device flag This frontend-only flag is used by the IR generator to determine whether to filter CUDA declarations for the host or for the device. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141301 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
d30952838421ddfb9f7e346b2ba8213889a5f789 |
30-Sep-2011 |
Anna Zaks <ganna@apple.com> |
[analyzer] Add -analyzer-purge option which can take on multiple values, remove -analyzer-purge=none. (Small refactor as well: move the work of constructing AnalysisManager from the callers to the class itself.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140838 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
nalyzerOptions.h
|
aee526e77657afd1600276450e9c346953ad51d7 |
29-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce a pure virtual clone() method to DiagnosticConsumer, so that we have the ability to create a new, distict diagnostic consumer when we go off and build a module. This avoids the currently horribleness where the same diagnostic consumer sees diagnostics for multiple translation units (and multiple SourceManagers!) causing all sorts of havok. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140743 91177308-0d34-0410-b5e6-96231b3b80d8
hainedDiagnosticConsumer.h
ompilerInstance.h
ogDiagnosticPrinter.h
extDiagnosticBuffer.h
extDiagnosticPrinter.h
erifyDiagnosticConsumer.h
|
4213df3b5da21ce25a4541ca5c447eeb28b515a3 |
29-Sep-2011 |
Daniel Dunbar <daniel@zuster.org> |
Basic/Diagnostics: Split out the default warning "no-Werror" and "show-in-system-header" bits, which is part of teasing them apart from the diagnostic mapping kind. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140742 91177308-0d34-0410-b5e6-96231b3b80d8
rontendDiagnostic.h
|
ee0f84fc84ed7de7975e102668d8e53a778f7a8c |
26-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Don't map a file:line:col triplet that is inside the preamble range to a "loaded" location of the precompiled preamble. Instead, handle specially locations of preprocessed entities: -When looking up for preprocessed entities, map main file locations inside the preamble range to a preamble loaded location. -When getting the source range of a preprocessing cursor, map preamble loaded locations back to main file locations. Fixes rdar://10175093 & http://llvm.org/PR10999 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140519 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
40847cfb58acc3cac7d68727df9455ac45f2e118 |
26-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Rename DiagnosticInfo to Diagnostic as per issue 5397 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140493 91177308-0d34-0410-b5e6-96231b3b80d8
hainedDiagnosticConsumer.h
ogDiagnosticPrinter.h
extDiagnosticBuffer.h
extDiagnosticPrinter.h
erifyDiagnosticConsumer.h
|
ef3643fbbbf66247c5e205497fae0f46e240c143 |
26-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Rename PathDiagnosticClient to PathDiagnosticConsumer as per issue 5397 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140492 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
621bc69624599da62abd9bc9e5edd8a63ac99fe6 |
26-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Rename VerifyDiagnosticsClient to VerifyDiagnosticConsumer as per issue 5397 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140489 91177308-0d34-0410-b5e6-96231b3b80d8
erifyDiagnosticConsumer.h
erifyDiagnosticsClient.h
|
4e85b8ae413fa00fa42aa3e625c2db3b1932f8d3 |
26-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Rename ChainedDiagnosticClient to ChainedDiagnosticConsumer as per issue 5397 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140485 91177308-0d34-0410-b5e6-96231b3b80d8
hainedDiagnosticClient.h
hainedDiagnosticConsumer.h
|
78ad0b98848c17a0a11847fa1d456e2dfec8aa2f |
26-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Rename DiagnosticClient to DiagnosticConsumer as per issue 5397 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140479 91177308-0d34-0410-b5e6-96231b3b80d8
hainedDiagnosticClient.h
ompilerInstance.h
ogDiagnosticPrinter.h
extDiagnosticBuffer.h
extDiagnosticPrinter.h
erifyDiagnosticsClient.h
|
d6471f7c1921c7802804ce3ff6fe9768310f72b9 |
26-Sep-2011 |
David Blaikie <dblaikie@gmail.com> |
Rename Diagnostic to DiagnosticsEngine as per issue 5397 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140478 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
STUnit.h
nalyzerOptions.h
hainedDiagnosticClient.h
ompilerInstance.h
ompilerInvocation.h
iagnosticOptions.h
ogDiagnosticPrinter.h
extDiagnosticBuffer.h
extDiagnosticPrinter.h
tils.h
erifyDiagnosticsClient.h
|
026cb7604c8ef0bc7032e4c067500907d03b67a3 |
26-Sep-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Inline this method now that its completely trivial, and prepare for hoisting parts of the text diagnostic. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140477 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
8be5c159df96c88880a50086a41efc86b89a46a4 |
26-Sep-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Actually remove the members of CaretDiagnostic no longer in use for tracking the start and stop of macro expansion suppression. Also remove the Columns variable which was just a convenience variable based on DiagOpts. Instead we materialize it in the one piece of code that cared. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140475 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
b9c398b25b9c24769fb30b90c3805a500806e06f |
26-Sep-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Sink the logic for suppressing some macro expansion notes from the TextDiagnosticPrinter into the CaretDiagnostic class. Several interesting results from this: - This removes a significant per-diagnostic bit of state from the CaretDiagnostic class, which should eventually allow us to re-use the object. - It removes a redundant recursive walk of the macro expansion stack just to compute the depth. We don't need the depth until we're unwinding anyways, so we can just mark when we reach it. - It also paves the way for several simplifications we can do to how we implement the suppression. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140474 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
47adebef0df6dce752fe9a45e9190e8005b5d07c |
22-Sep-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Add support for CPATH and friends. This moves the existing code for CPATH into the driver and adds the environment lookup and path splitting there. The paths are then passed down to cc1 with -I options (CPATH), added after the normal user-specified include dirs. Language specific paths are passed via -LANG-isystem and the actual filtering is performed in the frontend. I tried to match GCC's behavior as close as possible Fixes PR8971. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140341 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
|
92ddef1bf843e1e18c040d69f48a6bf0bc7c776a |
19-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
In libclang, when visiting preprocessed entities in a source range, use PreprocessingRecord's getPreprocessedEntitiesInRange. Also remove all the stuff that were added in ASTUnit that are unnecessary now that we do a binary search for preprocessed entities and deserialize only what is necessary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140063 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
507097ec40105ed927cb5a744fad98f5875aacac |
19-Sep-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[libclang] When getting a source location from a file:line:col triplet check whether the requested location points inside the precompiled preamble, in which case the returned source location will be a "loaded" one. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@140060 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
fba18aa8f2cd1994dc65e8cb9f4be201c560dc0b |
16-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Add an experimental flag -fauto-module-import that automatically turns #include or #import direcctives of framework headers into module imports of the corresponding framework module. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139860 91177308-0d34-0410-b5e6-96231b3b80d8
reprocessorOptions.h
|
4ebd45f4279d84416568ada6adf56044bdf391b7 |
15-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Detect cyclic module dependencies in a manner that is rather more graceful than running out of stack space. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139833 91177308-0d34-0410-b5e6-96231b3b80d8
reprocessorOptions.h
|
7489889dd4e0fb5cd4b4176c59283da3b217f14e |
15-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Eliminate the list of modules from the preprocessor options. This was used back when we had an -import-module command-line option, but it's no longer used (or useful). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139829 91177308-0d34-0410-b5e6-96231b3b80d8
reprocessorOptions.h
|
531dcce3e5f5d5234520df7593e285d7dd007456 |
15-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Eliminate the unused -create-module cc1-level option git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139827 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
6e975c4517958bcc11c834336d340797356058db |
14-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
For modules, use a hash of the compiler version, language options, and target triple to separate modules built under different conditions. The hash is used to create a subdirectory in the module cache path where other invocations of the compiler (with the same version, language options, etc.) can find the precompiled modules. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139662 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
eaderSearchOptions.h
reprocessorOptions.h
|
1c7e0472f5683a8ade62285f366637050cf113e5 |
13-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
When building a module on-demand, clear out the "non-modular" language and preprocessor options (such as macro definitions) first. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139638 91177308-0d34-0410-b5e6-96231b3b80d8
reprocessorOptions.h
|
78243658c533168d51fd076fba328437932ba6f1 |
13-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
When compiling a module on-demand, re-use the diagnostics client already provided. This required a little bit of clean-up in the way that VerifyDiagnosticsClient managed ownership of its underlying "primary" client, because now it will no longer always take ownership. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139570 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
erifyDiagnosticsClient.h
|
9a6da6930644b4f2dbe4885b0eb4fc1274ff56a4 |
12-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce a cc1-level option to provide the path to the module cache, where the compiler will look for module files. Eliminates the egregious hack where we looked into the header search paths for modules. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139538 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
|
08e0bc16b3312c27e87d33be7dcf3d4fe5bdd2e2 |
10-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Kill of the Decl::PCHLevel field entirely. We now only need to know whether a Decl was deserialized from an AST file (any AST file). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139438 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
5770bb707db9169c258859a9e7c935f99a32d64c |
07-Sep-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Extract the emission of the diagnostic's location into a separate function. This is really the beginning of the second phase of refactorings here. The end goal is to have (roughly) three interfaces: 1) Base class to format a single diagnostic suitable for display on the console. 2) Extension of the base class which also displays a caret diagnostic suitable for display on the console. 3) An adaptor that implements the DiagnosticClient by delegating to #1 and/or #2 as appropriate. Once we have these, things like libclang's formatDiagnostic can use #1 and #2 to provide really well formatted (and consistently formatted!) textual formatting of diagnostics. Getting there is going to be quite a bit of shuffling. I'm basically sketching out where the interface boundaries can be drawn for #1 and #2 within the existing classes. That lets me shuffle with a minimum of fuss and delta. Once that's done, and any of the related interfaces that need to change are updated, I'll hoist these into separate headers and re-implement libclang in terms of their interfaces. Long WIP, but comments at each step welcome. =D git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139228 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
6c57ccec994f09d732a381bb4bb16c79d181e5ac |
07-Sep-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Move the HilightRange method from TextDiagnosticPrinter down to CaretDiagnostic. It's completely generic, with nothing to do with the diagnostic client or info APIs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139227 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
5182a1858f4483c7289997d365ba3e103cd7d1b7 |
07-Sep-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Switch the CharSourceRange array to a small vector. The array was a stack array of a magical size with an assert() that we never overflowed it. That seems incredibly risky. We also have a very nice API for bundling up a vector we expect to usually have a small size without loss of functionality or security if the size is excessive. The fallout is to remove the last pointer+size parameter pair that are traced through the recursive caret diagnostic emission. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139217 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
8a7b3f73d06a7181f2228d1605235b1b5484255f |
07-Sep-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Use ArrayRef for the fixit hint array rather than a pointer and a size. Clean up loops over the hints to use the more idiomatic iterator form in LLVM and Clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@139195 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
3e3cd93b2fd9644e970c389e715c13883faf68b6 |
01-Sep-2011 |
Douglas Gregor <dgregor@apple.com> |
Teach ASTContext and Preprocessor to hold on to references to the same LangOptions, rather than making distinct copies of LangOptions. Granted, LangOptions doesn't actually get modified, but this will eventually make it easier to construct ASTContext and Preprocessor before we know all of the LangOptions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138959 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
50c909bd837f00265034d876736e2db47686be38 |
01-Sep-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Create a CaretDiagnostic class to hold the logic for emitting (unsurprisingly) caret diagnostics. This is designed to bring some organization to the monstrous EmitCaretDiagnostic function, and allow factoring it more easily and with less mindless parameter passing. Currently this just lifts the existing function into a method, and splits off the obviously invariant arguments to be class members. No functionality is changed, and there are still lots of warts to let existing code continue functioning as-is. Definitely WIP, more cleanups to follow. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138921 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
831c6313dfa36f297094cd593a9dd3cb60649362 |
27-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Remove the -import-module option. It's no longer useful git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138681 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
6aa52ec6b969faabf3764baf79d89810b8249a7e |
27-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce support for a simple module import declaration, which loads the named module. The syntax itself is intentionally hideous and will be replaced at some later point with something more palatable. For now, we're focusing on the semantics: - Module imports are handled first by the preprocessor (to get macro definitions) and then the same tokens are also handled by the parser (to get declarations). If both happen (as in normal compilation), the second one is redundant, because we currently have no way to hide macros or declarations when loading a module. Chris gets credit for this mad-but-workable scheme. - The Preprocessor now holds on to a reference to a module loader, which is responsible for loading named modules. CompilerInstance is the only important module loader: it now knows how to create and wire up an AST reader on demand to actually perform the module load. - We search for modules in the include path, using the module name with the suffix ".pcm" (precompiled module) for the file name. This is a temporary hack; we hope to improve the situation in the future. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138679 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
|
1b9060553221720152e12981109549e0a1d8e3a1 |
26-Aug-2011 |
Chad Rosier <mcrosier@apple.com> |
[driver] Add -mglobal-merge/-mno-global-merge machine options to enable/disable merging of globals during codegen. Fixes <rdar://problem/10017909>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138612 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
b5af843a20e237ad1a13ad66a867e200695b8c8e |
26-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Eliminate the -chained-pch flag and all of the frontend and libclang options associated with it. Chained PCH is the only way to build a PCH file that includes another PCH file git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138597 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
rontendOptions.h
|
9293ba8e26fcba18505b273ecc9b66645133fcce |
26-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Remove the Chaining argument from the PCH/module generator. It's no longer used git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138596 91177308-0d34-0410-b5e6-96231b3b80d8
rontendActions.h
|
467dc88512b4ba4bb16e274ea3771dc1415d31da |
26-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce a -cc1 option "-emit-module", that creates a binary module from the given source. -emit-module behaves similarly to -emit-pch, except that Sema is somewhat more strict about the contents of -emit-module. In the future, there are likely to be more interesting differences. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@138595 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
rontendAction.h
rontendActions.h
rontendOptions.h
|
e95b9198b8b70ce0219cfb89483b41102e02dbf5 |
17-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
In the AST file format, eliminate the CHAINED_METADATA record. Instead, all AST files have a normal METADATA record that has the same form regardless of whether we refer to a chained PCH or any other kind of AST file. Introduce the IMPORTS record, which describes all of the AST files that are imported by this AST file, and how (as a module, a PCH file, etc.). Currently, we emit at most one entry to this record, to support chained PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@137869 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
e735e2deb9e57d9b62c1258ee236ccfeba8e84b2 |
06-Aug-2011 |
Jonathan D. Turner <jonathan.d.turner@gmail.com> |
Wire up -import-module to run ReadAST for each module loaded. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136987 91177308-0d34-0410-b5e6-96231b3b80d8
reprocessorOptions.h
|
8fa0a80b4482ad94e82c4a19e23de17fd69140b5 |
04-Aug-2011 |
Douglas Gregor <dgregor@apple.com> |
Add a new libclang API to return a CXCompletionString for an arbitrary cursor, from Connor Wakamo! Addresses <rdar://problem/9087798>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136911 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
a4c7a4314ffbe402091695874e93d9b0a79c8099 |
29-Jul-2011 |
Ted Kremenek <kremenek@apple.com> |
Really remove FlatStoreManager and BasicStoreManager, this time from the driver. Also remove associated tests. Sorry for the messy commits; this is the result of a botched Git merge. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136422 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
nalyzerOptions.h
|
65e02fa80e1c185f18e5f81cefc30d75383a7301 |
28-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce the "-index-header-map" option, to give special semantics for quoted header lookup when dealing with not-yet-installed frameworks. Fixes <rdar://problem/9824020>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136331 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
|
7e90985df09855dc309ed888a5b16a0ae684f8e3 |
28-Jul-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Cut down the number of open/close system calls for output files. For PCH files, have only one open/close for temporary + rename to be safe from race conditions. For all other output files open/close the output file directly. Depends on llvm r136310. rdar://9082880 & http://llvm.org/PR9374. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@136315 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
01231610bc89a8d3ae1bdfee0063af9386fd82a4 |
25-Jul-2011 |
Axel Naumann <Axel.Naumann@cern.ch> |
Pick up expected diagnostics not only in the main file but also in the file where the first diagnostic occurred. Useful if the main file is not relevant (like with cling). By Vassil Vassilev. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135936 91177308-0d34-0410-b5e6-96231b3b80d8
erifyDiagnosticsClient.h
|
2d3ba4f5a923a90c3fc290ddfba5e36c2d0a9b46 |
23-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
Move ArrayRef to LLVM.h and eliminate now-redundant qualifiers, patch by Jon Mulder! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135855 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
db999aad8a1b9dc265b2e627be334be6580a86a3 |
20-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
remove some now-redundant forward declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135578 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
ompilerInvocation.h
rontendAction.h
|
8cc488fefb2fb04bc8d5398da29f0182f97934cf |
20-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
add raw_ostream and Twine to LLVM.h, eliminating a ton of llvm:: qualifications. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135577 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
STUnit.h
ompilerInstance.h
rontendActions.h
ogDiagnosticPrinter.h
extDiagnosticPrinter.h
tils.h
|
686775deca8b8685eb90801495880e3abdd844c2 |
20-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
now that we have a centralized place to do so, add some using declarations for some common llvm types: stringref and smallvector. This cleans up the codebase quite a bit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135576 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ommandLineSourceLoc.h
ompilerInstance.h
rontendAction.h
rontendActions.h
rontendOptions.h
eaderSearchOptions.h
angStandard.h
ogDiagnosticPrinter.h
reprocessorOptions.h
tils.h
|
7ee2049278b98d42709380054eb83f4952af1200 |
19-Jul-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[arcmt] Add some additional driver flags to optionally emit or save the pre-migration ARC errors. -arcmt-migrate-emit-errors : Emits the pre-migration ARC errors but it doesn't affect anything else -arcmt-migrate-report-output : Writes out the pre-migration ARC errors to the provided plist file rdar://9791454 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135491 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
f62d43d2afe1960755a1b5813cae1e5983bcac1b |
19-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
Revamp the SourceManager to separate the representation of parsed source locations from source locations loaded from an AST/PCH file. Previously, loading an AST/PCH file involved carefully pre-allocating space at the beginning of the source manager for the source locations and FileIDs that correspond to the prefix, and then appending the source locations/FileIDs used for parsing the remaining translation unit. This design forced us into loading PCH files early, as a prefix, whic has become a rather significant limitation. This patch splits the SourceManager space into two parts: for source location "addresses", the lower values (growing upward) are used to describe parsed code, while upper values (growing downward) are used for source locations loaded from AST/PCH files. Similarly, positive FileIDs are used to describe parsed code while negative FileIDs are used to file/macro locations loaded from AST/PCH files. As a result, we can load PCH/AST files even during parsing, making various improvemnts in the future possible, e.g., teaching #include <foo.h> to look for and load <foo.h.gch> if it happens to be already available. This patch was originally written by Sebastian Redl, then brought forward to the modern age by Jonathan Turner, and finally polished/finished by me to be committed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135484 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
|
9f79a1f89695a79d5e29a72c28ffb59823b31cef |
14-Jul-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Update the remaining comments in Frontend to 'expansion'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135150 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
reprocessorOptions.h
|
ba7537febdf1bc1cc617e1f1746f2644feba6274 |
14-Jul-2011 |
Chandler Carruth <chandlerc@gmail.com> |
NestedMacroInstantiations -> NestedMacroExpansions This is switches all the interfaces points (and most of the commenst / local variables I saw on my way through) regarding the NestedMacroInstantiations bit. The libclang enums corresponding to this state were renamed, but a legacy enum was added with the old name, and the same value to keep existing clients working. I've added a documentation blurb for it, but let me know if there is a canonical way to document legacy elemenst of the libclang interface. No functionality changed here, even in tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@135141 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
reprocessorOptions.h
|
bb52786da8d055568eef6e5694288c1258bc8c2a |
12-Jul-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Implement -MG. Fixes PR9613 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134996 91177308-0d34-0410-b5e6-96231b3b80d8
ependencyOutputOptions.h
|
69325d5b7cfecf1b3128745efc33612aedf1b8b4 |
09-Jul-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[arcmt] Introduce new '-ccc-arcmt-migrate <path>' ARC migration driver option. This is a new mode of migration, where we avoid modifying the original files but we emit temporary files instead. <path> will be used to keep migration process metadata. Currently the temporary files that are produced are put in the system's temp directory but we can put them in the <path> if is necessary. Also introduce new ARC migration functions in libclang whose only purpose, currently, is to accept <path> and provide pairs of original file/transformed file to map from the originals to the files after transformations are applied. Finally introduce the c-arcmt-test utility that exercises the new libclang functions, update arcmt-test, and add tests for the whole process. rdar://9735086. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134844 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
3bd21383f0d788e49af71c5d25255197ddb8a59b |
08-Jul-2011 |
Jonathan D. Turner <jonathan.d.turner@gmail.com> |
Remove BoostCon-specific code from Clang. FWIW, I'm a fan of things like this living in a separate branch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134649 91177308-0d34-0410-b5e6-96231b3b80d8
rontendActions.h
rontendOptions.h
|
39c411fa229b2a6747b92f945d1702ee674d3470 |
06-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
libclang: Allow callers of clang_saveTranslationUnit() to distinguish between different classes of errors. Addresses most of <rdar://problem/9660328>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134495 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
256a76e0b0e0c9e65a3122917d553ef10bc84d29 |
06-Jul-2011 |
John McCall <rjmccall@apple.com> |
Call objc_terminate() instead of abort() when a cleanup throws an exception in Objective-C; in Objective-C++ we still use std::terminate(). This is only available in very recent runtimes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134456 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
9f084a3166b684573ba49df28fc5792bc37d92e1 |
06-Jul-2011 |
John McCall <rjmccall@apple.com> |
Change the driver's logic about Objective-C runtimes: abstract out a structure to hold inferred information, then propagate each invididual bit down to -cc1. Separate the bits of "supports weak" and "has a native ARC runtime"; make the latter a CodeGenOption. The tool chain is still driving this decision, because it's the place that has the required deployment target information on Darwin, but at least it's better-factored now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134453 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
01b6e31a62e2265849f4388b9be6be0a5d13348d |
01-Jul-2011 |
Douglas Gregor <dgregor@apple.com> |
When we create a precompiled preamble, don't copy the CompilerInvocation on the stack, because other objects (e.g., the CompilerInstance) maintain an intrusive reference-counted pointer to the CompilerInvocation. This doesn't matter in the normal case, because we take back the CompilerInvocation. However, during crash recovery, this leads to us trying to free an object on the stack, and hilarity ensues. Fixes <rdar://problem/9652540>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134245 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
a1a38741fdf676af3174ea6f465eb07da003e761 |
30-Jun-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Fix typo git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@134167 91177308-0d34-0410-b5e6-96231b3b80d8
reprocessorOptions.h
|
83068315f7d9ed7b82ec35c2c26702151d186a70 |
28-Jun-2011 |
Chris Lattner <sabre@nondot.org> |
Fix PR9279 - Macro expansion stack trace seriously broken with function-style macros, by not recursively printing notes for other 'instantiated from' notes. This is a one line fix here: + // Don't print recursive instantiation notes from an instantiation note. + Loc = SM.getSpellingLoc(Loc); While here, fix the testcase to be more precise (it got filecheck'ized brutally), and fix EmitCaretDiagnostic to be private and to not pass down the unused 'Level' argument. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133993 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
57b9d9810d969df141a19dae8bea9defddb02264 |
21-Jun-2011 |
Bob Wilson <bob.wilson@apple.com> |
Fix a case that I missed in r133550. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133551 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
|
5dd45f13dc4463f0c18b923fe6795ce55103301d |
21-Jun-2011 |
Bob Wilson <bob.wilson@apple.com> |
Make InitHeaderSearch::AddPath and HeaderSearchOptions::AddPath consistent use an "IgnoreSysRoot" argument. HeaderSearchOptions had been using the opposite form with "IsSysRootRelative", which made for much confusion when looking at true/false values in calls in AddPath. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133550 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
|
13c4f2144b35bda21746eb60ad90e52a9bd8dcda |
21-Jun-2011 |
Bob Wilson <bob.wilson@apple.com> |
Fix the default libc++ header search path to be sysrooted. Radar 9639692. The -cxx-isystem path is not prefixed with the sysroot directory, so it's not a good way for the driver to set the system default C++ search path. Instead, add -stdlib as a cc1 option and teach the frontend how to find the headers. The driver can then just pass -stdlib through to "cc1". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133547 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
|
e26bdb91b7e3912ffe895b78a446db94471a59dd |
21-Jun-2011 |
Daniel Dunbar <daniel@zuster.org> |
IRgen: Add a -fuse-register-sized-bitfield-access option, for testing. - Changes bit-field access policy to try to use (aligned) register sized accesses. The idea here is that by using larger accesses we expose more coalescing potential to the backend when we have situations like adjacent bit-fields in the same structure (which is common), and that the backend should be smart enough to narrow the accesses down when no coalescing is done or when it is shown not to be profitable. -- $ clang -m32 -O3 -S -o - t.c _f0: ## @f0 pushl %ebp movl %esp, %ebp movl 8(%ebp), %eax movb (%eax), %cl andb $-128, %cl orb $1, %cl movb %cl, (%eax) movb 1(%eax), %cl andb $-128, %cl orb $1, %cl movb %cl, 1(%eax) movb 2(%eax), %cl andb $-128, %cl orb $1, %cl movb %cl, 2(%eax) movb 3(%eax), %cl andb $-128, %cl orb $1, %cl movb %cl, 3(%eax) popl %ebp ret $ clang -m32 -O3 -S -o - t.c -Xclang -fuse-register-sized-bitfield-access _f0: ## @f0 pushl %ebp movl %esp, %ebp movl 8(%ebp), %eax movl $-2139062144, %ecx ## imm = 0xFFFFFFFF80808080 andl (%eax), %ecx orl $16843009, %ecx ## imm = 0x1010101 movl %ecx, (%eax) popl %ebp ret -- git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133532 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
c3b9014c7236a15cf467662264b243a22c420312 |
21-Jun-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Add support for -Wa,--noexecstack when building from a non-assembly file. For an assembly file it worked correctly, while for a .c file it would given an error about how --noexecstack is not a supported argument to -Wa. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133489 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
e665d6929e11796620ff799bc0186ebd747bfc76 |
18-Jun-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[arcmt] Fix the ARC migrator. -arcmt-modify requires running before the initialization of SourceManager because it is going to modify the input file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133323 91177308-0d34-0410-b5e6-96231b3b80d8
rontendAction.h
|
c2e70b46b686c8debb3020891a5593f298b053ae |
18-Jun-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[arcmt] Remove '-arcmt-modify-in-memory', it turned out less useful than we hoped it would be. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133315 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
12ee102774c747874f0a6904089100667153b0c0 |
17-Jun-2011 |
Chris Lattner <sabre@nondot.org> |
comment improvements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133213 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
|
ebb6164bebf2b1e4f439433e751710b506918f62 |
17-Jun-2011 |
Chris Lattner <sabre@nondot.org> |
code cleanups, no behavior change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133211 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
|
f7f8188fac71e34e09ee457ff6f039f5d14ad117 |
16-Jun-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Raise the ARCMT functionality in Clang into proper FrontendActions. These are somewhat special in that they wrap any other FrontendAction, running various ARC transformations or checks prior to the standard action's run. To implement them easily, this extends FrontendAction to have a WrapperFrontendAction utility class which forwards all calls by default to an inner action setup at construction time. This is then subclassed to override the specific behavior needed by the different ARCMT tools. Finally, FrontendTool is taught how to create these wrapper actions from the existing flags and options structures. The result is that clangFrontend no longer depends on clangARCMigrate. This is very important, as clangARCMigrate *heavily* depends on clangFrontend. Fundamentally ARCMigrate is at the same layer as a library like Rewrite, sitting firmly on top of the Frontend, but tied together with the FrontendTool when building the clang binary itself. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133161 91177308-0d34-0410-b5e6-96231b3b80d8
rontendAction.h
|
f85e193739c953358c865005855253af4f68a497 |
16-Jun-2011 |
John McCall <rjmccall@apple.com> |
Automatic Reference Counting. Language-design credit goes to a lot of people, but I particularly want to single out Blaine Garst and Patrick Beard for their contributions. Compiler implementation credit goes to Argyrios, Doug, Fariborz, and myself, in no particular order. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@133103 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
rontendOptions.h
reprocessorOptions.h
tils.h
|
ab3c80e79e09132d1ee51b7c11ca697cb4592913 |
04-Jun-2011 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Remove the old implementation of -verify, which has been dead code since r88750. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@132651 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
c9471b0ff1815ed0149dbfcad0f385ed8648eeb0 |
21-May-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce the -fdiagnostics-format=xxx option to control how Clang prints the file, line, and column of a diagnostic. We currently support Clang's normal format, MSVC, and Vi formats. Note that we no longer change the diagnostic format based on -fms-extensions. Patch by Andrew Fish! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@131794 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
|
dca8ee8b7bc86076916a3a80f553f7a4e98c14af |
06-May-2011 |
Douglas Gregor <dgregor@apple.com> |
Introduce a new libclang parsing flag, CXTranslationUnit_NestedMacroInstantiations, which indicates whether we want to see "nested" macro instantiations (e.g., those that occur inside other macro instantiations) within the detailed preprocessing record. Many clients (e.g., those that only care about visible tokens) don't care about this information, and in code that uses preprocessor metaprogramming, this information can have a very high cost. Addresses <rdar://problem/9389320>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130990 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
reprocessorOptions.h
|
3dc05418538c719fea48b906bfa4febe5296e126 |
05-May-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Preserve the full name of the file, so that '-c -o foo.pic.o' produces foo.pic.gcno instead of foo.gcno. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130899 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
5ea4f44e34449a78d6b38aa47c14b527839d7aac |
04-May-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Record where the GCOV data files should be placed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130866 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
d808bd2978bd4ac95a92b309b038452b533fd7a0 |
04-May-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce ASTUnit::LoadFromCompilerInvocationAction that allows one to create an ASTUnit from a CompilerInvocation along with an ASTFrontendAction to invoke, and without all the goo about the precompiled preamble. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130805 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
b2dba4bc0eee144baa60e36599a0887496d1295e |
02-May-2011 |
Chad Rosier <mcrosier@apple.com> |
When using -std= flag added check to make sure language and standard are compatable git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130710 91177308-0d34-0410-b5e6-96231b3b80d8
angStandard.h
angStandards.def
|
f24a151d645abc89f94aa58ad59f3131502041b1 |
30-Apr-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Implement -fno-dwarf2-cfi-asm. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130616 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
a0fa203f04235cb6d05eeb8cea3392a01aa7571b |
30-Apr-2011 |
Bob Wilson <bob.wilson@apple.com> |
Add -Oz option and use it to set the inline threshold to 25. Radar 9333566. Patch by Chad Rosier! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130554 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
9856c993d5bbe966290ef36de8dc5428a0097710 |
24-Apr-2011 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Give MultiplexConsumer.h a header guard. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130100 91177308-0d34-0410-b5e6-96231b3b80d8
ultiplexConsumer.h
|
c69a505cfa318d571ce8a0cd038c8d958585a735 |
23-Apr-2011 |
Jay Foad <jay.foad@gmail.com> |
Remove unused STL header includes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@130068 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
|
e8ba8d78a258ec992d3521eebdae8324db777b14 |
22-Apr-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Wire up the -ftest-coverage and -fprofile-arcs flags to .gcno file emission (at compile time) and .gcda emission (at runtime). --coverage enables both. This does not yet add the profile_rt library to the link step if -fprofile-arcs is enabled when linking. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129956 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
7d2b8c1fcc2b707be78b09930a7767477822462f |
16-Apr-2011 |
Douglas Gregor <dgregor@apple.com> |
Initial work to improve documentation for Clang's diagnostics, from Matthieu Monrocq git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129614 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
rontendDiagnostic.h
|
7e7fbd05a5dfdb0addfc8b5af2fcbed8c7b5fb87 |
15-Apr-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
C1X: add a language standard git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129553 91177308-0d34-0410-b5e6-96231b3b80d8
angStandard.h
angStandards.def
|
b6534bbee90bf73f364072051d10b60352d43c3e |
07-Apr-2011 |
Daniel Dunbar <daniel@zuster.org> |
Fronted/CC_LOG_DIAGNOSTICS: Wire up dwarf-debug-flags support. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129095 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
28f14933edc863821e4f2ffa3663835c62440dcb |
07-Apr-2011 |
Daniel Dunbar <daniel@zuster.org> |
Fronted/CC_LOG_DIAGNOSTICS: Output main file name, and add support for outputting dwarf-debug-flags. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129094 91177308-0d34-0410-b5e6-96231b3b80d8
ogDiagnosticPrinter.h
|
64bfbf573e625c04abc3d40faa9b695fe21ebdbb |
07-Apr-2011 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Continue flushing out LogDiagnosticPrinter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129091 91177308-0d34-0410-b5e6-96231b3b80d8
ogDiagnosticPrinter.h
|
9df23493f5b8a223dfbc491e4b7de3850797c2e7 |
07-Apr-2011 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Sketch a LogDiagnosticPrinter object, and wire CC_LOG_DIAGNOSTICS to it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129089 91177308-0d34-0410-b5e6-96231b3b80d8
ogDiagnosticPrinter.h
|
b680d4bc53ecfece9b583f8e8566fddb5189d39a |
07-Apr-2011 |
Daniel Dunbar <daniel@zuster.org> |
ChainedDiagnosticClient: Fix a bug where chained diagnostic clients wouldn't accurately track warning/error counts. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129088 91177308-0d34-0410-b5e6-96231b3b80d8
hainedDiagnosticClient.h
|
08c6695f6018fb6cb1a7c7d311a851aa5c233bc0 |
07-Apr-2011 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Sketch support for -diagnostic-log-file, which still doesn't do anything. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@129086 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
|
ae8ec2b8b890ad663bdeb27e69f590c71b966cb6 |
05-Apr-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix building with gcc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128863 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
832316e9a04242972f4b57281dccb8e4cf5894ea |
05-Apr-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Move Driver::createInvocationFromArgs function to Frontend library to avoid dependency cycle between libFrontend and libDriver. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128852 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
969323239f16589329d091a2b8ef200fcfe7c9e9 |
29-Mar-2011 |
Daniel Dunbar <daniel@zuster.org> |
Integrated-As: Support -Wa,-L when using the integrated assembler. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128433 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
abaca7a8be8e79cc01354676e3bcb26575640311 |
27-Mar-2011 |
Chandler Carruth <chandlerc@gmail.com> |
Add an option to suppress include stack printing on note diagnostics. These stacks are often less important than those on primary diagnostics. As the number of notes grows, this becomes increasingly important. The include stack printing is clever and doesn't print stacks for adjacent diagnostics from the same file, but when a note is in between a sequence of errors in a header file, and the notes all refer to some other file, we end up getting a worst-case ping-pong of include stacks that take up a great deal of vertical space. Still, for now, the default behavior isn't changed. We can evaluate user feedback with the flag. Patch by Richard Trieu, a couple of style tweaks from me. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128371 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
extDiagnosticPrinter.h
|
3c66d30d513106bb794990c5e4ba36a31ac19f15 |
22-Mar-2011 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Add a more explicit -backend-option flag for passing backend command line options, instead of leveraging the blanket -mllvm option. - This allows using the frontend itself without requiring the backend have those options available (i.e., if the target wasn't built). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128087 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
da60885cb4ee85d167cf704061f10b758067cf5a |
21-Mar-2011 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Change CC_PRINT_HEADERS to not print header depth markers, these don't really make any sense in this environment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128014 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
4f32786ac45210143654390177105eb749b614e9 |
21-Mar-2011 |
Ted Kremenek <kremenek@apple.com> |
Improve crash recovery cleanup to recovery CompilerInstances during crash recovery. This was a huge resource "root" during crashes. This change requires making a bunch of fundamental Clang structures (optionally) reference counted to allow correct ownership semantics of these objects (e.g., ASTContext) to play out between an active ASTUnit and CompilerInstance object. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@128011 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
ompilerInvocation.h
|
32096695c76033a6b0b1747c439f7378a11e8312 |
18-Mar-2011 |
John McCall <rjmccall@apple.com> |
The Darwin kernel does not provide useful guard variable support. Issue this as an IR-gen error; it's not really worthwhile doing this "right", i.e. in Sema, because IR gen knows a lot of tricks beyond what the constant evaluator knows. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127854 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
7839febe5839cf42d76b068b1d79400ad366262b |
16-Mar-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Remove a duplicate language feature git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127743 91177308-0d34-0410-b5e6-96231b3b80d8
angStandards.def
|
b0f4b9a558933b307073f7cd7753602f94354ae9 |
09-Mar-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce '-chain-include' option to specify headers that will be converted to chained PCHs in memory without having to use multiple runs and intermediate files. Intended for testing & debugging of chained PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127339 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
reprocessorOptions.h
|
299a4a967b02c9f0d0d94ad8560e3ced893f9116 |
09-Mar-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Add 'OverridenFilesKeepOriginalName' field in SourceManager which if true the SourceManager should report the original file name for contents of files that were overriden by other files, otherwise it should report the name of the new file. Default is true. Also add similar field in PreprocessorOptions and pass similar parameter in ASTUnit::LoadFromCommandLine. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127289 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
reprocessorOptions.h
|
e6ec11aa15c7104d57009c6e036bf4ae29c35fb2 |
07-Mar-2011 |
Douglas Gregor <dgregor@apple.com> |
Remove the AST printer (-ast-print-xml), which is too incomplete and too low-level to actually be useful but is just interesting enough for people to try to use it (which won't actually work beyond toy examples). To bring back the AST printer, it needs to be: - Complete, covering all of C/C++/Objective-C - Documented, with appropriate Schema against which we can validate the output - Designed for C/C++/Objective-C, not Clang's specific ASTs - Stable across Clang versions - Well-tested git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127141 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
eclContextXML.def
eclXML.def
ocumentXML.def
ocumentXML.h
rontendActions.h
rontendOptions.h
tmtXML.def
ypeXML.def
|
b1c86492f9a9bef01a4567408c22f961bbd604fe |
05-Mar-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Currently we can only remap a file by creating a MemoryBuffer and replacing the file contents with it. Allow remapping a file by specifying another filename whose contents should be loaded if the original file gets loaded. This allows to override files without having to create & load buffers in advance. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127052 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
15727ddb11405c45372150b5bfb07dbfa4c9960b |
05-Mar-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce OwnsRemappedFileBuffers field in ASTUnit, indicating whether the ASTUnit should delete the remapped buffers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@127051 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
c4d2c9074be6eb2091086eddd6c8f052f3b245c8 |
28-Feb-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[analyzer] Remove '-analyzer-check-objc-mem' flag, the nominee for best misnomer award. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126676 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
nalyzerOptions.h
|
344500e3b78b95e2d911f45a64c5364d346ba799 |
28-Feb-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[analyzer] The current UninitializedValuesChecker will go away, remove '-warn-uninit-values'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126673 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
05357018b2e5e66559ad0ce2147dc1db9af42b9d |
28-Feb-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[analyzer] Migrate ArrayBoundCheckerV2 to CheckerV2. Turns -analyzer-check-buffer-overflows into -analyzer-checker=core.experimental.Overflow git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126609 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
58f2e7c3c3860e410fa3d8252862ef10be7cdc70 |
28-Feb-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[analyzer] Turn -analyzer-stats into -analyzer-checker=debug.Stats git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126608 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
6dd4dffe1090e820e9b5b25eee8ad3907a1aa679 |
28-Feb-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[analyzer] Remove '-analyzer-experimental-checks' flag. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126607 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
dc355713be51fcb4ee52d9fd6b4548ceff47fadf |
25-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Update UsingDecl, UnresolvedUsingTypenameDecl, and UnresolvedUsingValueDecl to use NestedNameSpecifierLoc rather than the extremely-lossy NestedNameSpecifier/SourceRange pair it used to use, improving source-location information. Various infrastructure updates to support NestedNameSpecifierLoc: - AST/PCH (de-)serialization - Recursive AST visitor - libclang traversal (including the first tests of this functionality) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126459 91177308-0d34-0410-b5e6-96231b3b80d8
eclXML.def
|
116f3640daee424dfcdbe55e80be5a67476be4b0 |
25-Feb-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Intoduce '-analyzer-checker-help' flag which outputs a list of all available static analyzer checkers. This is pretty basic for now, eventually checkers should be grouped according to package, hidden checkers should be indicated etc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126454 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
65d39251ff57b8e33cf6d3a7fcc6aa1c6f8cdc68 |
24-Feb-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[analyzer] Remove '-analyzer-experimental-internal-checks' flag, it doesn't have any checkers associated with it anymore. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126440 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
277a6e752512cff286190d35cb353ce717e86b18 |
23-Feb-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Preserve what the user passed to -include when emitting .d files. Fixes PR8974! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126334 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
0bb208c91e91e2fe91e0f487b00ff4b5b30c8cc2 |
22-Feb-2011 |
Joerg Sonnenberger <joerg@bec.de> |
Remove the storage for -cxx-system-include. Make libcxx toolchain use -nostdinc++ and -cxx-isystem. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126223 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
|
2df6647847af283302834dadae5d9dcefa7e0ad4 |
22-Feb-2011 |
Joerg Sonnenberger <joerg@bec.de> |
Bug#8945: Add -cxx-isystem option to specify C++ system directories. It works like -isystem and the search path keeps -isystem and -cxx-isystem in order relative to each other. -cxx-isystem is only used for C++ sources though. Drop the existing -cxx-system-include option for cc1 as it is now redundant. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126167 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
|
4b93d660c6326ec79b5e369317d1051cf826c2f3 |
20-Feb-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Re-instate r125819 and r125820 with no functionality change git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126060 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
ompilerInstance.h
|
96b1d4b4eb6b18dd6df7a2c0833332b45840580f |
19-Feb-2011 |
Rafael Espindola <rafael.espindola@gmail.com> |
Revert 125820 and 125819 to fix PR9266. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@126050 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
ompilerInstance.h
|
906c73ffbc78542ad333becb6e013dd9efc299b6 |
18-Feb-2011 |
Peter Collingbourne <peter@pcc.me.uk> |
Move CompilerInstance::LLVMContext and LLVMContext ownership to CodeGenAction This removes the final dependency edge from any lib outside of CodeGen to core. As a result we can, and do, trim the dependency on core from libclang, PrintFunctionNames, the unit tests and c-index-test. While at it, review and trim other unneeded dependencies. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125820 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
ompilerInstance.h
|
2d67b90a21c9c1093e6598809c2cbc832919cfe6 |
17-Feb-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[analyzer] Use the new registration mechanism for the debugging info "checks". The relative checker package is 'debug': '-dump-live-variables' is replaced by '-analyzer-checker=debug.DumpLiveVars' '-cfg-view' is replaced by '-analyzer-checker=debug.ViewCFG' '-cfg-dump' is replaced by '-analyzer-checker=debug.DumpCFG' git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125780 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
7dd445ec20e704846cfbdb132e56539280d71311 |
17-Feb-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[analyzer] Use the new registration mechanism on the non-path-sensitive-checkers: DeadStoresChecker ObjCMethSigsChecker ObjCUnusedIvarsChecker SizeofPointerChecker ObjCDeallocChecker SecuritySyntaxChecker git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125779 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
9fb9474c5b267400d4abfbff63c8b39f378235d4 |
17-Feb-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[analyzer] -Introduce CheckerV2, a set of templates for convenient declaration & registration of checkers. Currently useful just for checkers working on the AST not the path-sensitive ones. -Enhance CheckerManager to actually collect the checkers and turn it into the entry point for running the checkers. -Use the new mechanism for the LLVMConventionsChecker. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125778 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
91a230a15f2aca8f6a8b7fd492525ec372a98e6b |
17-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Eliminate the internal command-line option for viewing inheritance in C++ classes, since it's only really worked for the trivial cases anyway due to lame pseudo-parsing of the class name. The viewInheritance() function is still available for use in the debugger, where this is far more useful git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125762 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
rontendActions.h
rontendOptions.h
|
48601b32321496b07a18fb6631f8563275d8c5fb |
16-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Teach the CXCodeCompleteResults results structure, which stores code-completion results accessed via libclang, to extend the lifetime of the allocator used for cached global code-completion results at least until these completion results are destroyed. Fixes <rdar://problem/8997369>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125678 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
9b7db6200d366e4964d63ae1f33c7b9d7b9831cb |
16-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Improve the invalidation logic for the cache of global code completions. We now compute a hash of the names of all top-level declarations and macro definitions, and invalidate the cache when the hash value changes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125670 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
c9f2e0f286500c7e747849b3aa9c0e67a4dc90d7 |
15-Feb-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[analyzer] Use the new registration mechanism on the IdempotentOperationChecker. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125611 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
e9baa6b82625a6e55d21a32ca0227950d30ec57d |
15-Feb-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[analyzer] Remove ObjCSelfInitCheck from AnalyzerOptions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125599 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
8e3df4d0864f0a966c20088ca1a29c3398b7639d |
15-Feb-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Allow resolving headers from a PCH even after headers+PCH were moved to another path. Store in PCH the directory that the PCH was originally created in. If a header file is not found at the path that we expect it to be and the PCH file was moved from its original location, try to resolve the file by assuming that header+PCH were moved together and the header is in the same place relative to the PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125576 91177308-0d34-0410-b5e6-96231b3b80d8
rontendActions.h
|
809dfe8ad390bdaf7db12af944a84e16111efbbe |
15-Feb-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Initialize InlineCall in AnalyzerOptions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125564 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
43dee220252ef0b42c5f8a3bb1eca97f84f2565f |
14-Feb-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[analyzer] Overhauling of the checker registration mechanism. -Checkers will be defined in the tablegen file 'Checkers.td'. -Apart from checkers, we can define checker "packages" that will contain a collection of checkers. -Checkers can be enabled with -analyzer-checker=<name> and disabled with -analyzer-disable-checker=<name> e.g: Enable checkers from 'cocoa' and 'corefoundation' packages except the self-initialization checker: -analyzer-checker=cocoa -analyzer-checker=corefoundation -analyzer-disable-checker=cocoa.SelfInit -Introduces CheckerManager and CheckerProvider. CheckerProviders get the set of checker names to enable/disable and register them with the CheckerManager which will be the entry point for all checker-related functionality. Currently only the self-initialization checker takes advantage of the new mechanism. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125503 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
be4c8705e499b55548467eb7adaa23cbc6edfef9 |
10-Feb-2011 |
Roman Divacky <rdivacky@freebsd.org> |
Implement mcount profiling, enabled via -pg. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125282 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
17d3fea677753e6e3e82ffe2cbdeccbf5f2e7497 |
09-Feb-2011 |
Daniel Dunbar <daniel@zuster.org> |
Driver/Frontend: Wire up -mregparm=. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125201 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
d767d81290288c030f3be0be1d3e62b9c8df51dc |
09-Feb-2011 |
Ted Kremenek <kremenek@apple.com> |
static analyzer: Further reduce the analyzer's memory usage when analyzing sqlite3 by 7-10% by recylcing "uninteresting" ExplodedNodes. The optimization involves eagerly pruning ExplodedNodes from the ExplodedGraph that contain practically no difference between the predecessor and successor nodes. For example, if the state is different between a predecessor and a node, the node is left in. Only for the 'environment' component of the state do we not care if the ExplodedNodes are different. This paves the way for future optimizations where we can reclaim the environment objects. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@125154 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
8ef6c8cb6c5627240e2339fd7062c9873f821d7e |
05-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Improve our uniquing of file entries when files are re-saved or are overridden via remapping. Thus, when we create a "virtual" file in the file manager, we still stat() the real file that lives behind it so that we can provide proper uniquing based on inodes. This helps keep the file manager much more consistent. To take advantage of this when reparsing files in libclang, we disable the use of the stat() cache when reparsing or performing code completion, since the stat() cache is very likely to be out of date in this use case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124971 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
reprocessorOptions.h
|
f24fe4d1f1828251bcd160244a2393f2e990f1aa |
04-Feb-2011 |
Daniel Dunbar <daniel@zuster.org> |
Fix 80-col violins. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124847 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
b34d69b9292534c1c574f168f0ac10aea652adca |
02-Feb-2011 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Add -header-include-file option, for allowing saving header include information to a file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124750 91177308-0d34-0410-b5e6-96231b3b80d8
ependencyOutputOptions.h
|
b376e5e71aa3e608c0481a9a7facb5d8b29d3163 |
02-Feb-2011 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Add support (unused) for showing all "interesting" headers, not just ones outside the predefines buffer (which is what -H does). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124749 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
eef63e0997e0f6d6436736ea919b851cfe34955a |
02-Feb-2011 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Factor out header include dumping (-H) into its own preprocessor callbacks class. - Aside from being generally cleaner, this also allows -H to work correctly in modes other than standard preprocessing (e.g., -c, -MM, etc.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124723 91177308-0d34-0410-b5e6-96231b3b80d8
ependencyOutputOptions.h
reprocessorOutputOptions.h
tils.h
|
dae687575010c9c49a4b552f5eef82cd6279d9ac |
01-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Create a special allocator class for code completion, so that all of the string copying goes through a single place that can have associated state. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124698 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
218937c13ef5b0625a70aad41ca7a92da9278bd2 |
01-Feb-2011 |
Douglas Gregor <dgregor@apple.com> |
Allocate CodeCompletionString and all of its components in a BumpPtrAllocator, rather than manually new/delete'ing them. This optimization also allows us to avoid allocating memory for and copying constant strings (e.g., "return", "class"). This also required embedding the priority and availability of results within the code completion string, to avoid extra memory allocation within libclang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124673 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
ff9cd968cd5b623e3ec7e5f862b598cd22f7ec79 |
31-Jan-2011 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Add an explicit RemoveFileOnSignal flag argument, to control the automatic behavior (which is undesirable in a multithreaded context). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124612 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
f25649c74397d2620e6ac61f1045261644707c80 |
29-Jan-2011 |
Nico Weber <nicolasweber@gmx.de> |
Support for -plugin-arg- with -add-plugin git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124551 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
418df343bb50802586d20aae3b83e2eb44c6c828 |
27-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Separate the access-control diagnostics from other diagnostics that do not have SFINAE behavior. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124441 91177308-0d34-0410-b5e6-96231b3b80d8
rontendDiagnostic.h
|
1aa27307c462baaa9e5fda14ff6797dd39fe8b84 |
27-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Teach ASTUnit to save the specified target features, since TargetInfo::CreateTargetInfo() mangles the target options in a way that is not idempotent. Fixes <rdar://problem/8807535>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124382 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
bd5a94e263137dc3ce7c100485626bae025cf58e |
26-Jan-2011 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
[analyzer] Enable the self-init checker under command-line option '-analyzer-check-objc-self-init' which by default is enabled by the driver for '--analyze'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124266 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
61d2ab0fa1827c43e5f9023a26c36102cd549f82 |
26-Jan-2011 |
Jeffrey Yasskin <jyasskin@google.com> |
Remove CompilerInstance::getOutputFileList because it is unimplemented and unused. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124256 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
5aa74affa5d61d04c4b034b3722ca41aec0cba6e |
25-Jan-2011 |
Nico Weber <nicolasweber@gmx.de> |
Add -add-plugin flag, which runs plugins in addition to codegen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@124227 91177308-0d34-0410-b5e6-96231b3b80d8
rontendAction.h
rontendOptions.h
ultiplexConsumer.h
|
0b53cf834346d78985aaa9e7300445a39c245614 |
19-Jan-2011 |
Douglas Gregor <dgregor@apple.com> |
Don't silently drop warning flags passed in to clang_createTranslationUnitFromSourceFile(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@123793 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
3f59c975aa5d047f7edd1b900b5e885c38af0ef7 |
26-Dec-2010 |
Chris Lattner <sabre@nondot.org> |
The -fshort-wchar option causes wchar_t to become unsigned, in addition to being 16-bits in size. Implement this by splitting WChar into two enums, like we have for char. This fixes a miscompmilation of XULRunner, PR8856. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122558 91177308-0d34-0410-b5e6-96231b3b80d8
ypeXML.def
|
c478a1425c055e517169220ea1c1efd857e65f52 |
23-Dec-2010 |
Ted Kremenek <kremenek@apple.com> |
Add WIP prototype of a new buffer overflow checker based on using raw (symbolic) byte offsets from a base region. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@122469 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
f187237d916afa97c491ac32fe98be7d335c5b63 |
08-Dec-2010 |
Francois Pichet <pichet2000@gmail.com> |
Remove the TypesCompatibleExprClass AST node. Merge its functionality into BinaryTypeTraitExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@121298 91177308-0d34-0410-b5e6-96231b3b80d8
tmtXML.def
|
4400cb8c548a90c472444b57690117563f4be195 |
04-Dec-2010 |
Peter Collingbourne <peter@pcc.me.uk> |
Implement -cl-mad-enable git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120881 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
5f67e13fcdc3c33e9cd5d027bfbb677b726c6f6a |
04-Dec-2010 |
Peter Collingbourne <peter@pcc.me.uk> |
Implement -cl-unsafe-math-optimizations git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120879 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
5d729a3d8eeba59ed97119998f2135ad6d45e876 |
04-Dec-2010 |
Peter Collingbourne <peter@pcc.me.uk> |
Implement -cl-finite-math-only git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120878 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
53c92be3b233cede6114702a5f86f146f55d6c6e |
04-Dec-2010 |
Peter Collingbourne <peter@pcc.me.uk> |
Introduce CompilerInvocation::setLangDefaults function This patch refactors the CompilerInvocation code to introduce a CompilerInvocation::setLangDefaults function, which can set up a LangOptions with the defaults for a given language and language standard. This function is useful for non-command line based Clang clients which need to set up a CompilerInvocation manually for a specific language. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120874 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
|
ebd4f52093b93fed57dcab6fa3a9033e3850ca4b |
03-Dec-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce TextPathDiagnostics, a simple PathDiagnosticClient that outputs as diagnostic notes the sequence of events; useful for testing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120770 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
f928dca56542cf8f981a684f090d2c79bdcb2a10 |
03-Dec-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Rename Create[*]DiagnosticClient -> create[*]DiagnosticClient. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120768 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
895fcca55a6d52a71639f2472a6623ab2dd9f628 |
01-Dec-2010 |
Peter Collingbourne <peter@pcc.me.uk> |
Driver, Frontend: add CUDA language support git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120544 91177308-0d34-0410-b5e6-96231b3b80d8
rontendAction.h
angStandards.def
|
89d9980bbc2e4a4ac86673e6ec16fb9f5babb63b |
30-Nov-2010 |
Douglas Gregor <dgregor@apple.com> |
When using a precompiled preamble with detailed preprocessing records, trap the serialized preprocessing records (macro definitions, macro instantiations, macro definitions) from the generation of the precompiled preamble, then replay those when walking the list of preprocessed entities. This eliminates a bug where clang_getCursor() wasn't able to find preprocessed-entity cursors in the preamble. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120396 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
03013fa9a0bf1ef4b907f5fec006c8f4000fdd21 |
29-Nov-2010 |
Michael J. Spencer <bigcheesegs@gmail.com> |
Merge System into Support. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120297 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
f35142413974e9dfe2c5f202084db4bd1c2073e9 |
24-Nov-2010 |
John McCall <rjmccall@apple.com> |
Add -cc1 -ast-dump-xml, an excessively detailed XML dump of the internals of the ASTs. Only available in assertions builds. No stability guarantee. This is intended solely as a debugging tool. I'm not sure if the goals are sufficiently aligned with the XML printer to allow a common implementation. Currently just falls back on the StmtDumper to display statements, which means it doesn't produce valid XML in those cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120088 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
rontendActions.h
rontendOptions.h
|
75dfb65c38d51772df9a00ce2d2feeefd55667ad |
23-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
tidy up. Split FileManager::getBufferForFile into two copies, since they are fundamentally different operations and the StringRef one should go away (it shouldn't be part of FileManager at least). Remove some dead arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120013 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
39b49bcaaddb1049234fca9500c0ac02c088e23d |
23-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
now the FileManager has a FileSystemOpts ivar, stop threading FileSystemOpts through a ton of apis, simplifying a lot of code. This also fixes a latent bug in ASTUnit where it would invoke methods on FileManager without creating one in some code paths in cindextext. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120010 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
tils.h
|
151466a18671df9cfd9abd59ba53df35b1d687da |
23-Nov-2010 |
Chris Lattner <sabre@nondot.org> |
Partially revert Doug's PCH validation patch (r98585). This patch completely defeated the "passing in a prestat'd size to MemoryBuffer" optimization, leading to an extra fstat call for every buffer opened, in order to find out if the datestamp and size of the file on disk matches what is in the stat cache. I fully admit that I don't completely understand what is going on here: why punish code when a stat cache isn't in use? what is the point of a stat cache if you have to turn around and stat stuff to validate it? To resolve both these issues, just drop the modtime check and check the file size, which is the important thing anyway. This should also resolve PR6812, because presumably windows is stable when it comes to file sizes. If the modtime is actually important, we should get it and keep it on the first stat. This eliminates 833 fstat syscalls when processing Cocoa.h, speeding up system time on -Eonly Cocoa.h from 0.041 to 0.038s. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@120001 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
ab41b97c3cddf1bcdd8bf82ab09ed3ceafcd05b1 |
18-Nov-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Remove the hack where, to get the return status, we had special case for VerifyDiagnosticsClient and just check the number of errors from the DiagnosticClient. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@119736 91177308-0d34-0410-b5e6-96231b3b80d8
erifyDiagnosticsClient.h
|
e47be3e9682e82da15059006f43c7f3c021e4fff |
11-Nov-2010 |
Douglas Gregor <dgregor@apple.com> |
Improve ASTUnit's capture of diagnostics so that the diagnostic-capturing client lives as long as the ASTUnit itself does. Otherwise, we can end up with crashes when we get a diagnostic outside of parsing/code completion. The circumstances under which this happen are really hard to reproduce, because a file needs to change from under us. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118751 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
|
389db16c63eec6ecfa9b235155252d8da766e94e |
03-Nov-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Implement -working-directory. When -working-directory is passed in command line, file paths are resolved relative to the specified directory. This helps both when using libclang (where we can't require the user to actually change the working directory) and to help reproduce test cases when the reproduction work comes along. --FileSystemOptions is introduced which controls how file system operations are performed (currently it just contains the working directory value if set). --FileSystemOptions are passed around to various interfaces that perform file operations. --Opening & reading the content of files should be done only through FileManager. This is useful in general since file operations will be abstracted in the future for the reproduction mechanism. FileSystemOptions is independent of FileManager so that we can have multiple translation units sharing the same FileManager but with different FileSystemOptions. Addresses rdar://8583824. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118203 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
ompilerInvocation.h
tils.h
|
f1410802d1c9e7ff72b2818ad91fd85283abc6bf |
03-Nov-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix an assertion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@118202 91177308-0d34-0410-b5e6-96231b3b80d8
rontendAction.h
|
213f18b3d654de7d1c7cf4a329ea9d3db1c50b6a |
28-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Simplify ASTUnit's internal timers, by not trying to keep a pile of timers to be dumped whenever the ASTUnit is destroyed. Instead, just print the time elapsed for each operation after we perform the operation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117550 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
99ba202f659e1885fa5ee114f97c97cf6a857491 |
27-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Introduce libclang-level options for C++ precompiled preambles, separating out chaining precompiled preambles from non-chaining ones. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117457 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
90d9081cacb4b0163f2c7527f666d6515257067c |
27-Oct-2010 |
Dan Gohman <gohman@apple.com> |
Add support for code completion on stdin. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@117414 91177308-0d34-0410-b5e6-96231b3b80d8
ommandLineSourceLoc.h
|
cf1123b648403f159aeb705e2b8b088258a277ff |
18-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Add declarations nested in a linkage specification to the output of -ast-print-xml, from Martin Vejnar! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116702 91177308-0d34-0410-b5e6-96231b3b80d8
eclXML.def
|
4d5625e15bb215c2241c022df8dc7b04438970c6 |
15-Oct-2010 |
Dan Gohman <gohman@apple.com> |
Wire up the -fstrict-aliasing and -fno-strict-aliasing options to CodeGenOption flags. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116530 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
3e78593b1ced32b7e0a97da044213014ee0f6f7c |
14-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce command line option -error-on-deserialized-decl that is accompanied by a name and emits an error if a declaration with this name is deserialized from PCH. This is for testing, to make sure that we don't deserialize stuff needlessly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116505 91177308-0d34-0410-b5e6-96231b3b80d8
reprocessorOptions.h
|
b972858068d2ea77f72a1e7b1812b196afd6be2e |
14-Oct-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce command line option -dump-deserialized-decls which is used to print the PCH decls that got deserialized, for testing purposes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116503 91177308-0d34-0410-b5e6-96231b3b80d8
reprocessorOptions.h
|
4cd912aa94656697a44c3ebb159f05060300524e |
12-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
When we load an ASTUnit from command-line arguments, hold on to the diagnostics produced by the driver itself. Previously, we were allowing these to either be dropped or to slip through to stderr. Fixes <rdar://problem/7595339>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116285 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
a9f4f620daf073805b89e893afcdc5eb7a9bdc50 |
12-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Eliminate the (de-)serialization of code completion results, now that libclang does not support out-of-process code completion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116253 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
rontendOptions.h
|
d3ab63e0f66429abf2a3e4cde889e420e41e8790 |
12-Oct-2010 |
Douglas Gregor <dgregor@apple.com> |
Eliminate -fdiagnostics-binary and all of the infrastructure for emitting diagnostics in a binary form to be consumed by libclang, since libclang no longer does any of its work out-of-process, making this code dead. Besides, this stuff never worked at 100% anyway. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116250 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
|
9d520c5ae802fc175c61032b289ddd6968e6ddd2 |
11-Oct-2010 |
Axel Naumann <Axel.Naumann@cern.ch> |
Declare argv parameters as const char* const* instead of to char** to clarify that they are not modified, and to allow for string literals as arguments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116200 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
|
7d0c4ccd65b4549283c55e4923602e234f3811c5 |
11-Oct-2010 |
Axel Naumann <Axel.Naumann@cern.ch> |
Tighten up constness of argv parameters to allow for string literals as argumants and to reflect actual (non-modifying) use. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@116199 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
1d9f1fe7173e3084325f43c78af812a36d8a2a7c |
05-Oct-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Give every file that ASTReader loads a type: module, PCH, precompiled preamble or main file. Base Decls' PCHLevel on this to make it more sane. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115626 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
c69e1cf04323f2e786d40e8a5ba84e77ee1c6827 |
30-Sep-2010 |
Devang Patel <dpatel@apple.com> |
Introduce -flimit-debug-info. In this experimental mode try avoiding debug info emission for classes as much as possible. The goal is to reduce size of produced debuginfo without reducing quality of debug info in general. This is a work in progress. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115188 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
9121ba232903ebe61e7bbe14ca294cf0f07dfa96 |
30-Sep-2010 |
Marcin Swiderski <marcin.sfider@gmail.com> |
Added two new command line arguments: -cfg-add-implicit-dtors - sets CFG::BuildOptions::AddImplicitDtors for AnalysisCosumer to true, -cfg-add-initializers - sets CFG::BuildOptions::AddInitializers for AnalysisCosumer to true. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@115142 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
b17cc9e904c277b97cc4d57227122acd8d46ed36 |
23-Sep-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114697 91177308-0d34-0410-b5e6-96231b3b80d8
ependencyOutputOptions.h
|
dc24572a44575e07a5d8bb6de52641a69f1bab27 |
17-Sep-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Use a temporary file for output which gets renamed after all the writing is finished. This mainly prevents failures and/or crashes when multiple processes try to read/write the same PCH file. (rdar://8392711&8294781); suggestion & review by Daniel! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@114187 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
52d861ce41ce84d8389495ea78d97bcc962ac5ba |
10-Sep-2010 |
Tom Care <tom.care@uqconnect.edu.au> |
Added AnalyzerStatsChecker, a path sensitive check that reports visitation statistics about analysis. Running clang with the -analyzer-stats flag will emit warnings containing the information. We can then run a postanalysis script to take this data and give useful information about how much the analyzer missed in a project. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113568 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
80c26f44a6f8d859a2a3babb06bd3ca8d86f2623 |
09-Sep-2010 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Add -cxx-system-include option which can be used to specify an explicit list for the C++ system include directories at the -cc1 level, as an alternative to the horrible AddDefaultCPlusPlusIncludePaths(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113505 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
|
3aa2146552fafac2b5ba24a42d28861d22fe3175 |
07-Sep-2010 |
Douglas Gregor <dgregor@apple.com> |
Add function attributes to the output of -ast-print-xml, from Martin Vejnar! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@113266 91177308-0d34-0410-b5e6-96231b3b80d8
eclXML.def
ypeXML.def
|
d931b086984257de68868a64a235c2b4b34003fb |
26-Aug-2010 |
John McCall <rjmccall@apple.com> |
De-memberify the VarDecl and FunctionDecl StorageClass enums. This lets us remove Sema.h's dependency on Expr.h and Decl.h. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112156 91177308-0d34-0410-b5e6-96231b3b80d8
eclXML.def
|
2de56d1d0c3a504ad1529de2677628bdfbb95cd4 |
25-Aug-2010 |
John McCall <rjmccall@apple.com> |
GCC didn't care for my attempt at API compatibility, so brute-force everything to the new constants. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112047 91177308-0d34-0410-b5e6-96231b3b80d8
tmtXML.def
|
0a2c5e256abb4dc031c21fe4dc92c4f3afe9947c |
25-Aug-2010 |
John McCall <rjmccall@apple.com> |
Teach Sema to live without CodeCompleteConsumer.h. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@112028 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
f7c16d903f11814e2d6780e2a2e189b7a7afc4ed |
25-Aug-2010 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Add basic -H support. - I didn't implement the GCC "multiple include guard" detection parts, because it doesn't seem useful or obvious. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111983 91177308-0d34-0410-b5e6-96231b3b80d8
reprocessorOutputOptions.h
|
23637beead1fce7dac755890c9482bcdce538b87 |
25-Aug-2010 |
Chris Lattner <sabre@nondot.org> |
correct the -isystem option to not add the -isysroot path. Only the weird -iwithsysroot flag should do that. This fixes rdar://8345942 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111979 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
|
1b7255de78c99ef2b8a06bb5261a3c776ac1db36 |
24-Aug-2010 |
Peter Collingbourne <peter@pcc.me.uk> |
Move ExecuteCompilerInvocation to a new library FrontendTool r110903 introduced a dependency from Frontend to every library that declared an Action by introducing Action references that previously resided in the driver in the file ExecuteCompilerInvocation.cpp. This patch moves ExecuteCompilerInvocation to a new library named FrontendTool which is intended to bear these dependencies. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111873 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
58ddb60f409125eda5436c4a1f070f7fa4744295 |
24-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Introduce new libclang API functions that determine the availability of a cursor or code-completion result, e.g., whether that result refers to an unavailable, deleted, or deprecated declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111858 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
11add9b2e915e5da4a9da25a89e3fb0a4b7f0173 |
23-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Add XML for CXXConstructExpr, from Benoit Belley! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111808 91177308-0d34-0410-b5e6-96231b3b80d8
tmtXML.def
|
2283d79155a3e82442fce124ce5fd704ca138801 |
20-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
When performing code-completion in the presence of a preamble, make sure to (1) actually use the remapped files we were given rather than old data, and (2) keep the remapped files alive until the code-completion results are destroyed. Big thanks to Daniel for the test case. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111597 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
41a621d00e974829b75ff95cdff556755116dea1 |
19-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Intialize all of the code-generation options git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111560 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
4786c15f4977c7cee98fde3ebdee213dba23848b |
19-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Add machine-parseable Fix-It output as part of diagnostics, under the flag -fdiagnostics-parseable-fixits, from Eelis van der Weegen! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111557 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
|
671947b18dba342f9aba022ee992babef325a833 |
19-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Plug a leak when precompiling the preamble in ASTUnit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111504 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
8538e8d43a3a9bd439c987c0de37bcbf035dd391 |
19-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Rename pch namespace to serialization. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111478 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
05a07605322dfef2b017781042043a261c5a89cd |
19-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Rename PCHBitCodes.h -> ASTBitCodes.h git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111476 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
3c7f4134603d04b44f997b43c0a9def270f25386 |
19-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
More PCH -> AST renaming. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111472 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
rontendAction.h
rontendOptions.h
|
c43b54cbc10654ed59de797898042e1a05265246 |
19-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Rename PCHReader to ASTReader. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111467 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
ea94bbc4769697143e717df9b0310f874102b6c1 |
19-Aug-2010 |
Daniel Dunbar <daniel@zuster.org> |
libclang: Put clang_reparseTranslationUnit inside a crash recovery context. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111451 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
bdbb004f38978da0c4a75af3294d1c7b5ff84af1 |
19-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Simplify the ownership model for DiagnosticClients, which was really convoluted and a bit leaky. Now, the Diagnostic object owns its DiagnosticClient. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111437 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
|
857281328fa824782bdd979c3bfdd97ecdbc1609 |
17-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Reintroduce the serialization library, with fixed dependencies. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111279 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
CHBitCodes.h
CHDeserializationListener.h
CHReader.h
CHWriter.h
|
4557e473c9e673e7e6f7063478f63a5b3c6c10b2 |
17-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Revert Sebastian's build-breaking patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111265 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
CHBitCodes.h
CHDeserializationListener.h
CHReader.h
CHWriter.h
|
93c972945bccd1a966b0445f9ed45db433b77bc1 |
17-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Create a new Serialization module that contains all the PCH code, and will contain all the module code in the future. Update the Makefiles, CMake projects and the Xcode project. I hope I did everything right for Xcode. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111258 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
CHBitCodes.h
CHDeserializationListener.h
CHReader.h
CHWriter.h
|
727d93ef49e18147149354fadd10e86b13bc4ab0 |
17-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
When the # of top-level declarations changes after reparsing a translation unit, refresh code-completion results because they've probably changed. However, enforce a cooldown period between refreshes, to avoid thrashing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111218 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
349d38cef04ddf8938047c1b542a799aa82dfe84 |
17-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Move include to the proper place. No functionality change git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111204 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
5f808c2bfe2f95c984029d76deb4aaebcad30cbc |
16-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement name hiding of cached global code-completion results. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111184 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
e55fd871b0cf3e4ebc708cf46831908d74eab40a |
16-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Add two options for playing with modules. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111166 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
f5586f6b311c98e1022a8fe0609053849b70d323 |
16-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
When caching code completions for global declarations, keep track of the usage type of each declaration result, then compare those types to the preferred type of the completion. This provides parity in the priority calculation between the code-completion results produced directly from Sema and those cached by ASTUnit. For the standard Cocoa.h (+ others) example, there's a penalty of 3-4 hundredeths of a second when caching the global results (for ~31,000 results), because we need an ASTContext-agnostic representation of types for the comparison, and therefore we use... strings. Eventually, we'd like to implement a more efficient ASTContext-agnostic encoding of types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111165 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
c4421e966d77a18f815284175b3fcbb46f36fa39 |
16-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Dereferencing NULL pointers is such poor form. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111150 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
1827e10051638770ad9ccf3e285caf95f995afd1 |
16-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
When caching global completion results, keep track of the simplified type class, so that we can adjust priorities appropriately when the preferred type for the context and the actual type of the completion are similar. This gets us one step closer to parity of the cached completion results with the non-cached completion results. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111139 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
8071e4212ae08f8014e0c3ae6d18b7388003a5cc |
15-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Extend the code-completion caching infrastructure to include global declarations (in addition to macros). Each kind of declaration maps to a certain set of completion contexts, and the ASTUnit completion logic introduces the completion strings for those declarations if the actual code-completion occurs in one of the contexts where it matters. There are a few new code-completion-context kinds. Without these, certain completions (e.g., after "using namespace") would need to suppress all global completions, which would be unfortunate. Note that we don't get the priorities right for global completions, because we don't have enough type information. We'll need a way to compare types in an ASTContext-agnostic way before this can be implemented. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111093 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
rontendOptions.h
|
469865cf50f5d11951cc13a935f0fe52cbf17360 |
15-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
DependentTypeOfExprType and DependentDecltypeType are not seen by client code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111090 91177308-0d34-0410-b5e6-96231b3b80d8
ypeXML.def
|
87c08a5d6b9e1e44ae6f554df40139d3a6f60b33 |
14-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement caching of code-completion results for macro definitions when the CXTranslationUnit_CacheCompletionResults option is given to clang_parseTranslationUnit(). Essentially, we compute code-completion results for macro definitions after we have parsed the file, then store an ASTContext-agnostic version of those results (completion string, cursor kind, priority, and active contexts) in the ASTUnit. When performing code completion in that ASTUnit, we splice the macro definition results into the results provided by the actual code-completion (which has had macros turned off) before libclang gets those results. We use completion context information to only splice in those results that make sense for that context. With a completion involving all of the macros from Cocoa.h and a few other system libraries (totally ~8500 macro definitions) living in a precompiled header, we get about a 9% performance improvement from code completion, since we no longer have to deserialize all of the macro definitions from the precompiled header. Note that macro definitions are merely the canary; the cache is designed to also support other top-level declarations, which should be a bigger performance win. That optimization will be next. Note also that there is no mechanism for determining when to throw away the cache and recompute its contents. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111051 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
49b96d1a382ae9f31456166f1a734d3f7f30b992 |
13-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Change Sema's UnusedStaticFuncs to UnusedFileScopedDecls to allow also keeping track of unused file scoped variables. This is only preparation, currently only static function definitions are tracked, as before. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111025 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
|
1450f265fcc84a7ca64dd9f3b8d4492c5bd55e23 |
13-Aug-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Add a new cc1 option -fix-what-you-can which when combined with the fix-it mode will apply all fixes even when there were other errors in the file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111020 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
7ae2faafd30524ef5f863bb3b8701977888839bb |
13-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement clang_saveTranslationUnit(), which saves a translation unit into a PCH/AST file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111006 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
914ed9d30e9abf829a62aa996b083b1e47c19ff6 |
13-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Teach ASTUnit to hold on to the Sema object and ASTConsumer that are used when parsing (or re-parsing) a file. Also, when loading a precompiled header into ASTUnit, create a Sema object that holds onto semantic-analysis information. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@111003 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
de7e66256b1bdfcf6526994825a8c8fced52a31c |
13-Aug-2010 |
Eli Friedman <eli.friedman@gmail.com> |
Zap unused UnaryOperator::OffsetOf. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110996 91177308-0d34-0410-b5e6-96231b3b80d8
tmtXML.def
|
0b17c61e8f143901ce11b4a6e5129ac63aaeee04 |
13-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Instead of modifying the ObjC AST to not modify existing declarations, teach chained PCH to overwrite declarations from earlier PCH files in dependent ones. Tell Sema to note when it changes AST nodes so that they have to be reserialized. Finally, the ObjCProtocolDecls created in forward decls, like the ObjCInterfaceDecls in @class forward decls, are not lexically part of the decl context; only the definition is. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110989 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
279b5eb6910d64a293e9c0e2887a05c65d8737d7 |
13-Aug-2010 |
John McCall <rjmccall@apple.com> |
Just disable the hidden-visibility optimization for now by hiding it behind a -cc1 option. The Darwin linker complains about mixed visibility when linking gcc-built objects with clang-built objects, and the optimization isn't really that valuable. Platforms with less ornery linkers can feel free to enable this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110979 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
f18d0d8b39e891460d50f8a8b85029885b264986 |
13-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Teach CompilerInstance to create and hold on to the Sema object used for parsing, so that it can persist beyond the lifetime of the parsing call. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110978 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
8eb2b0141d81d7d1026fad2d1a631f40eb3747a6 |
12-Aug-2010 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Move the bulk of the cc1_main() processing into ExecuteCompilerInvocation in libFrontend. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110903 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
df95a13ec73d2cdaea79555cb412d767f4963120 |
09-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Use precompiled preambles for in-process code completion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110596 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
8e706f4b8da141612861e127610141b8d17a9667 |
09-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Refactor into functions PCH reading/writing the CXXBaseOrMemberInitializers. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110566 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
CHWriter.h
|
1fafd1d96419f587763d1b81332d8f476aeace2e |
07-Aug-2010 |
Tom Care <tcare@apple.com> |
Removed IdempotentOperationChecker from default analysis and returned back to a flag (-analyzer-check-idempotent-operations) - Added IdempotentOperationChecker to experimental analyses for testing purposes - Updated test cases to explictly call the checker git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110482 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
a7be5065edc93ab52a25b2588a23a41a4beba21e |
05-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Collect namespaces that need updating in a PCH chain. WIP git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110378 91177308-0d34-0410-b5e6-96231b3b80d8
CHWriter.h
|
7a536907da776bdc47a704e7cafd641e8150e653 |
05-Aug-2010 |
John McCall <rjmccall@apple.com> |
It turns out that linkers (at least, the Darwin linker) don't necessarily do the right thing with mixed-visibility symbols, so disable the visibility optimization where that's possible, i.e. with template classes (since it's possible that an arbitrary template might be subject to an explicit instantiation elsewhere). 447.dealII actually does this. I've put the code under an option that's currently not hooked up to anything. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110374 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
0e0363866792b309d70e9c8e92b4c239773af89c |
05-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Store the pending implicit instantiations in the PCH and perform them at the end of the translation unit that included the PCH, as God intended. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110324 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
|
72b90571b1783b17c3f2204cec5ca440edc38bee |
05-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Support #pragma weak for PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110323 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
|
cee235cdf0b8047761ffac598c4c3a32ab7411a2 |
05-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Give clang_codeCompleteAt() an "options" parameter, and add a new flags enumeration + default-generating function that allows code-completion to be customized via the libclang API. Plus, turn on spell-checking when performing code completion. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110319 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
fa78dec572259aca763457b435744f79d822c5d4 |
04-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Bring stats for the method pool back. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110247 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
725cd9686a0f5bb6c994cb3e43f58b63567c6860 |
04-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Implement per-file reading of the selector table. This disables statistics about method pool hits for the moment. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110245 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
e58aa890e8de55bb3146e6ea9fbbba3a58ce30c6 |
04-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
When chaining, only write interesting selectors to the PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110229 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
CHWriter.h
|
5d05007b7a7883159154e3f65f338a2542d53913 |
04-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Store the IDs of selectors in the PCH file explicitly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110219 91177308-0d34-0410-b5e6-96231b3b80d8
CHDeserializationListener.h
CHWriter.h
|
1abc6bca3d7fb0e7b1e40fbcad6cfb5e10594548 |
04-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Add code-completion support directly to ASTUnit, which performs code completion within the translation unit using the same command-line arguments for parsing the translation unit. Eventually, we'll reuse the precompiled preamble to improve code-completion performance, and this also gives us a place to cache results. Expose this function via the new libclang function clang_codeCompleteAt(), which performs the code completion within a CXTranslationUnit. The completion occurs in-process (clang_codeCompletion() runs code completion out-of-process). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110210 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
eababfbddb74d186f78783a9731a78ad371c9800 |
04-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
When we try (but fail) to build a precompiled preamble, wait for a short "cooling off" period (defaulting to 5 reparses) before trying to build a precompiled preamble again. Previously, if we failed to build the precompiled preamble at any time, we just gave up the whole charade any never tried again. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110187 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
059612dd3429cef2d61f11950f3d93a40182bf69 |
03-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Incomplete promotion of selector info to per-file data. Store all selectors in the selector hash table instead of only those from the method pool. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110158 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
CHWriter.h
|
eb8837b88c18631c69ac75f64ab1853762063180 |
03-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
When using a precompiled preamble, keep track of the top-level declarations that we saw when creating the precompiled preamble, and provide those declarations in addition to the declarations parsed in the main source file when traversing top-level declarations. This makes the use of precompiled preambles a pure optimization, rather than changing the semantics of the parsed translation unit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110131 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
CHWriter.h
|
a865005c74019184e04f7fcdd4d61c31c095a4ff |
03-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Apart from storing/retrieving the previous redeclaration from PCH, also store/retrieve the most recent redeclaration. That way we are sure that the full redeclarations chain is loaded. When using chained PCHs, first declarations point to the most recent redeclarations in the same PCH. To address this use a REDECLS_UPDATE_LATEST record block to keep track of which first declarations need to point to a most recent redeclaration in another PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110125 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
1d715ac14bf440664fb0d1425ea882274f994f57 |
03-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
Reshuffle the PCH generator action and consumer, so that we can re-use it while generating precompiled preambles. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110108 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
rontendActions.h
CHWriter.h
|
9b823e8e1ccb8a2cb49923bad22a80ca96f41f92 |
03-Aug-2010 |
Ted Kremenek <kremenek@apple.com> |
Add -cc1 option '-unoptimized-cfg' to toggle using a CFG (for static analysis) that doesn't prune CFG edges. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110087 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
c0659ec614c428c7d15746fcad15d50a2703751d |
02-Aug-2010 |
Douglas Gregor <dgregor@apple.com> |
When using a precompiled preamble, save the diagnostics produced when creating the preamble and "replay" them when reusing the preamble. Also, fix a thinko in the copying of the preamble when building the precompiled preamble. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110061 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
d8c5abb096a5f6babb3709180fe304be5462bcc1 |
02-Aug-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Query only the latest version of an identifier in the PCH chain. Make sure this version holds the entire declaration chain. This is a much saner solution than trying to merge the info from all elements, and makes redeclarations work properly. Expand the declarations test case to cover more compliated cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110052 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
f56a488a6bdfe56ca814f37d384afa67c67f9dd5 |
02-Aug-2010 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Change PluginASTAction::ParseArgs to take a CompilerInstance object for use in reporting diagnostics. - We don't want to use the Action's own CompilerInstance, because that is only initialized during file processing and I like that invariant. Also, if ParseArgs returns false then abandon execution. Also, remove unused PluginASTAction::PrintHelp virtual method. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110039 91177308-0d34-0410-b5e6-96231b3b80d8
rontendAction.h
|
76c38d385447b7acdff2d7e6b13fa8580e7174a7 |
02-Aug-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Read/write in PCH Sema's StdNamespace and StdBadAlloc and use a LazyDeclPtr for them that will deserialize them when needed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@110031 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
|
cc5888d833caf90ebda37f24da40d2cd06b4d820 |
31-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement dependency analysis for the precompiled preamble. If any of the files in the precompiled preamble have changed since it was build, force the preamble to be rebuilt. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109937 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
385103b79c5338a2be5da0ca70652400bc267371 |
30-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Add some timers to ASTUnit that are only enabled when the LIBCLANG_TIMING environment variable is set. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109890 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
29ee3a273f58e16df7f2c524ab62a869e44fc9b1 |
30-Jul-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Refactor the way PCHReader tracks whether we are in recursive loading. -Replace CurrentlyLoadingTypeOrDecl with a counting scheme (NumCurrentElementsDeserializing) -Provide outside access to the mechanism by adding methods StartedDeserializing/FinishedDeserializing to ExternalASTSource. These are preparation for the next commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109856 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
ffaab3e2bb13991bb3357e80f14bcae3745b2347 |
30-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Make macro weirdness in chained PCH work. This required changing the way PCHReader and PCHWriter are initialized to correctly pick up all initializer. On the upside, this means that there is far less repetition in the dependent PCH now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109823 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
ompilerInstance.h
CHDeserializationListener.h
CHReader.h
CHWriter.h
|
d692af71226d2fb537d86c670af96114ddd485c3 |
27-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Update the list of lexical decls in the TU for chained PCHs. This makes -ast-print show the decls from the dependent PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109524 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
28233428da1ebec20c893d6297ae3191318940dd |
27-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Fix use-after-free with precompiled preambles git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109505 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
fae3b2f4743dad616623c4df2fdb0f5128bd36d9 |
27-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement -fno-validate-pch at the -cc1 level, which suppresses most of the usual consistency checks used to determine when a precompiled header is incompatible with the translation unit it's being loaded into. Enable this option when loading a precompiled preamble, because the preamble loader will be performing all of this checking itself. Enable the preamble-based test now that it's working. This option is also useful for debugging Clang's PCH (<rdar://problem/7532213>). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109475 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
CHReader.h
reprocessorOptions.h
|
681d7237e1014bf64dd5ead6bf74ae55cdd19e61 |
27-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
- Fix recording of offsets of types in dependent PCHs. - Stop reading in (and thus deserializing) every declaration in the TU when creating a dependent PCH. - Switch the storage of a decl context's lexical declarations to a blob containing the IDs instead of a record. This is the only sane way of supporting update records later on. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109474 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
f4f6c9db68465b886ec2e596feaa6ecc782395a4 |
26-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Introduce basic support for loading a precompiled preamble while reparsing an ASTUnit. When saving a preamble, create a buffer larger than the actual file we're working with but fill everything from the end of the preamble to the end of the file with spaces (so the lexer will quickly skip them). When we load the file, create a buffer of the same size, filling it with the file and then spaces. Then, instruct the lexer to start lexing after the preamble, therefore continuing the parse from the spot where the preamble left off. It's now possible to perform a simple preamble build + parse (+ reparse) with ASTUnit. However, one has to disable a bunch of checking in the PCH reader to do so. That part isn't committed; it will likely be handled with some other kind of flag (e.g., -fno-validate-pch). As part of this, fix some issues with null termination of the memory buffers created for the preamble; we were trying to explicitly NULL-terminate them, even though they were also getting implicitly NULL terminated, leading to excess warnings about NULL characters in source files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109445 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
reprocessorOptions.h
|
55c6570bf6f4342203eb0ff0816fe28e6c55964a |
26-Jul-2010 |
Dan Gohman <gohman@apple.com> |
It's not necessary to call flush() on a raw_ostream immediately prior to deleting it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109441 91177308-0d34-0410-b5e6-96231b3b80d8
ocumentXML.h
|
5606220447c7901ba8d80147ddab893bb7949dd5 |
26-Jul-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Add source location information to C++ base specifiers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109396 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
87c300738174924453648c3b2d6f366c8284fac4 |
26-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Eliminate the "minimal" and printing parser actions, which only ever worked for C anyway. Also kills the -cc1 options -parse-noop and -parse-print-callbacks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109392 91177308-0d34-0410-b5e6-96231b3b80d8
rontendActions.h
rontendOptions.h
tils.h
|
754f3490c5b0f5d83361f001bc87944f23644abb |
24-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Once we've built (or reused) a precompiled preamble, create the appropriately-padded main file buffer (that has spaces in the extra "reserved" space) and thread that buffer through to the parsing function. This still does nothing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109299 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
175c4a9aa61f4449f27b729737e4438684ac6d92 |
24-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Once we've built a precompiled preamble, keep track of the details of that preamble (the preamble text, preamble file, reserved main file size). Check these details when we try to rebuild the precompiled preamble, and when nothing has changed, re-use the precompiled preamble. This code is still very much a WIP, and can't even properly be tested because we have no way to use the precompiled preamble yet. "Trust me" git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109294 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
f2f0f03d08c6143137a79a8edffc7d41823bc3c7 |
24-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Make declarations in the dependent PCH visible, for C at least. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109292 91177308-0d34-0410-b5e6-96231b3b80d8
CHDeserializationListener.h
CHReader.h
CHWriter.h
|
320198303df7c16950d83ae79c3f702b84badcf7 |
23-Jul-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
PCH read/write for selector reference pool. Finishes off radar 6507158. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109256 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
44c181aec37789f25f6c15543c164416f72e562a |
23-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Basic plumbing for generating a precompiled preamble for an ASTUnit/CXTranslationUnit. We can't actually use this preamble yet, however. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109202 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
reprocessorOptions.h
|
577d4796d358c0e72ebaa023113505226ab51b4f |
23-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Thread bitstream cursors all the way through the AST reading stuff. This way, reading a trivial 2-element chained file actually works. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109191 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
5f3dbf5bbc5cb6e3d9273e5b6e82baa14cbd999c |
22-Jul-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Serialization is implemented, fix comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109124 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
0fa7d0b15ea2a224bfe43ac745d411f915da87dd |
22-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Allow loading declcontext information from any file in the chain. Properly write source locations to dependent files. WIP git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109119 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
7cb45e37b6f924d9ddbc53ac023bbaadb4ca3534 |
22-Jul-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Support C++ try/catch statements for PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109112 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
d27d3fc2f1c02e77f43e1af43ed5386474e3d56e |
22-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Allow loading macros from any file in the chain. WIP git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109048 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
04e6fd4a5ceded0a442a6b3e6b87057b9d643fe3 |
21-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Promote some macro-related stuff to per-file data. Fix a cache-inefficient nested loop by inverting the nesting. Store the size of each file in the chain; will need this later for statement offsets. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@109030 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
971dd4498f1118abd12e001add0df06e97669b61 |
21-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Apparently not every system thinks that references in pairs are as cool as I think. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108959 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
cb526aa1184d2aa19bbfdfb1080f1fc87d9bb711 |
21-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Allow loading declarations from any file in the chain. WIP git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108956 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
aaec0aa844781dc7c3462ba140e004e589ccd355 |
21-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Allow loading types from any file in the chain. WIP git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108954 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
190faf7c30890479925193b074571e5dc30c3f53 |
20-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Allow loading source locations from any file in the chain. WIP git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108942 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
518d8cb31d26ea098eba79274abbfae1b4976853 |
20-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
More work on getting PCHReader to handle multiple files. Promote SLocOffsets to per-file data. WIP git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108930 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
f033f1da4a34f8df6e95e9929dc04ff54bb8fb01 |
20-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Introduce a new lexer function to compute the "preamble" of a file, which is the part of the file that contains all of the initial comments, includes, and preprocessor directives that occur before any of the actual code. Added a new -print-preamble cc1 action that is only used for testing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108913 91177308-0d34-0410-b5e6-96231b3b80d8
rontendActions.h
rontendOptions.h
|
2f82c5855eb93bc8467cefdb87a39167f4f53575 |
20-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Remove PCHReader::getStream(), it was unused. Inline PCHReader::getDelsCursor() into its sole caller and remove it. This reduces the attack surface of multiple PCH files towards code outside the PCH implementation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108763 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
2da08f9d8dff5f2a0ffb0cef72db80f03900a2cf |
20-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Promote IdentifierOffsets to per-file data. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108762 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
12d6da0675fa7df09e3f078995774b350e3a4652 |
20-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Promote DeclOffsets and TypeOffsets to per-file data. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108760 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
abc563f554951259bbe0315055cad92ee14d87e4 |
19-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Introduce a new libclang API, clang_reparseTranslationUnit(), which reparses an already-parsed translation unit. At the moment it's just a convenience function, but we hope to use it for performance optimizations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108756 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
reprocessorOptions.h
|
93fb9ed05655512cb14022c667058c078ca90b3c |
19-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Promote the identifier table to per-file data. Also, if a CHAINED_METADATA record exists, it has to be the first thing in the PCH file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108748 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
fbd4bf16341c1b23181c829ef2630d9a643e793c |
17-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Teach the PCH reader to load the dependency when encountering a chain metadata record. WIP git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108578 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
cdf3b83617a3e2471d592795622561506af9109e |
16-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Separate out the initial loading of a PCH so that loading chained PCHs can reuse it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108551 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
9137a5230d3164b96beb14ffb87863234b7d240f |
16-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
First baby steps towards PCHReader being able to keep track of multiple PCH files. WIP git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108537 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
1cbb50a8a9a4fe09ff43479236e89cab9ac3df17 |
16-Jul-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Make this destructor virtual to placate GCC's warnings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108534 91177308-0d34-0410-b5e6-96231b3b80d8
CHDeserializationListener.h
|
1476ed40ef6ef144937821da888c7e4d9ea0acd7 |
16-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Add a little more data to chained PCHs. WIP git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108528 91177308-0d34-0410-b5e6-96231b3b80d8
CHDeserializationListener.h
CHWriter.h
|
30c514c225342844700ed4640ec6d90ddf0e12b2 |
15-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Add a callback interface that allows interested parties to get notified whenever PCHReader deserializes a type or decl (and possibly other things in the future). Have PCHWriter implement these callbacks as noops and register to receive them if we're chaining PCHs. This will allow PCHWriter to track the IDs of these things, which it needs to write the dependent files. WIP git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108383 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
CHDeserializationListener.h
CHReader.h
CHWriter.h
|
7e9ad8b4fd446ca7cc0e630edee56d8fcc4553de |
14-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Make PCHReader cope with PCH files containing more than one predefines buffer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108340 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
77a3c9ede5cdb26b5eb3001e82bb0a36ca997e1f |
13-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Add two small utility functions to PCHReader that the writer will use. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108267 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
dd41ed59cf7aefabd40bf766d8fcc7ebd759c8e5 |
13-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Fix a documentation paste-o and eliminate a useless function parameter, both found by Sebastian git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108214 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
CHWriter.h
|
1dc13a15e789a174e5e5855efe27036dd7a9d252 |
13-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Split the normal and chained PCH writing paths and add a tiny bit of implementation to the latter. WIP. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108200 91177308-0d34-0410-b5e6-96231b3b80d8
CHWriter.h
|
6d00c1365dd3601f6d93bbda9162913c57ae788f |
10-Jul-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Add PCH support for the remaining C++ exprs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108042 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
77f4603c8b142e642300959a601ecec2b7c8e288 |
09-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
When given the -chained-pch option and a previous PCH file, have the PCHWriter emit a CHAINED_METADATA record instead of METADATA, and write a link to the previous file there. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@108014 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
CHWriter.h
|
d6ac4524cd441808f152f7e10900a8315ea31c08 |
09-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Add a frontend option -chained-pch and don't pass an active PCH reader to the PCH writer if it is not set, preventing creation of chained PCH files. Since the reader is so far unused, effectively no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107936 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
a93e3b5bde9f0a7b59215f19f176f7d69881b81c |
09-Jul-2010 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Some preparatory work for chained PCH. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107915 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
ompilerInstance.h
CHBitCodes.h
CHWriter.h
|
8871a44ae61cf97ff6fff4c640fadce9ba4cf1b0 |
08-Jul-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce PCHReader::GetTranslationUnitDecl() and use it instead of ReadDeclRecord when initializing. ReadDeclRecord would hit assertion if the translation unit declaration was already loaded during IdentifierInfo initialization. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107885 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
ed8abf18329df67b0abcbb3a10458bd8c1d2a595 |
08-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Reinstate the fix for PR7556. A silly use of isTrivial() was suppressing copies of objects with trivial copy constructors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107857 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
84745677f64863e025a6733cb29d0b94bc3a6ae2 |
08-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Revert r107828 and r107827, the fix for PR7556, which seems to be breaking bootstrap on Linux. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107837 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
016a4a90c8e75d59de731fa3aa98f0a55656e66c |
08-Jul-2010 |
Douglas Gregor <dgregor@apple.com> |
Rename CXXZeroInitValueExpr to CXXScalarValueInitExpr, to reflect its newly-narrowed scope. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107828 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
bb80a8e8887c1ec74ee135d4ad9455eafedf1508 |
07-Jul-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Delay passing InterestingDecls to the Consumer until when we know we are not in recursive loading and the declarations are fully initialized. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107783 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
744016dde06fcffd50931e94a98c850f8b12cd87 |
07-Jul-2010 |
John McCall <rjmccall@apple.com> |
Provide a hook for the benefit of clients using clang IR gen as a subroutine: emit metadata associating allocas and global values with a Decl*. This feature is controlled by an option that (intentionally) cannot be enabled on the command line. To use this feature, simply set CodeGenOptions.EmitDeclMetadata = true; and then interpret the completely underspecified metadata. :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107739 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
db2fa8a7eb67b1e8f32a590b8e000e1259cff91a |
06-Jul-2010 |
Tom Care <tcare@apple.com> |
Added a path-sensitive idempotent operation checker (-analyzer-idempotent-operation). Finds idempotent and/or tautological operations in a path sensitive context, flagging operations that have no effect or a predictable effect. Example: { int a = 1; int b = 5; int c = b / a; // a is 1 on all paths } - New IdempotentOperationChecker class - Moved recursive Stmt functions in r107675 to IdempotentOperationChecker - Minor refactoring of SVal to allow checking for any integer - Added command line option for check - Added basic test cases git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107706 91177308-0d34-0410-b5e6-96231b3b80d8
nalyzerOptions.h
|
d455add086f1dfa16ae87dc310e49493bbc2b0a6 |
06-Jul-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Add to PCH missing Sema information about VTable uses and dynamic classes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107664 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
|
006113841bdae1edb77aef75ba1ffdf2e55a3094 |
04-Jul-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Don't try to install the __[u]int128_t identifier if it is already installed by PCHReader. Currently, adding it to visible decls of a PCH'ed translation unit has no effect because adding visible decls before deserialization has no effect (the decls won't be visible). This will be fixed in a future commit; then it will force deserialization of visible decls, so avoid pointlessly installing it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107595 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
0745d0a648b75bd304045309276c70a755adaafb |
03-Jul-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Read/write CastExpr's CXXBaseSpecifierArray for PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107542 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
CHWriter.h
|
37ffed3b7f229844cae2463ff82b527506c86c74 |
02-Jul-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fully read/write CXXRecordDecl for PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107475 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
CHWriter.h
|
1ad6648cce57bd187f1853f58fef26cd9bf4934f |
01-Jul-2010 |
Daniel Dunbar <daniel@zuster.org> |
Driver/IRgen: Add support for -momit-leaf-frame-pointer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107367 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
ae8b17f1d5d303af53db5a4f4a375ea6b9356566 |
30-Jun-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Support DependentSizedArrayType for PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107267 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
37bdfe284ad365f753741d1d89c078c148b3f4af |
30-Jun-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Support ParenListExpr for PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107266 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
d98a2ab9275f896df49e42ea4e4b8871610e0f45 |
30-Jun-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
When we know that we are at sub-statement reading (which is all of PCHStmtReader) use the "faster" ReadSubStmt. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107218 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
919e693e80632d214c1f3110f6ee5d1c0b61f06b |
29-Jun-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Modify the way sub-statements are stored and retrieved from PCH. Before this commit, sub-stmts were stored as encountered and when they were placed in the Stmts stack we had to know what index each stmt operand has. This complicated supporting variable sub-stmts and sub-stmts that were contained in TypeSourceInfos, e.g. x = sizeof(int[1]); would crash PCH. Now, sub-stmts are stored in reverse order, from last to first, so that when reading them, in order to get the next sub-stmt we just need to pop the last stmt from the stack. This greatly simplified the way stmts are written and read (just use PCHWriter::AddStmt and PCHReader::ReadStmt accordingly) and allowed variable stmt operands and TypeSourceInfo exprs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@107087 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
CHWriter.h
|
de4bd18bb45a1db68996cfb949db3015fc25d10d |
28-Jun-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Support CXXPseudoDestructorExpr for PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106999 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
12dffcddb60380c5bed4f085a1f51534afda3b87 |
28-Jun-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Support DependentScopeDeclRefExpr for PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106998 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
17cfdeda476aa8899f0ccedd9cb9cdb76e89b6b4 |
28-Jun-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Fix PCH emitting/reading for template arguments that contain expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106996 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
CHWriter.h
|
3acad62a239448bef0f5848b2a0d5f7dfefd3d14 |
25-Jun-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Support DependentTemplateSpecializationType and ElaboratedType for PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106858 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
bd65bb511c26549c96b829c1282e4c877588564a |
25-Jun-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Support UnresolvedLookupExpr for PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106832 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
a77eb0862507b900a10fa352af1568e639ed10b1 |
25-Jun-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Support UnresolvedMemberExpr for PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106831 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
8dfbd8b252ba4e6cf4b7a3422f6ef0ca21312dfe |
24-Jun-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Support a couple more C++ Exprs for PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106727 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
dd41c14bfd7686b556de2acf6952e21a4f80b7aa |
23-Jun-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Support C++ class template specializations and partial specializations for PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106625 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
CHWriter.h
|
95fc98ce95d4faa4f1bb2783384150530404ea6f |
22-Jun-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Read/write CXXDeleteExpr from/to PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106552 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
44f8c37e378f716e8cbb600e3800f437cf58f9e5 |
22-Jun-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
-Introduce PCHReader::ReadTemplateArgumentLoc() -Introduce PCHWriter::AddTemplateArgumentLocInfo() -Modify PCHWriter::AddTemplateArgumentLoc() to also write TemplateArgumentLoc's TemplateArgument and move the existing calls of AddTemplateArgumentLoc() to AddTemplateArgumentLocInfo(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106533 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
CHWriter.h
|
7255a2d997b15beae82e627052fdb1b2474495c2 |
22-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
implement support for -finstrument-functions, patch by Nelson Elhage! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106507 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
|
8731ca76acf81826df7048bffd0c44c7c0f96c7f |
19-Jun-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Initial support for reading templates from PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106392 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
90b715e0df34eae2b50b9b43ec60828ed31dcf94 |
19-Jun-2010 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Initial support for writing templates to PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106391 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHWriter.h
|
0a76aae8c03cb7dd7bdbe683485560afaf695959 |
19-Jun-2010 |
Chris Lattner <sabre@nondot.org> |
introduce a new CharSourceRange class, and enhance the diagnostics routines to use them instead of SourceRange. CharSourceRange is just a SourceRange plus a bool that indicates whether the range has the end character resolved or whether the end location is the start of the end token. While most of the compiler wants to think of ranges that have ends that are the start of the end token, the printf diagnostic stuff wants to highlight ranges within tokens. This is transparent to the diagnostic stuff. To start taking advantage of the new capabilities, you can do something like this: Diag(..) << CharSourceRange::getCharRange(Begin,End) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106338 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
3177aae51a21f61ab483c52f97124bdb707da7f1 |
16-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Allow passing -cc1 level arguments to plugins. Patch by Troy Straszheim! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106113 91177308-0d34-0410-b5e6-96231b3b80d8
rontendAction.h
rontendOptions.h
rontendPluginRegistry.h
|
06057cef0bcd7804e80f3ce2bbe352178396c715 |
16-Jun-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Move CodeGenOptions.h *back* into Frontend. This should have been done when the dependency edge was reversed such that CodeGen depends on Frontend. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106065 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenOptions.h
ompilerInvocation.h
|
9b414d3e2d0cb84512b55a3275a98490b090162a |
15-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
Break Frontend's dependency on Rewrite, Checker and CodeGen in shared library configuration Currently, all AST consumers are located in the Frontend library, meaning that in a shared library configuration, Frontend has a dependency on Rewrite, Checker and CodeGen. This is suboptimal for clients which only wish to make use of the frontend. CodeGen in particular introduces a large number of unwanted dependencies. This patch breaks the dependency by moving all AST consumers with dependencies on Rewrite, Checker and/or CodeGen to their respective libraries. The patch therefore introduces dependencies in the other direction (i.e. from Rewrite, Checker and CodeGen to Frontend). After applying this patch, Clang builds correctly using CMake and shared libraries ("cmake -DBUILD_SHARED_LIBS=ON"). N.B. This patch includes file renames which are indicated in the patch body. Changes in this revision of the patch: - Fixed some copy-paste mistakes in the header files - Modified certain aspects of the coding to comply with the LLVM Coding Standards git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@106010 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
nalysisConsumer.h
nalyzerOptions.h
ackendUtil.h
odeGenAction.h
ompilerInvocation.h
ixItRewriter.h
rontendActions.h
athDiagnosticClients.h
tils.h
|
5edbdcc62098e305cd55654814dcf783a3f3c477 |
11-Jun-2010 |
Jeffrey Yasskin <jyasskin@google.com> |
Add an option -fshow-overloads=best|all to limit the number of overload candidates printed. We default to 'all'. At the moment, 'best' prints only the first 4 overloads, but we'll improve that over time. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105815 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
|
33500955d731c73717af52088b7fc0e7a85681e7 |
11-Jun-2010 |
John McCall <rjmccall@apple.com> |
Split DependentNameType into two types. DependentNameType represents the case of an elaborated-type-specifier like 'typename A<T>::foo', and DependentTemplateSpecializationType represents the case of an elaborated-type-specifier like 'typename A<T>::template B<T>'. The TypeLoc representation of a DependentTST conveniently exactly matches that of an ElaboratedType wrapping a TST. Kill off the explicit rebuild methods for RebuildInCurrentInstantiation; the standard implementations work fine because the nested name specifier is computable in the newly-entered context. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105801 91177308-0d34-0410-b5e6-96231b3b80d8
ypeXML.def
|
4cbbd94d0abeec2d7e7438d098527aa340d82389 |
08-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Add CodeGenAction support for handling LLVM IR. - This magically enables using 'clang -cc1' as a replacement for most of 'llvm-as', 'llvm-dis', 'llc' and 'opt' functionality.
The nice thing about using the backend tools this way is that they are guaranteed to exactly match how the compiler generates code (for example, setting the same backend options). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105583 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/ $ clang -cc1 -S -o - FOO.ll
/external/clang/ $ clang -cc1 -emit-llvm -O3 -o FOO.opt.ll FOO.ll
/external/clang/ and 'llc' is, e.g.:
/external/clang/ and 'llvm-dis' is:
/external/clang/ and 'opt' is, e.g.:
/external/clang/ $ clang -cc1 -emit-llvm FOO.bc -o -
/external/clang/ $ clang -cc1 -emit-llvm-bc FOO.ll -o FOO.bc
/external/clang/For example, 'llvm-as' is:
odeGenAction.h
rontendAction.h
|
faddc3e53a95c68f2c3a966e0f1e6eba110dafd6 |
08-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Add FrontendAction support for handling LLVM IR inputs. - These inputs follow an abbreviated execution path, but are still worth handling by FrontendAction so they reuse all the other clang -cc1 features. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105582 91177308-0d34-0410-b5e6-96231b3b80d8
rontendAction.h
|
685ac6665a3f91f9a66a9f44b6bf755a0cd929ea |
08-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
FrontendAction: Track active file kind. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105581 91177308-0d34-0410-b5e6-96231b3b80d8
rontendAction.h
|
eb58d831b283a9fa030a2eccc6e23480108d2fa1 |
08-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Rename hasASTSupport to hasASTFileSupport, which is more accurate. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105580 91177308-0d34-0410-b5e6-96231b3b80d8
rontendAction.h
rontendActions.h
|
d3598a65716e120aef45aa2841d730e03f7101fe |
08-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Change FrontendAction::BeginSourceFile to take the input kind instead of an IsAST bool. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105578 91177308-0d34-0410-b5e6-96231b3b80d8
rontendAction.h
|
c34ce3fa613d5e4a283e53615fceafd17390445b |
08-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Lift InputKind enumeration to top level. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105577 91177308-0d34-0410-b5e6-96231b3b80d8
rontendAction.h
rontendOptions.h
|
05a7f3ddce9a88249b05b896e70f66e9ed381743 |
08-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Drop unnecessary TargetData argument to EmitBackendOutput, we always create modules which have target data strings. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105576 91177308-0d34-0410-b5e6-96231b3b80d8
ackendUtil.h
|
897c6768db8e09c692009280d9f1d71fb17023bf |
08-Jun-2010 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Factor clang::EmitBackendOutput out of CodeGenAction. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105575 91177308-0d34-0410-b5e6-96231b3b80d8
ackendUtil.h
|
6206d53f67613958ae1b023aba337ebb46f11a8b |
05-Jun-2010 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Added AccessSpecDecl node. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105525 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
76bd1f387e6a7b7abfe53f63b3bd429b97bb80f0 |
01-Jun-2010 |
John McCall <rjmccall@apple.com> |
Alter the ExternalASTSource interface to permit by-name lookups. PCH continues to bring in the entire lookup table at once. Also, give ExternalSemaSource's vtable a home. This is important because otherwise any reference to it will cause RTTI to be emitted, and since clang is compiled with -fno-rtti, that RTTI will contain unresolved references (to ExternalASTSource's RTTI). So this change makes it possible to subclass ExternalSemaSource from projects compiled with RTTI, as long as the subclass's home is compiled with -fno-rtti. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@105268 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
d8e8a58ee35ab334ab9d0c2154dca029c1822e8a |
25-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Only enable code patterns (e.g., try { statements } catch (...) { statements }) in the code-completion results if explicitly requested. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104637 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
rontendOptions.h
|
32148cef25570a4fbe3ad0ec497ce3ae2cf1b774 |
25-May-2010 |
Daniel Dunbar <daniel@zuster.org> |
Driver/Frontend: Add -emit-codegen-only, for running irgen + codegen but not the .s printer or .o writer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104623 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenAction.h
rontendOptions.h
|
45806fe5b89de739af95bea2e0d1a5822d53ae9b |
25-May-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Make this class useful as a base. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104578 91177308-0d34-0410-b5e6-96231b3b80d8
rontendActions.h
|
6362b893731ccf4480a96527db9e55e04b801503 |
18-May-2010 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Add option '-analyzer-max-loop', which specifies the maximum number of times the analyzer will go through a loop. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@104007 91177308-0d34-0410-b5e6-96231b3b80d8
nalysisConsumer.h
|
c12c5bba6ceb6acd4e51e7a0fc03257da9cfd44e |
15-May-2010 |
John McCall <rjmccall@apple.com> |
Substantially alter the design of the Objective C type AST by introducing ObjCObjectType, which is basically just a pair of one of {primitive-id, primitive-Class, user-defined @class} with a list of protocols. An ObjCObjectPointerType is therefore just a pointer which always points to one of these types (possibly sugared). ObjCInterfaceType is now just a kind of ObjCObjectType which happens to not carry any protocols. Alter a rather large number of use sites to use ObjCObjectType instead of ObjCInterfaceType. Store an ObjCInterfaceType as a pointer on the decl rather than hashing them in a FoldingSet. Remove some number of methods that are no longer used, at least after this patch. By simplifying ObjCObjectPointerType, we are now able to easily remove and apply pointers to Objective-C types, which is crucial for a certain kind of ObjC++ metaprogramming common in WebKit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103870 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
edd8df9cd260a74cfeea3c921a78d5f33c659573 |
13-May-2010 |
Chris Lattner <sabre@nondot.org> |
"this patch properly addresses escaping < and > which might appear (e.g. for C++ operators) in the xml dump. I also re-enabled the unit test for ast-print-xml (or so I think) at least, make test didn't fail..." patch by Sebastien Binet! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103671 91177308-0d34-0410-b5e6-96231b3b80d8
ocumentXML.h
|
465d41b92b2c862f3062c412a0538db65c6a2661 |
11-May-2010 |
Abramo Bagnara <abramo.bagnara@gmail.com> |
Merged Elaborated and QualifiedName types. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103517 91177308-0d34-0410-b5e6-96231b3b80d8
ypeXML.def
|
4bd98e886012817fcfd40aa4c8329fa48f69b0a9 |
10-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Improved -ast-print-xml for C++, from Sebastien Binet! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103412 91177308-0d34-0410-b5e6-96231b3b80d8
eclXML.def
ocumentXML.h
ypeXML.def
|
5921863d8f24084797863b5df37842113bac4352 |
10-May-2010 |
Chris Lattner <sabre@nondot.org> |
pch'ify CXXNewExpr and CXXZeroInitValueExpr git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103390 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
d2598368876cfe40bc8465540033bc5b5e58d8af |
10-May-2010 |
Chris Lattner <sabre@nondot.org> |
pchify CXXTemporary, CXXBindTemporaryExpr, and CXXExprWithTemporaries. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103387 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
030854b95f7bfd86aaa8afd9ae1aff9768a37e9a |
09-May-2010 |
Chris Lattner <sabre@nondot.org> |
pch'ify default argument definitions and uses. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103376 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
2fbdfcdf3bbf7b941853d38b123930755e837437 |
09-May-2010 |
Chris Lattner <sabre@nondot.org> |
pch'ify 'this' and 'throw' git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103375 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
14ab24f01e36d495fce183aa67b41e45cdd54f39 |
09-May-2010 |
Chris Lattner <sabre@nondot.org> |
pch'ify typeid. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103374 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
1817bd483b538fd3f4530649f5cb900bad9e8a76 |
09-May-2010 |
Chris Lattner <sabre@nondot.org> |
pchify CXXMemberCallExpr correctly. Before it would serialize and deserialize as a CallExpr which is close, but ends up deserializing with the wrong stmt class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103371 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
6ad9ac097918fbdeb443ea7b99d4db9e49b28534 |
07-May-2010 |
Chris Lattner <sabre@nondot.org> |
add PCH support for a bunch of C++ Decls, patch by Andrew Sutton! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103301 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
fde75965ced8f09b9136f6d9a0f2ec35309e1a35 |
07-May-2010 |
Chris Lattner <sabre@nondot.org> |
add more types to -ast-print-xml, PR5006 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103294 91177308-0d34-0410-b5e6-96231b3b80d8
ypeXML.def
|
f78cc4360eb4284091d0d38f3055084360f8c753 |
07-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Add a stub frontend action for BoostCon, for next week's workshop. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103258 91177308-0d34-0410-b5e6-96231b3b80d8
rontendActions.h
rontendOptions.h
|
c40f73c6e715044d327409564bf3656254101d46 |
06-May-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Remove a dependency on Frontend headers in the Driver library. Also saves building and passing arguments to cc1 layer when setting values to their defaults. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103162 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
|
7b99d12b4ca67fccdf5090761ba257732e954e75 |
06-May-2010 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Make -analyzer-inline-call not a separate analysis. Instead it's a boolean flag now, and can be used with other analyses. Only turned it on for C++ methods for now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103160 91177308-0d34-0410-b5e6-96231b3b80d8
nalysisConsumer.h
|
6fbe8398ba1680ffc5daa7395850ff8765b7905b |
04-May-2010 |
Chris Lattner <sabre@nondot.org> |
add a new -fdiagnostics-show-category=none/id/name option, giving control over choice of: t.c:3:11: warning: conversion specifies type 'char *' but the argument has type 'int' [-Wformat] t.c:3:11: warning: conversion specifies type 'char *' but the argument has type 'int' [-Wformat,1] t.c:3:11: warning: conversion specifies type 'char *' but the argument has type 'int' [-Wformat,Format String] dox to come. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103056 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
|
27b0f510d1d4f9ed5668eec1195f04b4a74a4426 |
04-May-2010 |
Chris Lattner <sabre@nondot.org> |
add the ability to associate 'category' names with diagnostics and diagnostic groups. This allows the compiler to group diagnostics together (e.g. "Logic Warning", "Format String Warning", etc) like the static analyzer does. This is not exposed through anything in the compiler yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103051 91177308-0d34-0410-b5e6-96231b3b80d8
rontendDiagnostic.h
|
6c1cb9916e9988dcdd65b9266dbe24afd173427a |
04-May-2010 |
Douglas Gregor <dgregor@apple.com> |
Introduce a limit on the depth of the macro instantiation backtrace printed in a diagnostic, similar to the limit we already have on the depth of the template instantiation backtrace. The macro instantiation backtrace is limited to 10 "instantiated from:" diagnostics; when it's longer than that, we'll show the first half, then say how many were suppressed, then show the second half. The limit can be changed with -fmacro-instantiation-limit=N, and turned off with N=0. This eliminates a lot of note spew with libraries making use of the Boost.Preprocess library. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@103014 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
extDiagnosticPrinter.h
|
ed8afacb8118b71bcfa8017059e51da325e7691b |
30-Apr-2010 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Refactor the AnalysisConsumer to analyze functions after the whole translation unit is parsed. This enables us to inline some calls when still analyzing one function at a time. Actions are classified into Function, CXXMethod, ObjCMethod, ObjCImplementation. This does not hurt performance much. The analysis time for sqlite3.c: before: real 17m52.440s user 17m49.460s sys 0m2.010s after: real 18m0.500s user 17m56.900s sys 0m2.330s DisplayProgress option is broken now. -inine-call action is removed. It will be reenabled in another form, perhaps as an indenpendant option. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102689 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
8ecdb65716cd7914ffb2eeee993fa9039fcd31e8 |
29-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
Completely reimplement __builtin_offsetof, based on a patch by Roberto Amadini. This change introduces a new expression node type, OffsetOfExpr, that describes __builtin_offsetof. Previously, __builtin_offsetof was implemented using a unary operator whose subexpression involved various synthesized array-subscript and member-reference expressions, which was ugly and made it very hard to instantiate as a template. OffsetOfExpr represents the AST more faithfully, with proper type source information and a more compact representation. OffsetOfExpr also has support for dependent __builtin_offsetof expressions; it can be value-dependent, but will never be type-dependent (like sizeof or alignof). This commit introduces template instantiation for __builtin_offsetof as well. There are two major caveats to this patch: 1) CodeGen cannot handle the case where __builtin_offsetof is not a constant expression, so it produces an error. So, to avoid regressing in C, we retain the old UnaryOperator-based __builtin_offsetof implementation in C while using the shiny new OffsetOfExpr implementation in C++. The old implementation can go away once we have proper CodeGen support for this case, which we expect won't cause much trouble in C++. 2) __builtin_offsetof doesn't work well with non-POD class types, particularly when the designated field is found within a base class. I will address this in a subsequent patch. Fixes PR5880 and a bunch of assertions when building Boost.Python tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102542 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
tmtXML.def
|
60909e1242f19aa8b1b87110aaa8e394f329ae96 |
28-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
add regex support for -verify mode. You can now do things like expected-error-re {{someregex}} Patch by mike-m! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102516 91177308-0d34-0410-b5e6-96231b3b80d8
erifyDiagnosticsClient.h
|
ba5f6eced29937e4e4851a2c0980744768413d66 |
24-Apr-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Teach clang -fixit to modify files in-place, or -fixit=suffix to create new files with the additional suffix in the middle. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102230 91177308-0d34-0410-b5e6-96231b3b80d8
ixItRewriter.h
rontendActions.h
rontendOptions.h
|
2bb5ddaff86ee73d2cea7ec1835978afc88a83f0 |
23-Apr-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
More work toward implementing NeXt's -fno-constant-cfstrings - wip. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@102189 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
|
5c5db4e94bd1243ba92563acba51ba66afa94917 |
20-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
change FullSourceLoc to have a *const* SourceManager&, eliminating a const_cast. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101940 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
575cf3791216c33770ba950430493cdd43099f8f |
20-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
Introduce a limit on the depth of the template instantiation backtrace we will print with each error that occurs during template instantiation. When the backtrace is longer than that, we will print N/2 of the innermost backtrace entries and N/2 of the outermost backtrace entries, then skip the middle entries with a note such as: note: suppressed 2 template instantiation contexts; use -ftemplate-backtrace-limit=N to change the number of template instantiation entries shown This should eliminate some excessively long backtraces that aren't providing any value. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101882 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
|
d4a97a18ea3cda3ba095e7c0c6708e7a39cf31db |
15-Apr-2010 |
Nick Lewycky <nicholas@mxc.ca> |
Teach -fixit to modify all of its inputs instead of just the main file, unless -fixit-at specified a particular fixit to fix, or the -o flag was used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101359 91177308-0d34-0410-b5e6-96231b3b80d8
ixItRewriter.h
|
3f87fb08dd502309960646db01099fb4c1be9a7c |
15-Apr-2010 |
Daniel Dunbar <daniel@zuster.org> |
Driver/Frontend: Add support for -mllvm, which forwards options to the LLVM option parser. - Note that this is a behavior change, previously -mllvm at the driver level forwarded to clang -cc1. The driver does a little magic to make sure that '-mllvm -disable-llvm-optzns' works correctly, but other users will need to be updated to use -Xclang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101354 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
c09289d104b8e01ecd998e3f08b2b0561049e1dc |
13-Apr-2010 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Add a cc1 option to specify the max number of nodes the analyzer can explore. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@101120 91177308-0d34-0410-b5e6-96231b3b80d8
nalysisConsumer.h
|
b69eca5d2196c06870d3eeb62d689feebaaa8a4d |
08-Apr-2010 |
Daniel Dunbar <daniel@zuster.org> |
Fronted: Kill overly specialized RecordLayoutDumper, just make -dump-record-layouts a bit that Sema honors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100747 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
rontendActions.h
rontendOptions.h
|
c100214fdc41a7ea215f75d433eb1cb829fd4330 |
07-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
add clang -cc1 level support for "-ferror-limit 42" git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100687 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
|
719770dcfcb3987e8a2377dcca97955301445eb5 |
06-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
Make code-completion for Objective-C message sends to "id" work in the presence of precompiled headers by forcibly loading all of the methods we know about from the PCH file before constructing our code-completion list. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100535 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
28019772db70d4547be05a042eb950bc910f134f |
06-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
Make Diagnostic reference-counted, which is simpler than juggling maybe-ownership vs. ownership. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100498 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
ompilerInstance.h
|
3687e9d3a5dbfa9963af02a49a2b139d91310813 |
05-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
Clarify the ownership semantics of the Diagnostic object used by ASTUnit. Previously, we would end up with use-after-free errors because the Diagnostic object would be creating in one place (say, CIndex) and its ownership would not be transferred into the ASTUnit. Fixes <rdar://problem/7818608>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100464 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
8b96253907c47141af0b7b2a44a368748d006a87 |
05-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
Make the ASTUnit constructor private; all ASTUnit clients should be using the static factory functions git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100444 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
405634b215f19eec7183bd8005e34aa5a02f64a1 |
05-Apr-2010 |
Douglas Gregor <dgregor@apple.com> |
Minor ASTUnit cleanups: - Rename "Diagnostics" and related to "StoredDiagnostics", to better capture what we're actually storing. - Move SourceManager and FileManager to the heap. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100441 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
849b243d4065f56742a4677d6dc8277609a151f8 |
31-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Reinstate my CodeModificationHint -> FixItHint renaming patch, without the C-only "optimization". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100022 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
4714c12a1ab759156b78be8f109ea4c12213af57 |
31-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Rename TypenameType to DependentNameType in anticipation of some refactoring work in this area. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100019 91177308-0d34-0410-b5e6-96231b3b80d8
ypeXML.def
|
275313cbb0847f1f117f60d144d113804d4fa42d |
31-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Revert r100008, which inexplicably breaks the clang-i686-darwin10 builder git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100018 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
d0ebe080eee7c37e73754068b47fd90cc506e128 |
31-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Rename CodeModificationHint to FixItHint, since we've been using the term "fix-it" everywhere and even *I* get tired of long names sometimes. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@100008 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
4c2bcad7b843c10fd4a2ffd43da40bfefb4dc8ba |
24-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement support for -nostdc++. Fixes PR6446. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99417 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
|
788f5a1242c04762f91eaa7565c07b9865846d88 |
20-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Optimize region-of-interest based cursor walks through the preprocessed entities by grouping preprocessed entities by file ID. This drastically improves performance of repeated clang_getCursor() calls local tests, although it is a bit ugly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99015 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
c6fbbedb3e90ff2f04828c36fd839e01468679f5 |
19-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Remove the capture, serialization, and deserialization of comment ranges as part of the ASTContext. This code is not and was never used, but contributes ~250k to the size of the Cocoa.h precompiled header. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99007 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
6a5a23f8e7fb65e028c8092bc1d1a1d9dfe2e9bc |
19-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement serialization and lazy deserialization of the preprocessing record (which includes all macro instantiations and definitions). As with all lay deserialization, this introduces a new external source (here, an external preprocessing record source) that loads all of the preprocessed entities prior to iterating over the entities. The preprocessing record is an optional part of the precompiled header that is disabled by default (enabled with -detailed-preprocessing-record). When the preprocessor given to the PCH writer has a preprocessing record, that record is written into the PCH file. When the PCH reader is given a PCH file that contains a preprocessing record, it will be lazily loaded (which, effectively, implicitly adds -detailed-preprocessing-record). This is the first case where we have sections of the precompiled header that are added/removed based on a compilation flag, which is unfortunate. However, this data consumes ~550k in the PCH file for Cocoa.h (out of ~9.9MB), and there is a non-trivial cost to gathering this detailed preprocessing information, so it's too expensive to turn on by default. In the future, we should investigate a better encoding of this information. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@99002 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
2758595023c5c7c0495f19260089f975022c50dc |
19-Mar-2010 |
Daniel Dunbar <daniel@zuster.org> |
clang -cc1: Kill off -empty-input only, and replace with -init-only which is an actual action. - This is easier to use, and more reliable for timing the thing this was actually meant to be useful for. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98978 91177308-0d34-0410-b5e6-96231b3b80d8
rontendActions.h
rontendOptions.h
|
94dc8f640ebea52241412512ed48601626edbc58 |
19-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Optionally store a PreprocessingRecord in the preprocessor itself, and tie its creation to a CC1 flag -detailed-preprocessing-record. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98963 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
CHWriter.h
reprocessorOptions.h
|
4ae8f298b1ea51b4c2234f9148e2e4349c9bdd23 |
18-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Introduce the notion of a "preprocessing record", which keeps track of the macro definitions and macro instantiations that are found during preprocessing. Preprocessing records are *not* generated by default; rather, we provide a PPCallbacks subclass that hooks into the existing callback mechanism to record this activity. The only client of preprocessing records is CIndex, which keeps track of macro definitions and instantations so that they can be exposed via cursors. At present, only token annotation uses these facilities, and only for macro instantiations; both will change in the near future. However, with this change, token annotation properly annotates macro instantiations that do not produce any tokens and instantiations of macros that are later undef'd, improving our consistency. Preprocessing directives that are not macro definitions are still handled by clang_annotateTokens() via re-lexing, so that we don't have to track every preprocessing directive in the preprocessing record. Performance impact of preprocessing records is still TBD, although it is limited to CIndex and therefore out of the path of the main compiler. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98836 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
d5d7b3f61f82b0fed9d6f02839bc72e528332911 |
18-Mar-2010 |
Ted Kremenek <kremenek@apple.com> |
Turn several PCH reader assertions into compiler errors, thus making the PCHReader more robust to corrupt or invalid PCH files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98788 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
5bf932bd0d5db98273938675dbf81cbb2f5ffff7 |
17-Mar-2010 |
Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> |
Simplify ProcessWarningOptions since it can't fail git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98721 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
ce45414dd8c9631eda43b17a04e560da530168d0 |
17-Mar-2010 |
Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> |
Remove useless forward decl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98720 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
78fbbfe0fe66cf3bbee744a1b702da95ad7fcd13 |
17-Mar-2010 |
Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> |
Remove useless foward decl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98718 91177308-0d34-0410-b5e6-96231b3b80d8
erifyDiagnosticsClient.h
|
12fab31aa5868b1a6b52246b5a87daa48a338fe2 |
16-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Fix header-search problems with precompiled headers, where the presence or absence of header map arguments when using the precompiled header would cause Clang to get confused about which headers had already been included/imported, along with their controlling macros. The fundamental problem is that the serialization of the header search information was relying on the UIDs of FileEntry objects at PCH generation time and PCH load time to be equivalent, which effectively means that we had to probe the same files in the same order. Differing header map arguments caused an extra FileEntry lookup, but it's easy to imagine other minor command-line arguments triggering this problem. Header-search information is now encoded along with the source-location entry for a file, so that we register information about a file's properties as a header at the same time we create the FileEntry for that file. Fixes <rdar://problem/7743243>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98636 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
|
f715ca12bfc9fddfde75f98a197424434428b821 |
16-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Give SourceManager a Diagnostic object with which to report errors, and start simplifying the interfaces in SourceManager that can fail. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98594 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
3cb0ebd5f76abcb776f7cb4062bd79e3268c0dc4 |
10-Mar-2010 |
John McCall <rjmccall@apple.com> |
Create a new InjectedClassNameType to represent bare-word references to the injected class name of a class template or class template partial specialization. This is a non-canonical type; the canonical type is still a template specialization type. This becomes the TypeForDecl of the pattern declaration, which cleans up some amount of code (and complicates some other parts, but whatever). Fixes PR6326 and probably a few others, primarily by re-establishing a few invariants about TypeLoc sizes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98134 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
07425c9ae12e62572eebc541522c70a73a819c2b |
08-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Improve XML output for C++ classes, from Olaf Krzikalla! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97954 91177308-0d34-0410-b5e6-96231b3b80d8
eclXML.def
|
e51dd7be67808d52c80c09b832d875e9655ce6e0 |
06-Mar-2010 |
Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> |
Lowercase for consistency git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97878 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
667514d92afd1485765cb4e2bbe452883adc989b |
05-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
The Windows build is just too weird; there's no real cost to doing the concurrency checks for ASTUnit in all builds git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97840 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
12312b807e7c00504c2e5b3b5e2d11bfbca4b8d8 |
05-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
Switch from NDEBUG to _DEBUG, since our Windows build is funny git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97835 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
bdf6062bc10aa3b73b16402b440b8073310acd06 |
05-Mar-2010 |
Douglas Gregor <dgregor@apple.com> |
A little hack to identify unwanted concurrency in CIndex git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97831 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
f84df9f076038ad16e1ee412162c328cd091bc59 |
26-Feb-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Make the destructor public. ddunbar, lemme know if you'd prefer a different fix, just trying to get the build bots happy again. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97223 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenAction.h
|
9ad1c0205ec478d64b3ed6d3dde5efaa9c9932c5 |
25-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
Move ~CodeGenAction out-of-line. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97166 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenAction.h
|
b954e98893505d401acddac42650a81b83d8dc39 |
25-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Add CodeGenAction::takeModule(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97111 91177308-0d34-0410-b5e6-96231b3b80d8
odeGenAction.h
|
4ee34616c6fa7700e27c0a5311718d844cbb7d2c |
25-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
Frontend: Pull CodeGenAction out more, and eliminate CreateBackendConsumer. This is the way I would like to move the frontend function towards -- distinct pieces of functionality should be exposed only via FrontendAction implementations which have clean and relatively-stable APIs. This also isolates the surface area in clang which depends on LLVM CodeGen. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97110 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
odeGenAction.h
rontendActions.h
|
b96b6709fbf5044ab06223ebfefccd58d7aaa88b |
25-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
Add TextDiagnosticPrinter::setPrefix, for adding a string to prefix diagnostic messages with. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@97101 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
0cef483f3b9d6a7f9fdbc5910d0a3ed64130e8e1 |
21-Feb-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement PCH support for C++ namespaces. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96738 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
313e26c4e81f0e467490a530548450f4c824a6c4 |
19-Feb-2010 |
Douglas Gregor <dgregor@apple.com> |
Teach ASTUnit to keep track of temporary files, then delete them when the ASTUnit itself is destroyed. Fixes <rdar://problem/7649385>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96628 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
a88084b78fd4ca5d3d858c14b02414f8cc399f02 |
18-Feb-2010 |
Douglas Gregor <dgregor@apple.com> |
Rework how CIndex handles diagnostics. Rather than using a callback, we attach diagnostics to translation units and code-completion results, so they can be queried at any time. To facilitate this, the new StoredDiagnostic class stores a diagnostic in a serializable/deserializable form, and ASTUnit knows how to capture diagnostics in this stored form. CIndex's CXDiagnostic is a thin wrapper around StoredDiagnostic, providing a C interface to stored or de-serialized diagnostics. I've XFAIL'd one test case temporarily, because currently we end up storing diagnostics in an ASTUnit that's never returned to the user (because it contains errors). I'll introduce a temporary fix for this soon; the real fix will be to allow us to return and query invalid ASTs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96592 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
b26d483a9f7fdc815e87bbbac4af916307b4c07d |
16-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
ASTUnit: Constant fold UseBumpAllocator to true, we don't care to support this as an argument. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96316 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
f7acc37450d59ef751df73acb91de73850cc6517 |
16-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
ASTUnit::LoadFromCompilerInvocation - Take ownership of the provided invocation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96315 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
42e9f8e4983d50f896ec716207817b9d96e7e79c |
16-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
CompilerInstance: Move LLVMContext member out of constructor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96314 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
676ca153e04b1c6be477bc8a10f1e06256850cee |
14-Feb-2010 |
Ted Kremenek <kremenek@apple.com> |
Change LLVMConventionsChecker to accept an entire translation unit instead of operating on each code decl. This exposes two flaws in AnalysisConsumer that should eventually be fixed: (1) It is not possible to associate multiple "actions" with a single command line argument. This will require the notion of an "analysis" group, and possibly tablegen support. (although eventually we want to support dynamically loading analyses as well) (2) AnalysisConsumer may not actually be scanning the declarations in namespaces. We'll experiment first in LLVMConventionsChecker before changing the behavior in AnalysisConsumer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96183 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
6dd66ed959b7f60749dd0040507b3f304183a1b6 |
14-Feb-2010 |
Ted Kremenek <kremenek@apple.com> |
Add new static analyzer for checking LLVM coding conventions: -analyzer-check-llvm-conventions Currently these checks are intended to be largely syntactical, but may get more sophisticated over time. As an initial foray into this brave new world, emit a static analyzer warning when binding a temporary 'std::string' to an 'llvm::StringRef' where the lifetime of the 'std::string' does not outlive the 'llvm::StringRef'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@96147 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
e6bbc01d1c4ec5241df36042e0a4a12a6711934b |
12-Feb-2010 |
Tanya Lattner <tonic@nondot.org> |
Implementing unused function warning. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95940 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
|
9bed8798964d9f07599c2c9199701f86fbc70e20 |
09-Feb-2010 |
Douglas Gregor <dgregor@apple.com> |
Introduce a testbed for merging multiple ASTs into a single AST context with the AST importer. WIP, still useless but at least it has a test. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95683 91177308-0d34-0410-b5e6-96231b3b80d8
rontendAction.h
rontendActions.h
rontendOptions.h
|
089459a16bf7e9cd10617d1fac5ec0240a0a1ee6 |
08-Feb-2010 |
Douglas Gregor <dgregor@apple.com> |
Implement basic importing and merging of variable declarations within the AST importer. This doesn't actually do anything (yet), because we don't have driver logic for merging ASTs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95570 91177308-0d34-0410-b5e6-96231b3b80d8
rontendAction.h
|
eb7f96141f754150a92433286fa385910a22f494 |
07-Feb-2010 |
Sam Weinig <sam.weinig@gmail.com> |
Roll r95513 back in. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95515 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
a8ad5d4975aea17c0e7868f83c25083a0eb2040d |
07-Feb-2010 |
Sam Weinig <sam.weinig@gmail.com> |
Roll out r95513, it seems to have broken self hosting. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95514 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
1eb1113b139503a3895714d94ec9c037ae62d3b1 |
07-Feb-2010 |
Sam Weinig <sam.weinig@gmail.com> |
Add PCH support for CXXBoolLiteralExpr and CXXNullPtrLiteralExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95513 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
565e465c6d0093f1bf8414b2cabdc842022385a9 |
05-Feb-2010 |
Ted Kremenek <kremenek@apple.com> |
Rename -cc1 option '-checker-cfref' to '-analyzer-check-objc-mem'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95348 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
7909fc8833e734aac521d7d6945bd823d75150ac |
05-Feb-2010 |
Ted Kremenek <kremenek@apple.com> |
Rename -cc1 option '-warn-objc-missing-dealloc' to '-analyzer-check-objc-missing-dealloc'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95347 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
fa15be4cf95b7ed2d1df583497b16a6f897cf789 |
05-Feb-2010 |
Ted Kremenek <kremenek@apple.com> |
Rename -cc1 option '-warn-objc-methodsigs' to '-analyzer-check-objc-methodsigs'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95346 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
2ade536f6815bf6ff128333520232c3b0e701146 |
05-Feb-2010 |
Ted Kremenek <kremenek@apple.com> |
Rename -cc1 option '-warn-objc-unused-ivars' to '-analyzer-check-objc-unused-ivars'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95345 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
cd9902bfb79c5c67559360514951714bdafac36e |
05-Feb-2010 |
Ted Kremenek <kremenek@apple.com> |
Rename -cc1 option '-warn-dead-stores' to '-analyzer-check-dead-stores'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95343 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
fb3f893bc58071e548c97a3d667c8ab9b0c38cfb |
05-Feb-2010 |
Ted Kremenek <kremenek@apple.com> |
Rename -cc1 option '-warn-security-syntactic' to '-analyzer-check-security-syntactic'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95342 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
5d26bc02e297543a0252d675d31632790b9a7e6b |
03-Feb-2010 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Add skeleton of flat store manager. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95214 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
da1573f95902a42aa4d11e8f45ab98ec7e27bc28 |
03-Feb-2010 |
Daniel Dunbar <daniel@zuster.org> |
clang -cc1: Wire up -emit-obj, for emitting object files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@95182 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
rontendActions.h
rontendOptions.h
|
807b06157a1a5c050520fc194d32f16d22d423a8 |
30-Jan-2010 |
Daniel Dunbar <daniel@zuster.org> |
ASTUnit: Ensure the CompilerInvocation object used in LoadFromCommandLine is live as long as the ASTUnit. This is useful for clients which want to maintain pointers to the LangOptions object which ultimately lives in the CompilerInvocation, although it would be nice to make all of this ownership stuff more explicit and obvious. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94924 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
6228ca00121669ec06a19df4fad87d5049c097cf |
30-Jan-2010 |
Daniel Dunbar <daniel@zuster.org> |
CompilerInstance: Change to not contain the CompilerInvocation object. This allows clients to install their own CompilerInvocation object, which is important for clients that may wish to create references to things like LangOptions whose lifetime will extend past that of the CompilerInstance. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94923 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
d93256e55673a17d18543397ec462416acb13792 |
28-Jan-2010 |
Douglas Gregor <dgregor@apple.com> |
Introduce serialization and deserialization of diagnostic information so that CIndex can report diagnostics through the normal mechanisms even when executing Clang in a separate process. This applies both when performing code completion and when using ASTs as an intermediary for clang_createTranslationUnitFromSourceFile(). The serialized format is not perfect at the moment, because it does not encapsulate macro-instantiation information. Instead, it maps all source locations back to the instantiation location. However, it does maintain source-range and fix-it information. To get perfect fidelity from the serialized format would require serializing a large chunk of the source manager; at present, it isn't clear if this code will live long enough for that to matter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94740 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
|
4db64a461cb3442934afe43c83ed3f17f7c11c1d |
23-Jan-2010 |
Douglas Gregor <dgregor@apple.com> |
Extend clang_createTranslationUnitFromSourceFile() to support creating translation units that include unsaved files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94258 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
reprocessorOptions.h
|
5b4ec636637c9d876102240127cc0dca9280e83a |
22-Jan-2010 |
Ted Kremenek <kremenek@apple.com> |
Rename pch::SVN_BRANCH_REVISION to pch::VERSION_CONTROL_BRANCH_REVISION. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@94214 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
8a32907d540be6deef8e6c2efd29bbe2da05eac2 |
20-Jan-2010 |
Chandler Carruth <chandlerc@gmail.com> |
Fix a layering issue between Basic and FE by moving a utility class into Basic. This isn't entirely satisfactory, as it seems an implementation detail, and with nothing to do with TargetInfo. Suggestions on where to put this are welcome. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93974 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
ce757a7a1ee905f87551996a69da3e95e8afeeb7 |
16-Jan-2010 |
Sam Weinig <sam.weinig@gmail.com> |
Add PCH support for CXXStaticCastExpr, CXXDynamicCastExpr, CXXReinterpretCastExpr, CXXConstCastExpr and CXXFunctionalCastExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93658 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
7d957472ef9a09048c03d8a11028536f908c18b9 |
13-Jan-2010 |
Fariborz Jahanian <fjahanian@apple.com> |
Predefine __weak attribute when doing objective-c rewriting for any target. (refixes radar 7530235). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93331 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
tils.h
|
52388f9aefba585475a38081272ce582d033c883 |
13-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
diagnose invalid values of -ftabstop, patch by Christian Adaker! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93288 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
|
0397af277e3bba16da1fd125ddba07415686b429 |
13-Jan-2010 |
Daniel Dunbar <daniel@zuster.org> |
cc1: Factor out CompilerInstance::ExecuteAction which has the majority of the clang -cc1 logic for running an action against a set of options. - This should make it easier to build tools that have a clang -cc1 like interface, but aren't actually part of clang -cc1. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93282 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
124fca533d9fef2e3f6359283909bd342b5f5f26 |
09-Jan-2010 |
Chris Lattner <sabre@nondot.org> |
implement -ftabstop=width, patch by Christian Adåker git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93078 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
|
b1b5b901ca229ce05dc40abbec8bebe7b1096e42 |
09-Jan-2010 |
Benjamin Kramer <benny.kra@googlemail.com> |
Move MacroBuilder into Frontend/Utils.h and clean it up a bit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@93057 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
88a35862fbe473f2a4f0c19f24dbe536937e1dc6 |
04-Jan-2010 |
Douglas Gregor <dgregor@apple.com> |
Teach Preprocessor::macro_begin/macro_end to lazily load all macro definitions from a precompiled header. This ensures that code-completion with macro names behaves the same with or without precompiled headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92497 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
f5f7d864f5067d1ea4bff7fcf41b53a43b7b48ba |
29-Dec-2009 |
Anders Carlsson <andersca@mac.com> |
Get rid of FixedWidthIntType, as suggested by Chris and Eli. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92246 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
ypeXML.def
|
49ac8e63a0622ce049e58decab9e844b1e8c7ecd |
23-Dec-2009 |
Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> |
Remove RewriteBlocks. It has been superseded by RewriteObjC git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92014 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
rontendActions.h
rontendOptions.h
|
06159e878569e5f39bf0e8f11b84ac3ad0970597 |
15-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
update to match LLVM API change: Remove isPod() from DenseMapInfo, splitting it out to its own isPodLike type trait. This is a generally useful type trait for more than just DenseMap, and we really care about whether something acts like a pod, not whether it really is a pod. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91422 91177308-0d34-0410-b5e6-96231b3b80d8
CHWriter.h
|
8b9adfea5e834eaee0f45d8cc7fb052d68df4a46 |
15-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add -resource-dir to clang -cc1, this allows the base directory for compiler resources (e.g., /usr/lib/clang/1.1) to be passed on the command line instead of computed. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91370 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
eaderSearchOptions.h
|
869824e87940f97b87064db2df2861e82e08a8c6 |
13-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Lift builtin-include-path logic out of ASTUnit::LoadFromCommandLine and fix CIndex to pass in the right directory (previously it was using the path to the main executable, which generally is wrong). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91238 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
1e69fe3a9f0a42b32a3000bda51677d51416564e |
13-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
CompilerInvocation: Move builtin-include-path logic out of CompilerInvocation::CreateFromArgs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91237 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
eaderSearchOptions.h
|
dd63b28107f21692b5065588f0e90b4534946f93 |
12-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Update docs/comments/utils/examples to refer to clang -cc1 instead of clang-cc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@91176 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
|
fc576514d06c46a7cac49500169411d82f38d04b |
07-Dec-2009 |
Ted Kremenek <kremenek@apple.com> |
Add clang-cc option '-analyzer-opt-analyze-nested-blocks' to treat block literals as an entry point for analyzer checks. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90810 91177308-0d34-0410-b5e6-96231b3b80d8
nalysisConsumer.h
|
a93c934af4fbf97cbe8e649d82e68ccacfe57c95 |
07-Dec-2009 |
John McCall <rjmccall@apple.com> |
DeclaratorInfo -> TypeSourceInfo. Makes an effort to rename associated variables, but the results are imperfect. For posterity, I did: cat <<EOF > $cmdfile s/DeclaratorInfo/TypeSourceInfo/g s/DInfo/TInfo/g s/TypeTypeSourceInfo/TypeSourceInfo/g s/SourceTypeSourceInfo/TypeSourceInfo/g EOF find lib -name '*.cpp' -not -path 'lib/Parse/*' -exec sed -i '' -f $cmdfile '{}' \; find lib -name '*.h' -exec sed -i '' -f $cmdfile '{}' \; find include -name '*.h' -not -path 'include/clang/Parse/*' -not -path 'include/clang/Basic/*' -exec sed -i '' -f $cmdfile '{}' \; git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90743 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
CHWriter.h
|
bb3503a146f5eee6393a8b7542f38d9f5fce6583 |
06-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Document that CompilerInvocation::createDiagnostics keeps a reference to the DiagnosticOptions, and update callers to make sure they don't pass in a temporary. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90704 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
ed97649e9574b9d854fa4d6109c9333ae0993554 |
04-Dec-2009 |
John McCall <rjmccall@apple.com> |
Fix "using typename" and the instantiation of non-dependent using declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90614 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
f772d1e2a5688572d07f42896a50ac57a4a41fe8 |
04-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
ASTUnit/CIndex: Explicitly track the top-level decls when using an ASTUnit made from a source file. - This allows CIndex to avoid iterating over all the top-level decls when using a PCH, which means we deserialize far fewer decls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90559 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
360435908c9b90429cfe192fab22854af1d4497c |
03-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix CompilerInstance::createOutputFile to use proper diagnostics, and (try to) update all clients to be able to handle failure. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90437 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
93ebb1ba9f35ab5e7bff37c471baeb360eeb0b04 |
03-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Switch PCHReader::getOriginalSourceFile to use proper diagnostics. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90434 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
9b5e9ae08defd14441acca1d7d4502b933bf6c5a |
03-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
clang-cc: Honor -help and -version when using new style option parsing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90422 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
efba227cc5459554eca466aafe786b5132dcb68c |
03-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add clang -cc1 -load option. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90413 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
5262fda30b876c8aae95f2eb92e349418d6b14bb |
03-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix ASTUnit to allows require a (persistent) Diagnostic object be provided; propogate and simplify. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90379 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
c7822dbf3c01a2a5f837cff82ba7889ea755daca |
02-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
ASTUnit: Explicitly track whether the ASTUnit came from an actual AST or not. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90349 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
68ea2ac7fd98a5a44c7a5b04c54076cf794531cb |
02-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
ASTUnit: Fix initialization of OnlyLocalDecls variable, and honor UseBumpAllocator. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90348 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
68d40e2d16b9fadba386853d6bbb60089291fdc5 |
02-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix ASTUnit::getOriginalSourceFileName() when using ASTUnit's derived from source files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90311 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
716f0b3e2e36f362b64a2ce0a40a9ad915103255 |
02-Dec-2009 |
Douglas Gregor <dgregor@apple.com> |
Introduce a new clang-cc option -remap-file=from;to which takes the file "from" and transparently replaces its contents with the contents of the file "to" from the source manager's perspective. This is the moral equivalent of cp from saved cp to from <call clang> cp saved from rm saved without all of the pesky file copying. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90307 91177308-0d34-0410-b5e6-96231b3b80d8
reprocessorOptions.h
|
7b55668db7618334cc40011d3c1e128524d89462 |
02-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add ASTUnit::LoadFromCommandLine, which creates an ASTUnit out of a list of (clang/driver) command line arguments (including the source file). - The arguments are expected to include the source file. - The idea is that even though this is a somewhat odd API, its the form which many tools can most easily use (for example, by interposing with the compiler). Also, switch index-test's -ast-from-source to use this entry point, and provide a -arg command line argument which can be used to test that the command line arguments are handled correctly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90288 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
c4e265f67e63d870b4a188be5af1bcd848214802 |
01-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix typo. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90262 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
ec2a4ed278a1112ebf84fdcb80ed66f53d8ec8ba |
01-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add {ExternalSemaSource,SemaConsumer}::ForgetSema callback, and update PCHReader to use it so it at least won't try to access Sema once it is gone. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90261 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
521bf9c529e653ab28896d027352d3e16e2672d5 |
01-Dec-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add ASTUnit::LoadFromCompilerInvocation, which does what it says. Also, add an -ast-from-source option to index-test which allows index-test to run on source files directly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90223 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
c238955f09f3bce9386e6553d5d12f79e8cc2b08 |
30-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add TextDiagnosticBuffer::FlushDiagnostics, for forwarding the buffered diagnostics to a different diagnostics engine. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90125 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticBuffer.h
|
b33fbaa5f14452b6dc2442e89266acb0810616fd |
30-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Eliminate CodeGenOptions::TimePasses. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90118 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
|
e03245246acbec5c46e93b68ec6942ce42b9e256 |
29-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Change CompilerInvocation::CreateFromArgs to report errors using a proper diagnostic engine. - Clients that care about having the diagnostics output honor the user-controllable diagnostic options can buffer the diagnostics and issue them later. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90092 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
|
545c28117c64e78521b8b402caa060ba0b58a530 |
29-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Change CompilerInvocation::CreateFromArgs to take Argv0 and the address of main (or something in the main executable) so it can find the builtin compiler files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90090 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
|
f79bafa608a5d7c49ec40ad199af5e32f3038b47 |
29-Nov-2009 |
Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> |
This patch moves the frontend timer from clang-cc into CompilerInstance. CompilerInstance already contains various objects that are used throughout the entire run. Also addresses Daniels review comments in: http://lists.cs.uiuc.edu/pipermail/cfe-commits/Week-of-Mon-20091123/024508.html git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90073 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
rontendAction.h
|
fb435102b1632cc0ea8ebdef66099aff082b7d63 |
29-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add missing accessors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90053 91177308-0d34-0410-b5e6-96231b3b80d8
angStandard.h
|
408ac1767a87e1e49fcea5f8620e386b5007334a |
28-Nov-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Missed a forward declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@90035 91177308-0d34-0410-b5e6-96231b3b80d8
athDiagnosticClients.h
|
83d5a2a7d5f933cfdba756e76b6c5cc2f61ac37e |
27-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix typo, thanks Sebastian! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89999 91177308-0d34-0410-b5e6-96231b3b80d8
angStandard.h
|
f51ac1b3d0fd39853ba6c04e81149acbca6eead4 |
26-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Factor out a LangStandard class and coalesce the information about the standards into LangStandards.def - I'd appreciate another pair of eyeballs to double check this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89919 91177308-0d34-0410-b5e6-96231b3b80d8
angStandard.h
angStandards.def
|
6453f72b8d2ecd85eaef3bf3184fc6db0da5525d |
25-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add ParseSourceLocation::FromString, and simplify. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89855 91177308-0d34-0410-b5e6-96231b3b80d8
ommandLineSourceLoc.h
|
99e9b4d172f6877e6ba5ebe75bb8238721f5e01c |
25-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
Eliminate CXXConditionDeclExpr with extreme prejudice. All statements that involve conditions can now hold on to a separate condition declaration (a VarDecl), and will use a DeclRefExpr referring to that VarDecl for the condition expression. ForStmts now have such a VarDecl (I'd missed those in previous commits). Also, since this change reworks the Action interface for if/while/switch/for, use FullExprArg for the full expressions in those expressions, to ensure that we're emitting Note that we are (still) not generating the right cleanups for condition variables in for statements. That will be a follow-on commit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89817 91177308-0d34-0410-b5e6-96231b3b80d8
tmtXML.def
|
87392c4919f7ff2653ffec8b915b4dc7099a69dc |
24-Nov-2009 |
Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> |
Remove trailing spaces git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89764 91177308-0d34-0410-b5e6-96231b3b80d8
tmtXML.def
|
990a07c0954c387813fa9cece48c0fdfac484d30 |
24-Nov-2009 |
Kovarththanan Rajaratnam <kovarththanan.rajaratnam@gmail.com> |
Remove trailing spaces git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89744 91177308-0d34-0410-b5e6-96231b3b80d8
eclXML.def
|
13dcd00615de5c4279d97bdf63cd5f0a14fd9dcc |
21-Nov-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
This patch implements objective-c's 'SEL' type as a built-in type and fixes a long-standing code gen. crash reported in at least two PRs and a radar. (radar 7405040 and pr5025). There are couple of remaining issues that I would like for Ted. and Doug to look at: Ted, please look at failure in Analysis/MissingDealloc.m. I have temporarily added an expected-warning to make the test pass. This tests has a declaration of 'SEL' type which may not co-exist with the new changes. Doug, please look at a FIXME in PCHWriter.cpp/PCHReader.cpp. I think the changes which I have ifdef'ed out are correct. They need be considered for in a few Indexer/PCH test cases. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89561 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
20be8c4551d49fe66835baf1200be85ac2fd0c86 |
20-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Switch CompilerInvocation::CreateFromArgs to take const char** arguments until Driver itself switches to StringRef. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89503 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
|
1be3b3bd5c983e3fc5b78db155632d2d2d6aa968 |
19-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix some default in the option classes, and some CompilerInvocation argification errors. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89388 91177308-0d34-0410-b5e6-96231b3b80d8
nalysisConsumer.h
rontendOptions.h
|
47cd787877c0a402c16956810ac75118f571f037 |
19-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add missing init. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89331 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
|
c59dc9274612f318d43910a3b5de19997a8eb656 |
19-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
clang-cc: Remove some more llvm::cl::init arguments, by only setting values when the argument is given. Also, tweak Opt.Sysroot defaulting. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89318 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
|
bd8405898be641ad9574b210fb70c5d449cef578 |
17-Nov-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Fix MSVC warning. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89092 91177308-0d34-0410-b5e6-96231b3b80d8
erifyDiagnosticsClient.h
|
b3375cba7938e01895bb504e7e48ad94a2e07dd1 |
17-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add initial cut at CompilerInvocation::toArgs, which "serializes" the CompilerInvocation into a list of arguments which can be passed to clang-cc (eventually, clang -cc1). - Unfortunately, this is currently a tedious and manual translation. Eventually it would be nice to automatically generate this code. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89049 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
|
049d3a06ea9f8fc03582488a2b7f24512565a335 |
17-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Simplify PreprocessorOptions, it doesn't need abstracted field access. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89047 91177308-0d34-0410-b5e6-96231b3b80d8
reprocessorOptions.h
|
a9be12792943d0aa2cf1eff9c0c0c0e5fd137b80 |
17-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove unused program action. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89038 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
35ffe2fc57bcf040f652fba70e8f3ff3fcf95115 |
17-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Rename CompilerInvocation::DiagOpts -> DiagnosticOpts for consistency. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89037 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
|
093333a46c5155ec1bdcb460fe33201338bc3c45 |
17-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add missing defaults to AnalyzerOptions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89036 91177308-0d34-0410-b5e6-96231b3b80d8
nalysisConsumer.h
|
1b483e70ad3f670f6dd0bc62dbe0921a28195f24 |
17-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove unused IsCXXAware and IgnoreSysRoots option from HeaderSearchOptions::Entry. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@89035 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
|
c363cb1929c7908c8c8c4b77d025c2ccb09284ae |
16-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Store more information in HeaderSearchOptions so that its initialization is not language dependent. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88981 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
|
a4923eb7c4b04d360cb2747641a5e92818edf804 |
16-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
First part of changes to eliminate problems with cv-qualifiers and sugared types. The basic problem is that our qualifier accessors (getQualifiers, getCVRQualifiers, isConstQualified, etc.) only look at the current QualType and not at any qualifiers that come from sugared types, meaning that we won't see these qualifiers through, e.g., typedefs: typedef const int CInt; typedef CInt Self; Self.isConstQualified() currently returns false! Various bugs (e.g., PR5383) have cropped up all over the front end due to such problems. I'm addressing this problem by splitting each qualifier accessor into two versions: - the "local" version only returns qualifiers on this particular QualType instance - the "normal" version that will eventually combine qualifiers from this QualType instance with the qualifiers on the canonical type to produce the full set of qualifiers. This commit adds the local versions and switches a few callers from the "normal" version (e.g., isConstQualified) over to the "local" version (e.g., isLocalConstQualified) when that is the right thing to do, e.g., because we're printing or serializing the qualifiers. Also, switch a bunch of Context.getCanonicalType(T1).getUnqualifiedType() == Context.getCanonicalType(T2).getQualifiedType() expressions over to Context.hasSameUnqualifiedType(T1, T2) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88969 91177308-0d34-0410-b5e6-96231b3b80d8
CHWriter.h
ypeXML.def
|
a61066310d4544d6343154eb3f4448fec0b15420 |
15-Nov-2009 |
Douglas Gregor <dgregor@apple.com> |
Make some more headers standalone git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88835 91177308-0d34-0410-b5e6-96231b3b80d8
hainedDiagnosticClient.h
ependencyOutputOptions.h
eaderSearchOptions.h
|
d58c03f42ebb4e548c2b53fa25b1cfe02ebb9ac0 |
15-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add TargetOptions and use it when constructing targets. - This ended up being hard to factor, sorry for the large diff. - Some post-commit cleanup to come. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88833 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
ompilerInstance.h
ompilerInvocation.h
rontendOptions.h
|
d10c5b88334d860d19284032a7126dc2219f57ed |
15-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add pluggable action support to clang-cc, via -plugin command line option. - Expects the plugin has been loaded with -load. - Using this may require disabling TOOL_NO_EXPORTS in the clang-cc Makefile, this breaks the llvm::Registry way of working (static constructors are bad, kids). This should be replaced with a "real" plugin model that has explicit plugin interfaces. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88824 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
rontendPluginRegistry.h
|
9a8a83b8fe5be9a4ca20ec6eeaafaf201ce594f9 |
14-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Move the program action enum to FrontendOptions. -- ddunbar@giles:clang-cc (master)$ grep llvm::cl::opt clang-cc.cpp # Woot ddunbar@giles:clang-cc (master)$ -- git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88820 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
5f3b997e28899972e2ba23ec25e830d4066fa59a |
14-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add FrontendActions for all preprocessor based clang-cc actions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88774 91177308-0d34-0410-b5e6-96231b3b80d8
rontendActions.h
|
8305d01a1de4bfbfdd501b83074a1e80fada752d |
14-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add FrontendActions, which provides a FrontendAction interface to all the existing AST consumer based clang-cc actions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88773 91177308-0d34-0410-b5e6-96231b3b80d8
rontendActions.h
|
4ee24097a8050b885c1d75ca4ee9f6d534c3f20b |
14-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add FrontendAction interface, for encapsulating a "clang-cc" style action. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88772 91177308-0d34-0410-b5e6-96231b3b80d8
rontendAction.h
|
221c7211c507482a91e97ede1bf6cf65a456ff67 |
14-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Shuffle VerifyDiagnosticsClient API to be less fragile. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88765 91177308-0d34-0410-b5e6-96231b3b80d8
erifyDiagnosticsClient.h
|
ccb6cb6fd9e48697564d536b07397b95dfc28d5b |
14-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add CompilerInstance::InitializeSourceManager. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88764 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
79b55f97c826f5fd28b4c4f037b088d0cc960457 |
14-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Turn -fixit it back into a mode, but make -fixit-at imply that mode this time (instead of running it with arbitrary consumers). - Also, turn any -fixit-at lookup failure into an error. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88757 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
81f5a1e699b2eefa4a5e50b5dfc06df600748f59 |
14-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add VerifyDiagnosticsClient, to replace old -verify. - This reimplements -verify as just another DiagnosticClient, which buffers the diagnostics and checks them when the source file is complete. There are some hacks to make this work, but they are all internal, and this exposes a better external interface. - This also tweaks a few things: o Errors are now just regular diagnostics. o Frontend diagnostics are now caught (for example, errors in command line arguments), although there isn't yet a way to specify that they are expected. That would be nice though. - Not yet used. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88748 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
erifyDiagnosticsClient.h
|
7d90199f109290e9d587479a481a2850d390b552 |
14-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Pass Preprocessor through DiagnosticClient::BeginSourceFile. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88744 91177308-0d34-0410-b5e6-96231b3b80d8
hainedDiagnosticClient.h
extDiagnosticPrinter.h
|
12ce6943aae499225708ecf364c5a8b0a3269c87 |
14-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add ASTConsumer to CompilerInstance. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88743 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
8a9f569262860b8d03203327afd6047be2a9b5a6 |
14-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Move CompilerInstance::set* methods out-of-line. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88731 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
8382cf57b722f130f1a6b45380639871c07271c1 |
13-Nov-2009 |
Ted Kremenek <kremenek@apple.com> |
Add clang-cc option "--analyzer-experimental-internal-checks". This option enables new "internal" checks that will eventually be turned on by default but still require broader testing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88671 91177308-0d34-0410-b5e6-96231b3b80d8
nalysisConsumer.h
|
f482d59386dbc70716f7a5f65adb37ff86b501e6 |
13-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add CompilerInstance utility functions for creating output files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@88667 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
a9204831639e31474b927681b97c46781b758a1a |
13-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add output file list to CompilerInstance, so that it can track them instead of forcing all clients to do it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87103 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
c2f484f1f05216a9a427ac84b5773789a4661111 |
13-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add CodeCompletion consumer to CompilerInvocation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87100 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
0f800391ffbfe3820e1c60246a09a97e5f065179 |
13-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add CompilerInstance::createPCHExternalASTSource. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87097 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
704e48ae75111072eecaa20a365dff46fb49d2be |
13-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add CompilerInstance::has* methods for testing if the instance has a particular subobject. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87096 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
5eb810024dc8a1d12d5f066c02c978f07c4fcb00 |
13-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add ASTContext to CompilerInstance. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87095 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
0fbb3d9a9cdd2201848be9eb017c54cd78538122 |
13-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add CompilerInstance::createDiagnostics, and move clang-cc to it. clang-cc.cpp is now under 1k lines, if anyone is counting. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87090 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
22dacfacacf5559028550ba6ddfbaa4ea6cb3944 |
13-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add Preprocessor to CompilerInstance, and move clang-cc CreatePreprocessor to CompilerInstance::createPreprocessor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87088 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
16b7449d86b843d0926b04f87104cf3fff7149fe |
13-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add {File,Source}Manager to CompilerInstance. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87079 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
2a79e162a3fde25c1941151a67966830d873f2db |
13-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add CompilerInstance, and starting moving clang-cc to it. - The design philosophy is in the CompilerInstance doxyment, if you don't agree with it now would be a good time to speak up. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87078 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInstance.h
|
fbe2fafe317a757031e4f24026a77dd305607d32 |
13-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Move input kind identification (-x) into FrontendOptions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87066 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
eb94113be0ee5f4d38408b413d92464a0bc16b55 |
13-Nov-2009 |
Ted Kremenek <kremenek@apple.com> |
Add clang-cc option "-analyzer-experimental-checks" to enable experimental path-sensitive checks. The idea is to separate "barely working" or "skunkworks" checks from ones that should always run. Later we need more fine-grain checker control. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87053 91177308-0d34-0410-b5e6-96231b3b80d8
nalysisConsumer.h
|
21dac5e24a14d3288565515b35ad98c38460c9dd |
13-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Move -target-{triple,abi} options into FrontendOptions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87051 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
914474ca51d202369241a81013208833a6bb3f12 |
13-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Move code completion options to clang-cc git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87050 91177308-0d34-0410-b5e6-96231b3b80d8
rontendOptions.h
|
c86804bc9c3f1953520b59084c9ad75104aba123 |
13-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Move FixItAtLocations into FrontendOptions git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87046 91177308-0d34-0410-b5e6-96231b3b80d8
ommandLineSourceLoc.h
rontendOptions.h
|
26266885d6eba8ee197577dd42a8e68a0e4dd2e8 |
13-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add FrontendOptions, and starting moving clang-cc to it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@87044 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
iagnosticOptions.h
rontendOptions.h
|
2811ccf48d6d898c42cc4cfad37abedb36236d20 |
12-Nov-2009 |
Chandler Carruth <chandlerc@gmail.com> |
Move CompileOptions -> CodeGenOptions, and sink it into the CodeGen library. This resolves the layering violation where CodeGen depended on Frontend. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86998 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
ompileOptions.h
ompilerInvocation.h
|
6907943901e0aae5be7618c36c0f8275634e6ab5 |
12-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Move warning options into DiagnosticOptions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86968 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
tils.h
|
11e729d295378bdc185c8fb87d3326f24d1840d0 |
12-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Move dump-build-information option into DiagnosticOptions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86966 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
|
b3cb98ee35b4707c59d7f6d1a6ee2eee95cb7eb5 |
12-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Move TokenCache option to PreprocessorOptions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86940 91177308-0d34-0410-b5e6-96231b3b80d8
reprocessorOptions.h
|
918ac48e315d42fed7fe856a3fce70d9d930cdcd |
12-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Tweak AnalyzerOptions for consistency, and make sure default constructed object is sane. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86908 91177308-0d34-0410-b5e6-96231b3b80d8
nalysisConsumer.h
|
5746f1ff6286f5e5bd7fc28e5e2031f18e4676c9 |
12-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Move AnalyzerOptions into CompilerInvocation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86906 91177308-0d34-0410-b5e6-96231b3b80d8
nalysisConsumer.h
ompilerInvocation.h
|
c7162937a4ccd044a0df67eed4a73ee828c49162 |
12-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Tweak PCH -include handling to make sure it matches the name as would be present in the predefines buffer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86903 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
961c76ea8d5089293e448e5d538570653e28080c |
11-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Always initialize the header search object as part of InitializePreprocessor; not doing this has little to no utility. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86883 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
5814e657c9ad9ef6049a2a4af0d2aad248a8a15c |
11-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Allow Preprocessor to take ownership of the HeaderSearch object. I think it should probably always own the header search object, but I'm not sure... git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86882 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
ca11f61233b2acc266f371816e48290af4e10528 |
11-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Sink AttachDependencyFileGen into CreatePreprocessor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86881 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
0e0bae8139e25de81f18b6a519783a06f7ba1e25 |
11-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add DependencyOutputOptions to wrap -M... options, and propogate to CompilerInvocation and clang-cc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86880 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
ependencyOutputOptions.h
reprocessorOutputOptions.h
tils.h
|
f465e85fd8744fce8769f18f0dbfec51dbc6d4af |
11-Nov-2009 |
Chandler Carruth <chandlerc@gmail.com> |
Move the ManagerRegistry to the Analysis library to resolve the layering violation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86863 91177308-0d34-0410-b5e6-96231b3b80d8
anagerRegistry.h
|
29cf746aef63b1984c013448e843a290b2badf7b |
11-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add PreprocessorOutputOptions to CompilerInvocation, and move initialization to clang-cc/Options.cpp git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86828 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
tils.h
|
775bee71ad21c84bc130af22ac47c1c8e0f9e72f |
11-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add PreprocessorOutputOptions, for things like -dM, -C, -CC which control -E mode. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86827 91177308-0d34-0410-b5e6-96231b3b80d8
reprocessorOutputOptions.h
tils.h
|
aea364195b81f933515e8968b5254a1195eb0337 |
11-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Allow TextDiagnosticPrinter to have optional ownership of its output stream. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86823 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
dbf75feeb6e1b0015b72fa42c80b45497e9ffefc |
11-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Turn LoggingDiagnosticClient into a more general ChainedDiagnosticClient and move to libFrontend. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86817 91177308-0d34-0410-b5e6-96231b3b80d8
hainedDiagnosticClient.h
|
b52d243d3626bb08758022c39b2cbc58160eadd7 |
11-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
clang-cc: Move InitializePreprocessorOptions to Options.cpp git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86811 91177308-0d34-0410-b5e6-96231b3b80d8
reprocessorOptions.h
|
7b5a1210d93ca62ecd61800f245c87259b1f8f79 |
11-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Redo how PCH handles its implicit include. Instead of treating this specially in the front-end (as far as the preprocessor goes), follow the usual logic of inserting the (original include path) name into the predefines buffer. This pushes the responsibility for handling this to PCH instead of the front-end. In PCH this requires being a little more clever when we diff the predefines buffers. Neither of these solutions are particularly great, I think what we eventually should do is something like gcc where we insert a special marker to indicate the PCH file, but then run the preprocessor as usual. This would be clearer and would allow us to drop the overly clever predefines handling. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86806 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
4d5936aaa4e4e2d41fe79101ac9c09444951448f |
11-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
More StringRef simplification to PCHValidator::ReadPredefinesBuffer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86805 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
dc3c0d20375bda7775b2fade05b20e315798b9fe |
11-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
StringRefify some PCH interfaces. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86775 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
b6d1cc84d1a7e314f7a7a02fbe092adc4caf67e8 |
11-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
PreprocessorOptions: Get rid of unnecessary 'isPTH' flag for include entries. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86757 91177308-0d34-0410-b5e6-96231b3b80d8
reprocessorOptions.h
|
e0a9581d606ea1a6a723758a8d7eef93650cbe93 |
10-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Decouple more of clang-cc by moving ImplicitP[CT]H options into PreprocessorOptions. Global variables used as [in] [out] parameters considered harmful. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86728 91177308-0d34-0410-b5e6-96231b3b80d8
reprocessorOptions.h
|
8d35314401047092eb97b989ed930967ed9e8ccc |
10-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Localize -disable-llvm-optzns handling to BackendConsumer::CreatePasses. - This is conceptually better since the only thing we want this option to do is preserve the internal module as constructed by IRgen, before running any passes. - This also fixes bugs in -disable-llvm-optzns handling with regards to debug info. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86691 91177308-0d34-0410-b5e6-96231b3b80d8
ompileOptions.h
|
36f4ec353b37067dd4a0a3a7da1afbd1a4f1a5e5 |
10-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add CompileOptions to CompilerInvocation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86685 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
|
5fc7d344ae772731d3d7c9076b8786e780a68696 |
10-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add PreprocessorOptions to CompilerInvocation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86623 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
|
2cdafa8001ee69b75d2906cbb36f16cf8e1dc60a |
10-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Privatize InitHeaderSearch, this functionality is only exposed via ApplyHeaderSearchOptions now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86617 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
nitHeaderSearch.h
tils.h
|
26a0cac165aea204f661b8da7b167623b12ff143 |
09-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Move LangOptions, HeaderSearchOptions, and the target feature map into CompilerInvocation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86612 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
|
0f25ae8bafdfc4265569d9867e793aaa99407934 |
09-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add default initializer for Sysroot ivar. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86610 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
|
e29709f32e82d7f7dfc25d8602b1b828a1aa7f56 |
09-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add CompilerInvocation object, to capture all the options one needs to invoke the compiler, and start flood filling it into clang-cc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86586 91177308-0d34-0410-b5e6-96231b3b80d8
ompilerInvocation.h
|
28a109f63506d8c96e3fbf1b959b603ccec2f586 |
08-Nov-2009 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Add a checker for CWE-467: Use of sizeof() on a Pointer Type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86464 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
63c8b77334f90472260d2f48df2742ed5067261e |
07-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add HeaderSearchOptions class, for packaging the information needed to initialize HeaderSearch. Not used yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86338 91177308-0d34-0410-b5e6-96231b3b80d8
eaderSearchOptions.h
nitHeaderSearch.h
|
e166582f8f36f4db8f4ea157538fab7fe6bf2658 |
07-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Lift InitHeaderSearch::AddEnvVarPaths logic higher. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86337 91177308-0d34-0410-b5e6-96231b3b80d8
nitHeaderSearch.h
|
5c5758bb0a4ec0f572cd20249277736da5715003 |
07-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Formatting fixes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86336 91177308-0d34-0410-b5e6-96231b3b80d8
nitHeaderSearch.h
|
8863b985f1cf78a2fb62913e184dc45162853cf9 |
07-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Rename PreprocessorInitOptions to PreprocessorOptions for consistency, and fix filenames. Also, move InitializePreprocessor to Utils.h. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86335 91177308-0d34-0410-b5e6-96231b3b80d8
nitPreprocessor.h
reprocessorOptions.h
tils.h
|
efcbe9475348ecab6b85153baa21d0e894e39607 |
05-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Replace DiagnosticClient::setLangOptions with {Begin,End}SourceFile, and clarify invariants (diagnostics with source informations must occur between {Begin,End}SourceFile). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86113 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
efceabd2380f49306bc0229583458e93b062094b |
05-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Convert CreateAnalysisConsumer and friends to just take a const Preprocessor&, and simplify. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86112 91177308-0d34-0410-b5e6-96231b3b80d8
nalysisConsumer.h
athDiagnosticClients.h
|
b697a4e4118d2d59dc0f38463c8417ddaf58a11f |
05-Nov-2009 |
Ted Kremenek <kremenek@apple.com> |
Acting on Daniel's nagging, remove PathDiagnosticClientFactory() and migrate work in the destructors of PathDiagnosticClients from their destructors to FlushReports(). The destructors now currently call FlushReports(); this will be fixed in a subsequent patch. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86108 91177308-0d34-0410-b5e6-96231b3b80d8
athDiagnosticClients.h
|
90b1827c1c1cf075266b96b416eefcf37924333b |
05-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Kill PreprocessorFactory, which was both morally repugnant and totally unused. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86076 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
nalysisConsumer.h
athDiagnosticClients.h
tils.h
|
938963f076418aa61b570e5317240f66642af2df |
04-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
InitializePreprocessor cannot fail. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86048 91177308-0d34-0410-b5e6-96231b3b80d8
nitPreprocessor.h
|
468fe246192c3683360d1a6b1b333d85b8794f77 |
04-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Move -undef flag into PreprocessorInitOptions git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86047 91177308-0d34-0410-b5e6-96231b3b80d8
nitPreprocessor.h
|
ac9cf4d943c33484caa235627c440d68d82f4337 |
04-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Fix commento. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86016 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
|
eace8743030d2979251a0c5ae247371cfd9056e5 |
04-Nov-2009 |
Daniel Dunbar <daniel@zuster.org> |
Factor out a diagnostic options class. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@86010 91177308-0d34-0410-b5e6-96231b3b80d8
iagnosticOptions.h
extDiagnosticPrinter.h
|
59876c2713683d1538ca45bb14c2f415862fb716 |
04-Nov-2009 |
Tanya Lattner <tonic@nondot.org> |
Merge constant array and structures. This will create a global variables for arrays and structs that are constant and their initializer is constant. It is on by default but can be disable with the flag -fno-merge-all-constants. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85991 91177308-0d34-0410-b5e6-96231b3b80d8
ompileOptions.h
|
e6113de52df132b89c3a5a6141f17d37e83322ae |
03-Nov-2009 |
Chris Lattner <sabre@nondot.org> |
Implement support for the -undef command line option, patch by Roman Divacky! PR5363 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85932 91177308-0d34-0410-b5e6-96231b3b80d8
nitPreprocessor.h
|
833ca991c1bfc967f0995974ca86f66ba1f666b5 |
29-Oct-2009 |
John McCall <rjmccall@apple.com> |
Track source information for template arguments and template specialization types. Preserve it through template instantiation. Preserve it through PCH, although TSTs themselves aren't serializable, so that's pretty much meaningless. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85500 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
CHWriter.h
|
f96b524306ccfa623235d375deee79637bd38f29 |
28-Oct-2009 |
Steve Naroff <snaroff@apple.com> |
Remove _clang_initCXLookupHint() and _clang_getCursorWithHint(). Related to <rdar://problem/7310688>. Localize the optimization to ResolveLocationInAST(). The last valid AST location is now stored with ASTUnit. There still isn't optimal, however it's an improvement (with a much cleaner API). Having the client manage an "hint" is error prone and complex. I wanted to land the major changes before finishing up the optimizations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85425 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
0130f3cc4ccd5f46361c48d5fe94133d74619424 |
27-Oct-2009 |
Douglas Gregor <dgregor@apple.com> |
Rename FunctionDecl::isInline/setInline to FunctionDecl::isInlineSpecified/setInlineSpecified. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85305 91177308-0d34-0410-b5e6-96231b3b80d8
eclXML.def
|
e4b255c80a786c6f16d3f0362ecb7e1b1e959f63 |
27-Oct-2009 |
Rafael Espindola <rafael.espindola@gmail.com> |
Split AddDefaultSystemIncludePaths into C, C++ and framework specific functions. The user visible changes are: *) Frameworks are only searched on OS X *) The Cygwin c++ headers are now marked as c++ aware. I am almost sure that not marking them was a bug. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85240 91177308-0d34-0410-b5e6-96231b3b80d8
nitHeaderSearch.h
|
9f8eb2032030482b1d3de86e9bee725d93564302 |
26-Oct-2009 |
Chandler Carruth <chandlerc@gmail.com> |
Update location of DataTypes.h to reflect move in LLVM with r85086. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@85087 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
|
63daa6179ea77eb4ff7a213c891aff5f32aca03f |
24-Oct-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Remove duplicated constructor declaration. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84997 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
58e4677a948e80c92deeebbcd3bdd9266adda798 |
23-Oct-2009 |
John McCall <rjmccall@apple.com> |
Remove OriginalTypeParmDecl; the original type is the one specified in the DeclaratorInfo, if one is present. Preserve source information through template instantiation. This is made more complicated by the possibility that ParmVarDecls don't have DIs, which is possibly worth fixing in the future. Also preserve source information for function parameters in ObjC method declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84971 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
54e14c4db764c0636160d26c5bbf491637c83a76 |
23-Oct-2009 |
John McCall <rjmccall@apple.com> |
When building types from declarators, instead of building two types (one for the DeclaratorInfo, one for semantic analysis), just build a single type whose canonical type will reflect the semantic analysis (assuming the type is well-formed, of course). To make that work, make a few changes to the type system: * allow the nominal pointee type of a reference type to be a (possibly sugared) reference type. Also, preserve the original spelling of the reference type. Both of these can be ignored on canonical reference types. * Remove ObjCProtocolListType and preserve the associated source information on the various ObjC TypeLocs. Preserve the spelling of protocol lists except in the canonical form. * Preserve some level of source type structure on parameter types, but canonicalize on the canonical function type. This is still a WIP. Drops code size, makes strides towards accurate source location representation, slight (~1.7%) progression on Cocoa.h because of complexity drop. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84907 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
083c25eea14bb4cc4ecc3ec763c60e2e609e22bd |
22-Oct-2009 |
Mike Stump <mrs@apple.com> |
Extend out the block descriptor structure for debug information with the copy/dispose helpers as appropriate. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84817 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
adaaad3715c9c26cdcfdfe3401a13d7b4423ddcf |
20-Oct-2009 |
Mike Stump <mrs@apple.com> |
Refine the type of the first parameter to block invoke functions. WIP. I have yet to find the magic incantation to get the structure type to be defined. If someone has a pointer, love to hear it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84590 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
fc0622155fa61349698a8fd0053773c37d9f7ac4 |
19-Oct-2009 |
Ted Kremenek <kremenek@apple.com> |
The constructor for ASTUnit now takes a DiagnosticClient*, allowing uses of ASTUnit to specify alternate DiagnosticClients. To match this API, ASTUnit::LoadFromPCHFile() now takes a corresponding DiagnosticClient* argument as well. The DiagnosticClient object is destroyed when the ASTUnit object is destroyed. The CIndex library now uses this API to create a 'IgnoreDiagnosticsClient' that simply silences diagnostics when using the clang_createTranslationUnitFromSourceFile() function. This fixes <rdar://problem/7312058>. This API can change in the future as we add more flexibility for clients. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84539 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
36c4464ba6cfc2a63dc67c493ef2f5ab2aea09cc |
19-Oct-2009 |
Steve Naroff <snaroff@apple.com> |
Move Diagnostic/DiagClient/FileManager from Indexer => ASTUnit. Removing this shared data should enable clang_createTranslationUnit/clang_createTranslationUnitFromSourceFile to be run from multiple threads (related to <rdar://problem/7303432>). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84499 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
49a832bd499d6f61c23655f1fac99f0dd229756e |
18-Oct-2009 |
John McCall <rjmccall@apple.com> |
When performing template-substitution into a type, don't just replace the TemplateTypeParmType with the substituted type directly; instead, replace it with a SubstTemplateTypeParmType which will note that the type was originally written as a template type parameter. This makes it reasonable to preserve source information even through template substitution. Also define the new SubstTemplateTypeParmType class, obviously. For consistency with current behavior, we stringize these types as if they were the underlying type. I'm not sure this is the right thing to do. At any rate, I paled at adding yet another clause to the don't-desugar 'if' statement, so I extracted a function to do it. The new function also does The Right Thing more often, I think: e.g. if we have a chain of typedefs leading to a vector type, we will now desugar all but the last one. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84412 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
5cf48766d626ff6b223acc9d4b7e415ca8480836 |
17-Oct-2009 |
Ted Kremenek <kremenek@apple.com> |
Add 'UseBumpPtrAllocator' flag to ASTUnit::LoadFromPCHFile() to cause the created ASTContext to use its own BumpPtrAllocator to allocate ASTs. Change clang_createTranslationUnit (CIndex) to pass 'UseBumpPtrAllocator = true' to ASTUnit::LoadFromPCHFile(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84296 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
61d60ee6aa0a5ded0ddcf48679673b37506a1895 |
17-Oct-2009 |
Douglas Gregor <dgregor@apple.com> |
Merge the "types" and "declarations" blocks in the precompiled header format, so that we don't end up with multiple declaration and types blocks. Also, fix a few obscure bugs with PCH loading and generation: - If the DeclIDs DenseMap reallocates while we are writing a declaration (due to recursively writing other declarations), we could end up writing a bad ID to ExternalDefinitions. - When loading an ArrayLoc (part of DeclaratorInfo), we need to set the size expression to NULL if no size expression was provided. PCH -> AST rewriting is still partly broken, unfortunately. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84293 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHWriter.h
|
a1ee0c548b8aa4aaf93d1917e304e3da13171a08 |
16-Oct-2009 |
John McCall <rjmccall@apple.com> |
Factor out routines to encode/decode DeclaratorInfos and move them into the core PCH reader/writer implementation files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84278 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
CHWriter.h
|
7d1d49d2971b20a97b3c2a301470b9eaaa130137 |
16-Oct-2009 |
Douglas Gregor <dgregor@apple.com> |
Keep track of whether declararions were loaded from a precompiled header or not via a new "PCHLevel" field in Decl. We currently use this information to help CIndex filter out declarations that came from a precompiled header (rather than from an AST file). Further down the road, it can be used to help implement multi-level precompiled headers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84267 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
52e7108f51a4a9f4d6e84f33fb594d06e1d79560 |
16-Oct-2009 |
Douglas Gregor <dgregor@apple.com> |
Add support for a chain of stat caches in the FileManager, rather than only supporting a single stat cache. The immediate benefit of this change is that we can now generate a PCH/AST file when including another PCH file; in the future, the chain of stat caches will likely be useful with multiple levels of PCH files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84263 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
46a617a792bfab0d9b1e057371ea3b9540802226 |
16-Oct-2009 |
John McCall <rjmccall@apple.com> |
Remove the ConstantArrayType subtypes. This information is preserved in the TypeLoc records for declarations; it should not be necessary to represent it directly in the type system. Please complain if you were using these classes and feel you can't replicate previous functionality using the TypeLoc API. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84222 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
e19944c93961b7618f4f3f3185f698f46369ea54 |
16-Oct-2009 |
Steve Naroff <snaroff@apple.com> |
Make sure temporary files get unlinked. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84208 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
CHReader.h
|
31b63beefa058aa42a12a1c2b72b43a4ba21f7f1 |
14-Oct-2009 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add support for having different c++ search dirs with -m32 and -m64. So far this is only used in darwin10, 64 bit ubuntu 9.10 and 64 bit openSUSE 11.1. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@84115 91177308-0d34-0410-b5e6-96231b3b80d8
nitHeaderSearch.h
|
620d57a293143e3f07d6e4f5ba50020a80f45564 |
12-Oct-2009 |
Mike Stump <mrs@apple.com> |
Fixup windows include paths. Patch by John Thompson. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83898 91177308-0d34-0410-b5e6-96231b3b80d8
nitHeaderSearch.h
|
ec05766fe525a8f81c7dc96ddbdc874814a14b2c |
09-Oct-2009 |
Mike Stump <mrs@apple.com> |
Efficiency refinements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83666 91177308-0d34-0410-b5e6-96231b3b80d8
nitHeaderSearch.h
|
38ee4e07633f1548f6b703e74ac7ad2208059d39 |
09-Oct-2009 |
Axel Naumann <Axel.Naumann@cern.ch> |
Passing const Triple& is sufficient for AddDefaultSystemIncludePaths() git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83663 91177308-0d34-0410-b5e6-96231b3b80d8
nitHeaderSearch.h
|
43d8176d2e8e304b2d419fb0fe139cc07af80dea |
09-Oct-2009 |
Mike Stump <mrs@apple.com> |
Set up include paths for VC++ and Cygwin headers, along with the existing MinGW headers, plus the newer 4.4.0 version. Patch by John Thompson. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83594 91177308-0d34-0410-b5e6-96231b3b80d8
nitHeaderSearch.h
|
b46f57d9daa0c30d79dc8149d30c3e3a12fe2b32 |
08-Oct-2009 |
Douglas Gregor <dgregor@apple.com> |
Fix an assertion in the XML output, from Olaf Krzikalla! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83576 91177308-0d34-0410-b5e6-96231b3b80d8
tmtXML.def
|
2e9f652d53346bf7e64c8a12a9ff06b004a3e489 |
06-Oct-2009 |
Rafael Espindola <rafael.espindola@gmail.com> |
Refactor the c++ include path a bit. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83357 91177308-0d34-0410-b5e6-96231b3b80d8
nitHeaderSearch.h
|
445e23e9b909ec8e21303c7dd82c90b72fc09ac4 |
05-Oct-2009 |
Douglas Gregor <dgregor@apple.com> |
Encode the Clang branch and Subversion revision into a PCH file, and assume that PCH files from different Clang revisions are not compatible. Addresses <rdar://problem/7266572>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83323 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
24fab41057e4b67ed69a6b4027d5ae0f2f6934dc |
29-Sep-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce ObjCProtocolListType type subclass. This is used only for keeping detailed type source information for protocol references, it should not participate in the semantics of the type system. Its protocol list is not canonicalized. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@83093 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
0953e767ff7817f97b3ab20896b229891eeff45b |
24-Sep-2009 |
John McCall <rjmccall@apple.com> |
Refactor the representation of qualifiers to bring ExtQualType out of the Type hierarchy. Demote 'volatile' to extended-qualifier status. Audit our use of qualifiers and fix a few places that weren't dealing with qualifiers quite right; many more remain. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82705 91177308-0d34-0410-b5e6-96231b3b80d8
ocumentXML.h
CHReader.h
CHWriter.h
ypeXML.def
|
78762ebb9ad71d681110d4bada4b0575eaadfebe |
24-Sep-2009 |
Anders Carlsson <andersca@mac.com> |
Add a -dump-record-layouts argument to clang-cc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82703 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
|
183700f494ec9b6701b6efe82bcb25f4c79ba561 |
22-Sep-2009 |
John McCall <rjmccall@apple.com> |
Change all the Type::getAsFoo() methods to specializations of Type::getAs(). Several of the existing methods were identical to their respective specializations, and so have been removed entirely. Several more 'leaf' optimizations were introduced. The getAsFoo() methods which imposed extra conditions, like getAsObjCInterfacePointerType(), have been left in place. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82501 91177308-0d34-0410-b5e6-96231b3b80d8
eclXML.def
|
31b87d8006d4863dd9b17e515ac720941efc38e3 |
21-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
Change ASTUnit to take the Diagnostic as an argument, the client should have control of this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82430 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
59b2172751e78ef7c0895d9a5d1359b61ab63a33 |
20-Sep-2009 |
Chris Lattner <sabre@nondot.org> |
switch command line 'parse' methods to use StringRef for efficiency, which is also required for an llvm-side change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82344 91177308-0d34-0410-b5e6-96231b3b80d8
ommandLineSourceLoc.h
|
66847a2826c97b8e09aec304a0a7b4fe1dc35969 |
11-Sep-2009 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Start to add a new transfer function that inlines callee. To be continued. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81501 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
39da0b8145eaec7da7004f9b3645c5c9f4f63b1d |
10-Sep-2009 |
Douglas Gregor <dgregor@apple.com> |
Improve handling of initialization by constructor, by ensuring that such initializations properly convert constructor arguments and fill in default arguments where necessary. This also makes the ownership model more clear. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81394 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
1eb4433ac451dc16f4133a88af2d002ac26c58ef |
09-Sep-2009 |
Mike Stump <mrs@apple.com> |
Remove tabs, and whitespace cleanups. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81346 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
STUnit.h
ommandLineSourceLoc.h
ompileOptions.h
ocumentXML.h
ixItRewriter.h
rontendDiagnostic.h
anagerRegistry.h
CHBitCodes.h
CHReader.h
CHWriter.h
athDiagnosticClients.h
extDiagnosticPrinter.h
tils.h
|
458fb10ef5ba2d7b375c6c64095c1458af0a5be3 |
05-Sep-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
Replace some instances of std::string with StringRefs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81079 91177308-0d34-0410-b5e6-96231b3b80d8
nitHeaderSearch.h
|
7da2431c23ef1ee8acb114e39692246e1801afc2 |
05-Sep-2009 |
John McCall <rjmccall@apple.com> |
Basic support for representing elaborated type specifiers directly in the AST. The current thinking is to create these only in C++ mode for efficiency. But for now, they're not being created at all; patch to follow. This will let us do things like verify that tags match during template instantation, as well as signal that an elaborated type specifier was used for clients that actually care. Optimally, the TypeLoc hierarchy should be adjusted to carry tag location information as well. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81057 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
9efa767be8e9f2dae509d3a0be93ade01bfa1560 |
04-Sep-2009 |
Steve Naroff <snaroff@apple.com> |
Implement accessors clang_getCursorKind(), clang_getCursorDecl(). Implement clang_getCursor() - wired up to Argiris's work. Implement callbacks for CXCursor_ObjCProtocolRef. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@81004 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
77accc11f04ed4ff9afd4e27d430144d4714be56 |
03-Sep-2009 |
Steve Naroff <snaroff@apple.com> |
Add ASTUnit::getOriginalSourceFileName() and use in clang_getTranslationUnitSpelling(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80932 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
bce6f62ae7d2c15992617f64e30067803fb5b47f |
03-Sep-2009 |
Daniel Dunbar <daniel@zuster.org> |
Revert "Visit function/method bodies and issue callback for parameters and local variables.", this is breaking x86_64-apple-darwin10 and Linux tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80896 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
23d8bea7056e7f474ce7f42042021a148feee8f7 |
03-Sep-2009 |
Steve Naroff <snaroff@apple.com> |
Visit function/method bodies and issue callback for parameters and local variables. Add clang_getTranslationUnitSpelling(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@80859 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
0fa0daafdfc631681cc42a26a99618e9f9e63f97 |
24-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
prune #includes. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79889 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
|
3caa4fb0d128575903fa2a024c776a747934538c |
21-Aug-2009 |
Daniel Dunbar <daniel@zuster.org> |
Remove comma at the end of enumerator list. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79586 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
d1571acc700b652a52c766e36a6c688d9bf6f3a1 |
21-Aug-2009 |
Douglas Gregor <dgregor@apple.com> |
Make the new Objective-C "id" and "Class" redefinition types special types that are preloaded by the PCH file. Fixes PCH breakage introduced in r79248. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79583 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
09105f52b1f28cbb1374c27c3c70f5517e2c465d |
20-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Using "ObjCImplicitSetterGetterRefExpr" instead of "ObjCImplctSetterGetterRefExpr". A field rename and more comments. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79537 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
154440e6a8fa6ac5bca395876d79b530b39a2c1c |
18-Aug-2009 |
Fariborz Jahanian <fjahanian@apple.com> |
Renamed ObjCKVCRefExpr to ObjCImplctSetterGetterRefExpr. Removed an unnecessary loop to get to setters incoming argument. Added DoxyGen comments. Still more work to do in this area (WIP). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@79365 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
f21efe9088a0b3eda1209d1706529f6cb2073092 |
11-Aug-2009 |
Benjamin Kramer <benny.kra@googlemail.com> |
LLVMContext is a class now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78691 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
|
47a434ff3d49e7906eda88e8e8242e4297725b32 |
06-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Update for LLVM API change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@78259 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
|
f7a0cf426eddae76e1a71dd2295631a2cf0560af |
29-Jul-2009 |
Ted Kremenek <kremenek@apple.com> |
Remove 'StoreManager::OldCastRegion()', TypedViewRegion (which only OldCastRegion used), and the associated command line option '-analyzer-store=old-basic-cast'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77509 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
782fa308a765aeac2acb39c4e697c937ec21185b |
28-Jul-2009 |
Mike Stump <mrs@apple.com> |
Make longjmp a real builtin. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77291 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
f75560670bcdd59b051149bdece3eac14e313853 |
28-Jul-2009 |
Ted Kremenek <kremenek@apple.com> |
(1) Enable PlistDiagnostics to take an option "PathDiagnosticClientFactory" object that it can use to forward PathDiagnostics for further processing. Along with this feature, the PlistDiagnostics object logs which files are created by the forwarding of the PathDiagnostics. (2) Create a new PathDiagnosticClientFactory object for HTMLDiagnostics, allowing other PathDiagnosticClients to forward PathDiagnostics through an opaque interface. (3) Create a "plist-html" diagnostics option in AnalysisConsumer to allow the logging of HTML files created in a hybrid Plist+HTML diagnostic client. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@77264 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
athDiagnosticClients.h
|
f242b1b0c4e998911cb96b2ba7e27ab4a5abaed3 |
24-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
Allow front-end 'isa' access on object's of type 'id'. Enhance test case to cover 'isa' access on interface types (clang produces an error, GCC produces a warning). Still need back-end CodeGen for ObjCIsaExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76979 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
b85bca2676b433ae555db09de4dd2823ff13b856 |
23-Jul-2009 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Add getter methods. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76871 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
dbfb5f853547c4cc2b4b39e90f01537dd317457a |
23-Jul-2009 |
Ted Kremenek <kremenek@apple.com> |
Add initial implementation of checking for uses of floating point as a loop counter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76833 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
1cb35dd4840d21cec58648361180d5688446a9ca |
21-Jul-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Remove the ObjCCategoryImpls vector from Sema class. Use ObjCInterfaceDecl::getCategoryClassMethod() and ObjCInterfaceDecl::getCategoryInstanceMethod() for the same functionality. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76510 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
c15cb2af27514ecc879daba9aa01389c5203685d |
18-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
Remove ObjCQualifiedInterfaceType:-) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@76321 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
ypeXML.def
|
de2e22d33afec98324a66a358dfe0951b3c7259a |
15-Jul-2009 |
Steve Naroff <snaroff@apple.com> |
Implement the ObjC pseudo built-in types as clang "BuiltinType's". I say pseudo built-in types, since Sema still injects a typedef for recognition (i.e. they aren't truly built-ins from a parser perspective). This removes the static data/methods on ObjCObjectPointerType while preserving the nice API (no need to fiddle with ASTContext:-). This patch also adds Type::isObjCBuiltinType(). This should be the last fairly large patch related to recrafting the ObjC type system. The follow-on patches should be fairly small. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75808 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
f5c209d23b20ada4a9b6235db50317239cbf6ae1 |
14-Jul-2009 |
Alisdair Meredith <public@alisdairm.net> |
Basic support for C++0x unicode types. Support for literals will follow in an incremental patch git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75622 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
ypeXML.def
|
ba0a9006dbc4814e1e35f82812cb5a1dad65e8b8 |
14-Jul-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Read/write a CXXOperatorCallExpr from/to PCH files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75598 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
eb19485625c7529ffa644e10829533157a8e8d4f |
13-Jul-2009 |
Daniel Dunbar <daniel@zuster.org> |
Match declaration to definition. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75441 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
CHReader.h
|
c037eac3bda3c636c961aab6377beea3242e81e4 |
10-Jul-2009 |
Ted Kremenek <kremenek@apple.com> |
Switch BasicStoreManager to use the new CastRegion implementation by default, and replace the 'clang-cc' option '-analyzer-store=basic-new-cast' with '-analyzer-store=basic-old-cast'. We'll keep the old CastRegion implementation around for a little while for regression testing. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75209 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
1bbeec7eca9030f2efa6c690d5edf7b533a87c1f |
08-Jul-2009 |
Douglas Gregor <dgregor@apple.com> |
Bump the PCH version number git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@75049 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
c29f77b769bcc5b6dc85e72c8e3cc2e348e5cf25 |
07-Jul-2009 |
Douglas Gregor <dgregor@apple.com> |
Make ASTContext explicitly keep track of the declaration for the C FILE type, rather than using name lookup to find FILE within the translation unit. Within precompiled headers, FILE is treated as yet another "special type" (like __builtin_va_list). This change should provide a performance improvement (not verified), since the lookup into the translation unit declaration forces the (otherwise unneeded) construction of a large hash table. More importantly, with precompiled headers, the construction of that table requires deserializing most of the top-level declarations from the precompiled header, which are then unused. Fixes PR 4509. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74911 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
e650c8c3bca2f58cad8ffa8aab63126d26e890cd |
07-Jul-2009 |
Douglas Gregor <dgregor@apple.com> |
Introduce the notion of "Relocatable" precompiled headers, which are built with a particular system root directory and can be used with a different system root directory when the headers it depends on have been installed. Relocatable precompiled headers rewrite the file names of the headers used when generating the PCH file into the corresponding file names of the headers available when using the PCH file. Addresses <rdar://problem/7001604>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74885 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
CHReader.h
CHWriter.h
|
e1cea75e70d76f55157749a7bcad319050492945 |
06-Jul-2009 |
Ted Kremenek <kremenek@apple.com> |
Make 'BasicStoreManager' + 'NewCastRegion' testable from the command line using '-analyzer-store=basic-new-cast'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74865 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
818e15b89facfe0b62c8c22c18fde383a17455eb |
06-Jul-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Move the 'ResolveLocationInAST' function from the Frontend library to the Index library. Also, cut down its comments; more comments will be added to ASTLocation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74860 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
ccbcb70ee96cb67ed6c8b4142d050f3a6764edd7 |
06-Jul-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Move ASTLocation and DeclReferenceMap from the AST library to the Index library. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74859 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
874012b1fb80dff2ec227c726a0c63d55e3db63f |
06-Jul-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Rename 'ASTNode' -> 'ASTLocation'. ASTLocation is a much better name for its intended purpose which to represent a "point" into the AST. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74858 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
d89275bc865e2b552836c7b33e636d4f86b8de6d |
06-Jul-2009 |
Douglas Gregor <dgregor@apple.com> |
Fix PR 4489, a crash in PCH loading that occurs when loading the name of a top-level declaration loads another top-level declaration of the same name whose type depends on the first declaration having been completed. This commit breaks the circular dependency by delaying loads of top-level declarations triggered by loading a name until we are no longer recursively loading types or declarations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74847 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
7e7eb3da052a6d80ddf2377cab0384c798f73f75 |
06-Jul-2009 |
Douglas Gregor <dgregor@apple.com> |
Keep track of the Expr used to describe the size of an array type, from Enea Zaffanella! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74831 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
49dd5851c463963a8a78f5222ea72cfaa6db1029 |
06-Jul-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Make use of ASTNode for return value of clang::ResolveLocationInAST() and in the index-test tool. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74798 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
2e22253e03e175144aeb9d13350a12fd83f858be |
02-Jul-2009 |
Douglas Gregor <dgregor@apple.com> |
Add support for retrieving the Doxygen comment associated with a given declaration in the AST. The new ASTContext::getCommentForDecl function searches for a comment that is attached to the given declaration, and returns that comment, which may be composed of several comment blocks. Comments are always available in an AST. However, to avoid harming performance, we don't actually parse the comments. Rather, we keep the source ranges of all of the comments within a large, sorted vector, then lazily extract comments via a binary search in that vector only when needed (which never occurs in a "normal" compile). Comments are written to a precompiled header/AST file as a blob of source ranges. That blob is only lazily loaded when one requests a comment for a declaration (this never occurs in a "normal" compile). The indexer testbed now supports comment extraction. When the -point-at location points to a declaration with a Doxygen-style comment, the indexer testbed prints the associated comment block(s). See test/Index/comments.c for an example. Some notes: - We don't actually attempt to parse the comment blocks themselves, beyond identifying them as Doxygen comment blocks to associate them with a declaration. - We won't find comment blocks that aren't adjacent to the declaration, because we start our search based on the location of the declaration. - We don't go through the necessary hops to find, for example, whether some redeclaration of a declaration has comments when our current declaration does not. Similarly, we don't attempt to associate a \param Foo marker in a function body comment with the parameter named Foo (although that is certainly possible). - Verification of my "no performance impact" claims is still "to be done". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74704 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
8f1ca78009ca1bdb66903c51b9bbaa81f58ea72a |
02-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Update for changes in LLVM. Hopefully this is the last one for a while. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74657 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
|
c93f49832d2dae19a24d644c8021388fc5b099ee |
01-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Hold the LLVMContext by reference instead of by pointer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74642 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
|
42253cc3bc006661da1287aafef93d52d00dfed1 |
01-Jul-2009 |
Owen Anderson <resistor@mac.com> |
Update for LLVMContext+Module change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74615 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
|
1730ce496e8f8d6a50b2af7afa5d65016e3b8384 |
26-Jun-2009 |
Zhongxing Xu <xuzhongxing@gmail.com> |
Fix build break. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74267 91177308-0d34-0410-b5e6-96231b3b80d8
ommandLineSourceLoc.h
|
6c07bdba93b095b66e2c8c82dd5ed458fa8285ea |
26-Jun-2009 |
Ted Kremenek <kremenek@apple.com> |
Introduce a new concept to the static analyzer: SValuator. GRTransferFuncs had the conflated role of both constructing SVals (symbolic expressions) as well as handling checker-specific logic. Now SValuator has the role of constructing SVals from expressions and GRTransferFuncs just handles checker-specific logic. The motivation is by separating these two concepts we will be able to much more easily create richer constraint-generating logic without coupling it to the main checker transfer function logic. We now have one implementation of SValuator: SimpleSValuator. SimpleSValuator is essentially the SVal-related logic that was in GRSimpleVals (which is removed in this patch). This includes the logic for EvalBinOp, EvalCast, etc. Because SValuator has a narrower role than the old GRTransferFuncs, the interfaces are much simpler, and so is the implementation of SimpleSValuator compared to GRSimpleVals. I also did a line-by-line review of SVal-related logic in GRSimpleVals and cleaned it up while moving it over to SimpleSValuator. As a consequence of removing GRSimpleVals, there is no longer a '-checker-simple' option. The '-checker-cfref' did everything that option did but also ran the retain/release checker. Of course a user may not always wish to run the retain/release checker, nor do we wish core analysis logic buried in the checker-specific logic. The next step is to refactor the logic in CFRefCount.cpp to separate out these pieces into the core analysis engine. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74229 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
|
53d4c14a989523afc6aa8fff275ec3ab26eb6c18 |
25-Jun-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce the ResolveLocationInAST function which takes an ASTContext and a SourceLocation and it resolves it into a <Decl*, Stmt*> pair. Decl* is the declaration associated with this source location and Stmt* is the statement/expression that the location points to. If the location does not point to a statement node, Stmt* is null. ResolveLocationInAST (along with converting a file:line:column triplet to a SourceLocation) will be useful for an IDE client and for clang's test suite. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74197 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
395b475a4474f1c7574d927ad142ca0c7997cbca |
24-Jun-2009 |
Anders Carlsson <andersca@mac.com> |
Add a DecltypeType type. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74099 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
34d25d85d6abead0fa6337080449609a2a4f4404 |
24-Jun-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Move the command line source location parsing from clang-cc.cpp into "include/Frontend/CommandLineSourceLoc.h". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@74012 91177308-0d34-0410-b5e6-96231b3b80d8
ommandLineSourceLoc.h
|
4b562cf889bc59e1914dd2c5d9fbd7e7bfa1ad77 |
20-Jun-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Add the license part to the new source files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73825 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
0853a02c3b04d96a3c432b883e403175c954cd81 |
20-Jun-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Introduce the ASTUnit class. ASTUnit is a helper class to allow easy loading of an ASTContext from a PCH file. No users for now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73819 91177308-0d34-0410-b5e6-96231b3b80d8
STUnit.h
|
11e51106329c550d008fad2c657c053d81611ea8 |
19-Jun-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Make changes to PCHReader to allow reading a PCH file without having a pre-initialized Preprocessor. -Introduce 'PCHReaderListener' which is an abstract interface for getting various information from the PCHReader. -If PCHReader is constructed without a Preprocessor, it can still load the file and invoke the callbacks of PCHReaderListener. -If PCHReader is constructed with an initialized Preprocessor, PCHValidator is used as a PCHReaderListener to validate the contents of the PCH file against the given Preprocessor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73741 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
d1b3c2dd5bc1f3103bee6137957aa7c5f8f2f0bc |
18-Jun-2009 |
Steve Naroff <snaroff@apple.com> |
First step toward fixing <rdar://problem/6613046> refactor clang objc type representation. Add a type (ObjCObjectPointerType) and remove a type (ObjCQualifiedIdType). This large/tedious patch is just a first step. Next step is to remove ObjCQualifiedInterfaceType. After that, I will remove the magic TypedefType for 'id' (installed by Sema). This work will enable various simplifications throughout clang (when dealing with ObjC types). No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73649 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
ypeXML.def
|
038f75abf5abd1e35736dd5c751ba20df1158aaa |
15-Jun-2009 |
Douglas Gregor <dgregor@apple.com> |
More XML output support, from Olaf Krzikalla! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73402 91177308-0d34-0410-b5e6-96231b3b80d8
eclContextXML.def
eclXML.def
ocumentXML.def
ocumentXML.h
tmtXML.def
ypeXML.def
|
5e9f35c7cb61aea46f56d46c77cbcf47c0cf28ba |
14-Jun-2009 |
Douglas Gregor <dgregor@apple.com> |
Update LLVM. Implement support for C++ Substitution Failure Is Not An Error (SFINAE), which says that errors that occur during template argument deduction do *not* produce diagnostics and do not necessarily make a program ill-formed. Instead, template argument deduction silently fails. This is currently implemented for template argument deduction during matching of class template partial specializations, although the mechanism will also apply to template argument deduction for function templates. The scheme is simple: - If we are in a template argument deduction context, any diagnostic that is considered a SFINAE error (or warning) will be suppressed. The error will be propagated up the call stack via the normal means. - By default, all warnings and errors are SFINAE errors. Add the NoSFINAE class to a diagnostic in the .td file to make it a hard error (e.g., for access-control violations). Note that, to make this fully work, every place in Sema that emits an error *and then immediately recovers* will need to check Sema::isSFINAEContext() to determine whether it must immediately return an error rather than recovering. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@73332 91177308-0d34-0410-b5e6-96231b3b80d8
rontendDiagnostic.h
|
acebb397fa5d63835a0de9cee144987057ec1333 |
06-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Set function Attribute::NoImplicitFloat appropriately. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72961 91177308-0d34-0410-b5e6-96231b3b80d8
ompileOptions.h
|
24095dad88dd9d48aa16afa6416417073af251b5 |
05-Jun-2009 |
Devang Patel <dpatel@apple.com> |
Set function attribute llvm::Attribute::NoRedZone appropriately. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72902 91177308-0d34-0410-b5e6-96231b3b80d8
ompileOptions.h
|
603fca728136f0e5d258a84e7bd4a0e1e9bd0803 |
04-Jun-2009 |
Torok Edwin <edwintorok@gmail.com> |
Add ANSI color support for clang. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72855 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
877db3852e29c5b5a2dc25b3fe4a3b78619aa904 |
03-Jun-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add clang-cc support for -disable-llvm-optzns. - Avoids running any LLVM optimizations, even at -O2, etc., while still keeping any language changes these optimizations imply. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72742 91177308-0d34-0410-b5e6-96231b3b80d8
ompileOptions.h
|
4fe0c8e9c76b96e7aff21696a40dacc09d0237bc |
30-May-2009 |
Douglas Gregor <dgregor@apple.com> |
Refactor and clean up the AST printer, so that it uses a DeclVisitor, walks through DeclContexts properly, and prints more of the information available in the AST. The functionality is still available via -ast-print, -ast-dump, etc., and also via the new member functions Decl::dump() and Decl::print(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72597 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
|
ee75c05c1a0218369cac26ab1c847d9a04e4db88 |
21-May-2009 |
Douglas Gregor <dgregor@apple.com> |
AST XML dump, from Olaf Krzikalla! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72224 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
ocumentXML.h
|
d1f22e1f73b67116393720739d3ab8116ae301bc |
19-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove finished FIXME. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72137 91177308-0d34-0410-b5e6-96231b3b80d8
nalysisConsumer.h
|
0ec78fa2c92b714de41cc87cfa79e4877ab5479e |
19-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Move AnalysisConsumer.h and Analyses.def from tools/clang-cc to include/clang/Frontend, and move AnalysisConsumer.cpp from tools/clang-cc to lib/Frontend. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72135 91177308-0d34-0410-b5e6-96231b3b80d8
nalyses.def
nalysisConsumer.h
|
b09f6e15c59b89d5820db8ef40598eb1d1323c1f |
19-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Move clang-cc.h to lib/Frontend/Utils.h, and move the associated .cpp files to lib/Frontend. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72099 91177308-0d34-0410-b5e6-96231b3b80d8
tils.h
|
39d7c4d2d980651c4263b67cf0ab61dec34cd76b |
19-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Move ASTConsumers.h to include/clang/Frontend, and move the associated .cpp files to lib/Frontend. (As proposed on cfe-dev.) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@72060 91177308-0d34-0410-b5e6-96231b3b80d8
STConsumers.h
|
a3306f0b9f988677bf12c3403dd0c0336cb5c246 |
18-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove tabs. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71997 91177308-0d34-0410-b5e6-96231b3b80d8
nitPreprocessor.h
|
f086e3bef1d98d3fb6c17c8d6b62f3eedd9eb78c |
18-May-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Remove unused parameter. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71996 91177308-0d34-0410-b5e6-96231b3b80d8
nitPreprocessor.h
|
b64c19365deab788753d29c9bc881253c3f16f37 |
12-May-2009 |
Douglas Gregor <dgregor@apple.com> |
Make precompiled headers work with -E. When we're only preprocessing (with -E), we turn the PCH include into an implicit include of the file from which the PCH file was generated. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71534 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
6e8ed16ffef02b82995a90bdcf10ffff7d63839a |
10-May-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Implement C++0x nullptr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71405 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
2cc2b9ca22d21cd855f06f545b8720f6a7a965b4 |
06-May-2009 |
Douglas Gregor <dgregor@apple.com> |
Eliminate extra vertical space in Clang diagnostics git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@71066 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
47f717788082cdc38b899faf18acc8d1cda1b9c5 |
02-May-2009 |
Douglas Gregor <dgregor@apple.com> |
When printing a source line as part of a diagnostic, the source line might be wider than we're supposed to print. In this case, we try to select the "important" subregion of the source line, which contains everything that we want to show (e.g., with underlining and the caret itself) and tries to also contain some of the context. From the fantastically long line in the test case, we get an error message that slices down to this: message-length.c:18:120: warning: comparison of distinct pointer types ('int *' and 'float *') a_func_to_call(ip == FloatPointer, ip[ALongIndexName], ~~ ^ ~~~~~~~~~~~~ There are a bunch of gee-it-sounds-good heuristics in here, which seem to do well on the various simple tests I've thrown at it. However, we're going to need to look at a bunch more diagnostics to tweak these heuristics. This is the second part of <rdar://problem/6711348>. Almost there! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70597 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
fffd93f38340d4d2ca7ee78a8c91c890b2ff3fa0 |
01-May-2009 |
Douglas Gregor <dgregor@apple.com> |
Implement -fmessage-length=N, which word-wraps diagnostics to N columns. Also, put a line of whitespace between the diagnostic and the source code/caret line when the start of the actual source code text lines up (or nearly lines up) with the most recent line of the diagnostic. For example, here it's okay for the last line of the diagnostic to be (vertically) next to the source line, because there is horizontal whitespace to separate them: decl-expr-ambiguity.cpp:12:16: error: function-style cast to a builtin type can only take one argument typeof(int)(a,5)<<a; However, here is a case where we need the vertical separation (since there is no horizontal separation): message-length.c:10:46: warning: incompatible pointer types initializing 'void (int, float, char, float)', expected 'int (*)(int, float, short, float)' int (*fp1)(int, float, short, float) = f; This is part one of <rdar://problem/6711348>. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70578 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
2df9ced9fd1e8c7d7b38443db07e0e811de22571 |
30-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
initial support for __[u]int128_t, which should be basically compatible with VC++ and GCC. The codegen/mangling angle hasn't been fully ironed out yet. Note that we accept int128_t even in 32-bit mode, unlike gcc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70464 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
a02b147b66ff9f1a22bac4ec7fd1b0d54a40e5bf |
28-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Make the PCH reader use the diagnostics system for its complaints. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70330 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
92b059ea944adaa3e00bb53d63a09868a4752547 |
28-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Implement checking for macro definitions that occur on the command line when using a PCH that were not provided when building the PCH file. If those names were used as identifiers somewhere in the PCH file, reject the PCH file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70321 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
e721f95069d42b899c20c1caabdc6184dd42b820 |
28-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Allow some differences between the predefines buffer used to build a PCH file and the predefines buffer used when including the PCH file. We (explicitly) detect conflicting macro definitions (rejecting the PCH file) and about missing macro definitions (they'll be automatically pulled from the PCH file anyway). We're missing some checking to make sure that new macro definitions won't have any impact on the PCH file itself (e.g., #define'ing an identifier that the PCH file used). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70316 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
4e14823581407a5c7aa78c42b7af387a6c2322a0 |
28-Apr-2009 |
Eli Friedman <eli.friedman@gmail.com> |
Attempt to fix reported build error on Cygwin, PR4088. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70268 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
ab41e63821dc60ad144d0684df8d79a9eef86b75 |
28-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Add a header containing the Clang version; make the driver use this Clang version value rather than hard-coding "1.0". Add PCH and Clang version information into the PCH file. Reject PCH files with the wrong version information. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70264 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHWriter.h
|
d1d64a027554b635d644957ef071ec04ea1f7063 |
27-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
Teach PCH that ASTContext is optional. Move -parse-noop and -Eonly (so far) processing to after PCH is loaded. -Eonly and -parse-noop are close to working with PCH now but are not quite there yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70257 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
b81c17092039f39be60e9656a37cffbdf2e2c783 |
27-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Add Sema::ExtVectorDecls and Sema::ObjCCategoryImpls to the PCH file. Since these vectors are very, very rarely used and, when used in headers, and even when used are relatively small, we load them eagerly. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70240 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
|
090d9b53e32bb30d9e74de895bb59b409bd49e00 |
27-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
shrink SOURCE_LOCATION_OFFSETS to use 4-byte entries instead of 8-byte entries, shaving 100K off the PCH file for cocoa. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70228 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
4fed3f47f6b9e31d603c5c2d1f6d8ec2e1241e57 |
27-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Implement caching of stat() calls for precompiled headers, which is essentially the same thing we do with pretokenized headers. stat() caching improves performance of the Cocoa-prefixed "Hello, World" by 45%. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70223 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
c732f5a4ae13a75b5dfa8f640a50f94db2d3092c |
27-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
encode the type and decl offsets with 32-bits for entry instead of 64 bits. This cuts 400KB off the PCH file for cocoa (7.1 -> 6.7MB): Before: Record Histogram: Count # Bits % Abv Record Kind 1 14296 SOURCE_LOCATION_PRELOADS 1 1699598 100.00 SOURCE_LOCATION_OFFSETS 1 1870766 100.00 METHOD_POOL 1 212988 100.00 SELECTOR_OFFSETS 1 88 STATISTICS 1 106 SPECIAL_TYPES 1 18033788 100.00 IDENTIFIER_TABLE 1 1806428 100.00 IDENTIFIER_OFFSET 1 170 100.00 TARGET_TRIPLE 1 268 LANGUAGE_OPTIONS 1 5168252 100.00 DECL_OFFSET 1 952700 100.00 TYPE_OFFSET After: Record Histogram: Count # Bits % Abv Record Kind 1 14296 SOURCE_LOCATION_PRELOADS 1 1699598 100.00 SOURCE_LOCATION_OFFSETS 1 1870766 100.00 METHOD_POOL 1 212988 100.00 SELECTOR_OFFSETS 1 88 STATISTICS 1 106 SPECIAL_TYPES 1 18033788 100.00 IDENTIFIER_TABLE 1 1806428 100.00 IDENTIFIER_OFFSET 1 170 100.00 TARGET_TRIPLE 1 268 LANGUAGE_OPTIONS 1 2584156 100.00 DECL_OFFSET 1 476380 100.00 TYPE_OFFSET git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70216 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
CHWriter.h
|
ea5ce4705df0743093925585d8edc80e0d8fe3ff |
27-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
add an abbreviation for common PARM_VAR_DECL. All but 9 of the parm var decls in leopard cocoa.h end up using this abbreviation, which shrinks the bitcode file by about 50K: 7217736->7167120. Before: Block ID #12 (DECLS_BLOCK): Num Instances: 1 Total Size: 2.23595e+07b/2.79494e+06B/698736W % of file: 38.7233 Num SubBlocks: 0 Num Abbrevs: 0 Num Records: 139387 % Abbrev Recs: 0 After: Block ID #12 (DECLS_BLOCK): Num Instances: 1 Total Size: 2.02405e+07b/2.53006e+06B/632516W % of file: 35.301 Num SubBlocks: 0 Num Abbrevs: 1 Num Records: 139387 % Abbrev Recs: 19.2902 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70199 91177308-0d34-0410-b5e6-96231b3b80d8
CHWriter.h
|
7f94b0b0c6791013d2f72ced9b4bedd3b23673a6 |
27-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Load most of the source manager's information lazily from the PCH 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. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70196 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
|
02602be3ccc3b29da5b91d2502c3419404992409 |
27-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
unclone SavedStreamPosition git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70192 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
da93061f56d5820725b01a140879d047554e7d32 |
27-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
read all decls (and attributes and stmts/exprs referenced by the decl) from the DeclsCursor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70190 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
887e2b375fc5e00084ec7bf3dd050c2ca399a6d2 |
27-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
rename GetStmt -> GetDeclStmt to make it clear that the stmt read is part of a decl. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70189 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
52e97d1afc98cf4cf0a6cb8f43769dfd8acbab20 |
27-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
change the interface to ReadStmt to force clients to pass a cursor in to read from. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70188 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
698f925dedd956cf7c2d7f77ba6192eb04b31e60 |
27-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
split decl reading out to its own PCHReaderDecl.cpp file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70187 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
4c6f952b70abd69e52fa567393c60295edb8a1a5 |
27-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
split stmt/expr deserialization out to PCHReaderStmt.cpp git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70186 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
6367f6d06308ef29c28d2c1604ded45625caeec9 |
27-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
Set up DeclsCursor. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70173 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
5947ca29a619725b8a9ea2e58a6c9df9e7db139b |
27-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
fix a comment by starting stmts/exprs after types and decls. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70171 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
b145b1e9de866e79fb386e4a074dc0b41853acf3 |
27-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
make llvm-bcanalyzer dump out PCH files symbolically. We should probably eventually get an option to turn this off, but it is nice for looking at statistics. For example, the types block now prints: Block ID #11 (TYPES_BLOCK_ID): Num Instances: 1 Total Size: 895100b/111888B/27971.9W % of file: 1.55801 Num SubBlocks: 0 Num Abbrevs: 0 Num Records: 14899 % Abbrev Recs: 0 Code Histogram: 5478 TYPE_FUNCTION_PROTO 2683 TYPE_TYPEDEF 2460 TYPE_POINTER 2047 TYPE_ENUM 1553 TYPE_RECORD 283 TYPE_CONSTANT_ARRAY 274 TYPE_OBJC_INTERFACE 76 TYPE_INCOMPLETE_ARRAY 10 TYPE_VECTOR 9 TYPE_OBJC_QUALIFIED_ID 5 TYPE_FUNCTION_NO_PROTO 5 TYPE_EXT_QUAL 3 TYPE_TYPEOF_EXPR git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70166 91177308-0d34-0410-b5e6-96231b3b80d8
CHWriter.h
|
405bad07391494d2eb025f8222c256c66b56e5f8 |
27-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Some fixes for PCH (de-)serialization of Objective-C AST nodes: - Deal with the Receiver/ClassInfo shared storage in ObjCMessageExpr - Implement PCH support for ImplicitParamDecl - Fix the handling of the body of an ObjCMethodDecl - Several cast -> cast_or_null fixes - Make Selector::getIdentifierInfoForSlot work for 1-argument, NULL selectors. - Make Selector::getAsString() work with NULL selectors. - Fix the names of VisitObjCAtCatchStmt and VisitObjCAtFinallyStmt in the PCH reader and writer; these were never getting called. At this point, all of the pch-test tests pass for C and Objective-C. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70163 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
b9fa917e90d5d70d2d84c8cb7e7470b3828f957d |
26-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
Adjust to LLVM API changes that went into r70157. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70158 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
1eb5540760dc79502e32d4fe9c28217476ea14b9 |
26-Apr-2009 |
Steve Naroff <snaroff@apple.com> |
Add PCH read/write support for ObjC statements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70143 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
366809a4e9340b3458b471e2294a75a9f09ea304 |
26-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
When writing a PCH file, write multiple type and declaration blocks as necessary and iterate until all types and declarations have been written. This reduces the Cocoa.h PCH file size by about 4% (since we don't write types we don't need), and fixes problems where writing a declaration generates a new type. This doesn't seem to have any impact on performance either way. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70109 91177308-0d34-0410-b5e6-96231b3b80d8
CHWriter.h
|
0389e6bd0159bfdd08f7c50a37543b6e3adf0c33 |
26-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
implement PCH support for the rest of ExprObjC.h, including the missing bits of ObjCMessageExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70100 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
2eafc1b56347f772729e082e6bac824b0ef1b585 |
26-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Don't read all of the records in the PCH file's preprocessor block, most of which are ignored. Instead, move the __COUNTER__ value out to a PCH-level record (since it is handled eagerly) and move the header file information into the SourceManager block (which is also, currently, loaded eagerly). This results in another 17% performance improvement in the Cocoa-prefixed "Hello, World" with PCH. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70097 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
8c5a760b82e73ed90b560090772db97e2ae27b09 |
26-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Lazily load the controlling macros for all of the headers known in the PCH file. In the Cocoa-prefixed "Hello, World" benchmark, this takes us from reading 503 identifiers down to 37 and from 470 macros down to 4. It also results in an 8% performance improvement. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70094 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
5f8e3302242cf94de2f8e46d10167f57fcf747c3 |
25-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Revert my changes that try to avoid creating StringMap entries for identifiers. They don't yet work, but will inhibit future optimizations. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70071 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
5da8161bdff1c81ab93b55ddd0fd45dc2123ef85 |
25-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Start implementing the PTH IdentifierInfo-saving trick in PCH, allocating IdentifierInfos with a pointer into the string data stored in the PCH file rather than having an entry in the identifier table's string map. However, we don't actually get these savings at the moment, because we go through the IdentifierTable when loading identifiers from the on-disk hash table. This commit is for record-keeping purposes only. I'll be reverting this change (and the PCH layout tweak that preceded it) because it appears that implementing this optimization will collide with another, future optimization to reduce the size of the on-disk hash table for identifiers. That optimization is likely to provide more benefit (with less voodoo). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70070 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
2b3a5a83ea30bde7fa8f9d8e9a0cb12623759bfb |
25-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Write the identifier offsets array into the PCH file as a blob, so that the PCH reader does not have to decode the VBR encoding at PCH load time. Also, reduce the size of the identifier offsets from 64 bits down to 32 bits. The identifier table itself isn't going to grow to more than 4GB :) Overall, this results in a 13% speedup in the Cocoa-prefixed "Hello, World" benchmark. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70063 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
CHWriter.h
|
8f5dc7fe4d42cea78fa92d1638f753cf65b54cb5 |
25-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Write the declaration and type offset arrays into the bitstream as blobs, so that we don't need to do any work to get these arrays into memory at PCH load time. This gives another 19% performance improvement to the Cocoa-prefixed "Hello, World!". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70059 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
83941df2745d69c05acee3174c7a265c206f70d9 |
25-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Load the selector table lazily from the PCH file. This results in a 10% speedup on the Cocoa-prefixed "Hello, World!", all of which is (not surprisingly) user time. There was a tiny reduction in the size of the PCH file for Cocoa.h, because certain selectors aren't being written twice. I'm using two new tricks here that I'd like to replicate elsewhere: (1) The selectors not used in the global method pool are packed into the blob after the global method pool's on-disk hash table and stored as keys, so that all selectors are in the same blob. (2) We record the offsets of each selector key when we write it into the global method pool (or after it, in the same blob). The offset table is written as a blob, so that we don't need to pack/unpack a SmallVector with its contents. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70055 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
c4f0bbdb166fbc31ab2cf0f6ff573fde9fa307b3 |
25-Apr-2009 |
Steve Naroff <snaroff@apple.com> |
Add PCH support for ObjCMessageExpr (needed to build Mail). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70044 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
c62a2fe1957626bc4b29402b2d0a3694dfaa3280 |
25-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Make sure that the consumer sees all interested decls. This fixes Preview git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@70007 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
f0aaf7a59729a4ae0146e3464ee987745be95829 |
24-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for the global method pool (= instance and factory method pools, combined). The methods in the global method pool are lazily loaded from an on-disk hash table when Sema looks into its version of the hash tables. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69989 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
83d63c78810556d26b62ac4cbae2eda6cdd2570c |
24-Apr-2009 |
Steve Naroff <snaroff@apple.com> |
Add PCH support for #import. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69987 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
319ac896a0fef7365d5589b8021db7e41207fe42 |
24-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for all of the predefined Objective-C types, such as id, SEL, Class, Protocol, CFConstantString, and __objcFastEnumerationState. With this, we can now run the Objective-C methods and properties PCH tests. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69932 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
90cd1bb1baac2a0221f3642de0cbea3244b116e5 |
23-Apr-2009 |
Steve Naroff <snaroff@apple.com> |
Add PCH read/write support for Objective-C Selectors. Note: This support is non-lazy. Once we get "Cocoa.h" humming, we can optimize this. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69884 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
2512308525ff328aa992da0b5ee14a488d2ea93a |
23-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Add PCH statistics for the number/percent of lexical/visible declcontexts read git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69835 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
CHWriter.h
|
14c22f20c077cecd68581952a0c227f8c180be03 |
23-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Support locally-declared external declarations in PCH files git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69833 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
|
4c0e86b392c5fb0cb771551fc877edb6979be69c |
23-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Support tentative definitions in precompiled headers. This isn't likely to happen (ever), but at least we'll do the right thing when it does. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69829 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
|
6cfc1a8b7582b8433b61222502effb018c534393 |
22-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Eliminate some FIXMEs in the PCH reader that were either already fixed or aren't actually things to fix git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69827 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
0af2ca4b6ddc788658069a0994941268ce250fc7 |
22-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Minimize the number and kind of "external definitions" that the PCH file needs to store. CodeGen needs to see these definitions (via HandleTopLevelDecl), otherwise it won't be able to generate code for them. This patch notifies the consumer (e.g., CodeGen) about function definitions and variable definitions when the corresponding declarations are deserialized. Hence, we don't eagerly deserialize the declarations for every variable or function that has a definition in the PCH file. This gives another 5% speedup for the Carbon-prefixed "Hello, World!", and brings our PCH statistics down to something far more reasonable: *** PCH Statistics: 13/20693 types read (0.062823%) 17/59230 declarations read (0.028702%) 54/44914 identifiers read (0.120230%) 0/32954 statements read (0.000000%) 5/6187 macros read (0.080815%) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69820 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
2deaea37a637dd01221d0cced343702a39d8132c |
22-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Lazy loading of builtins for precompiled headers. PCH files now contain complete information about builtins, including any declarations that have been synthesized as part of building the PCH file. When using a PCH file, we do not initialize builtins at all; when needed, they'll be found in the PCH file. This optimization translations into a 9% speedup for "Hello, World!" with Carbon.h as a prefix header and roughly a 5% speedup for 403.gcc with its prefix header. We're also reading less of the PCH file for "Hello, World!": *** PCH Statistics: 286/20693 types read (1.382110%) 1630/59230 declarations read (2.751984%) 764/44914 identifiers read (1.701029%) 1/32954 statements read (0.003035%) 5/6187 macros read (0.080815%) down from *** PCH Statistics: 411/20693 types read (1.986179%) 2553/59230 declarations read (4.310316%) 1093/44646 identifiers read (2.448148%) 1/32954 statements read (0.003035%) 21/6187 macros read (0.339421%) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69815 91177308-0d34-0410-b5e6-96231b3b80d8
CHWriter.h
|
068360e16fa4504a6fb80affebae5c5713629a96 |
22-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
ObjCQualifiedClass is dead, remove it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69783 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
d7a3fcd48cb308074cc95031252bc64966f0703d |
22-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
pch support for protocol qualified id's. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69781 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
3a57a3765b6192a94ff4e5997ae0489a1471b308 |
22-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
add three new objc expression types. @selector doesn't work because we have no way to serialize selectors yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69780 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
4dcf151a555ff51e4d643e8e6eeb80f121d11d1b |
22-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
implement serialization support for @encode, fix a couple of bugs in reader support for ObjCInterfaceDecl, and add support for reading ObjCInterfaceType. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69779 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
37e2684abfe38207fdb90620da062bb18c23f29a |
22-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Lazy deserialization of macro definitions for precompiled headers. This optimization improves performance on the Carbon-prefixed "Hello, World!" example by 57%. For reference, we're now about 2.25x faster than GCC PCH. We're also pulling in far less of the PCH file: *** PCH Statistics: 411/20693 types read (1.986179%) 2553/59230 declarations read (4.310316%) 1093/44646 identifiers read (2.448148%) 1/32954 statements read (0.003035%) 21/6187 macros read (0.339421%) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69755 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
668c1a4fdcc56bdd050256b1688e116fe84b72db |
22-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Lazy deserialization of the declaration chains associated with identifiers from a precompiled header. This patch changes the primary name lookup method for entities within a precompiled header. Previously, we would load all of the names of declarations at translation unit scope into a large DenseMap (inside the TranslationUnitDecl's DeclContext), and then perform a special "last resort" lookup into this DeclContext when we knew there was a PCH file (see Sema::LookupName). Now, when we see an identifier named for the first time, we load all of the declarations with that name that are visible from the translation unit into the IdentifierInfo's chain of declarations. Thus, the explicit "look into the translation unit's DeclContext" code is gone, and Sema effectively uses the same IdentifierInfo-based name lookup mechanism whether we are using a PCH file or not. This approach should help PCH scale with the size of the input program rather than the size of the PCH file. The "Hello, World!" application with Carbon.h as a PCH file now loads 20% of the identifiers in the PCH file rather than 85% of the identifiers. 90% of the 20% of identifiers loaded are actually loaded when we deserialize the preprocessor state. The next step is to make the preprocessor load macros lazily, which should drastically reduce the number of types, declarations, and identifiers loaded for "Hello, World". git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69737 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
30833f8d77c08f8f16371776fde85a9fde3d9b6e |
21-Apr-2009 |
Steve Naroff <snaroff@apple.com> |
Add pch reader/writer support for most of DeclObjC.h. Very close to reading/writing all ObjC AST nodes that we will encounter in header files (still a few FIXME's). Once selector support is in place, we should be able to take this for a spin (and add test cases). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69674 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
e116ccf140b813ecd20e3fb4041d7d0b8a967c0b |
21-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
Split preprocessor initialization logic out of clang-cc into libfrontend. Patch by Alexei Svitkine! git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69664 91177308-0d34-0410-b5e6-96231b3b80d8
nitPreprocessor.h
|
3251ceb90b3fec68e86d6dcfa58836e20a7205c3 |
20-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Write the identifier table into the PCH file as an on-disk hash table that also includes the contents of the IdentifierInfo itself (the various fields and flags, along with the chain of identifiers visible at the top level that have that name). We don't make any use of the hash table yet, except that our identifier ID -> string mapping points into the hash table now. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69625 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
CHWriter.h
|
33feeb019a5742b286eededd5446ec0fe87c5a61 |
20-Apr-2009 |
Steve Naroff <snaroff@apple.com> |
Add pch reader/writer support for ObjCContainerDecl, ObjCInterfaceDecl, & ObjCIvarDecl. Next step: Add selector support to PCHWriter::AddDeclarationName(). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69619 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
e7785040107266d01ebdcc066365f70b7ace371f |
20-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Introduce the notion of a SemaConsumer, which is an ASTConsumer that also gets access to the Sema object performing semantic analysis. This will be used by the PCH writer to serialize Sema state. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69595 91177308-0d34-0410-b5e6-96231b3b80d8
CHWriter.h
|
53c9d8a4b8f0a76cb9dd2fdd8c433ccf110f2eec |
20-Apr-2009 |
Steve Naroff <snaroff@apple.com> |
Add pch reader/writer support for ObjCMethodDecl. Test will be enabled with ObjCInterfaceDecl is added. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69594 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
aa5bf2e8dc01f9835efef76222dc440a5c18b160 |
19-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
implement compiler support for -fno-diagnostics-fixit-info, rdar://6805442 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69525 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
ad1de006ea080b540e480efc6b86c2e201dbf1ec |
18-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Store the type ID for __builtin_va_list in the PCH file, so that the AST context's __builtin_va_list type will be set when the PCH file is loaded. This fixes the crash when CodeGen'ing a va_arg expression pulled in from a PCH file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69421 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
|
250fc9c859fdeed3f200ae911a7e7ea338f38436 |
18-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Lazy deserialization of function bodies for PCH files. For the Carbon "Hello, World!", this takes us from deserializing 6469 statements/expressions down to deserializing 1 statement/expression. It only translated into a 1% improvement on the Carbon-prefixed 403.gcc, but (a) it's the right thing to do, and (b) we expect this to matter more once we lazily deserialize identifiers. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69407 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
7297134f128423fce2e88f92421ed135bded7d4e |
18-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
FunctionDecl::getBody() is getting an ASTContext argument for use in lazy PCH deserialization. Propagate that argument wherever it needs to be. No functionality change, except that I've tightened up a few PCH tests in preparation. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69406 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
3e1af84bb0092a1aafb49deaa4ab6664c9a9071b |
18-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Keep track of the number of statements/expressions written to and read from a PCH file. It turns out that "Hello, World!" is bringing in 19% of all of the statements in Carbon.h, so we need to be lazy. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69393 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
cd7d5a9dc558178ed7a66032f888781b3c592e4f |
17-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for inline assembly statements. This completes support for all of C (+ extensions). We can (again) build a PCH file for Carbon.h. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69385 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHWriter.h
|
409d4e716a01a71c4fecfaec59ca8348c8a5d275 |
17-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
refactor htmldiags to be created up front like the other diag clients. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69379 91177308-0d34-0410-b5e6-96231b3b80d8
athDiagnosticClients.h
|
40469651a3f8379dc0f32df69e9bade06a2aad36 |
17-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
add a virtual method to DiagnosticClient to get rid of some fragile casting in clang-cc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69377 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
84af7c27cdc615ff917a501d61256b4049383c97 |
17-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for blocks git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69373 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
6a2dd55b0b3ae376d449a4b07bbb6b2d30b26330 |
17-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for GNU statement expressions git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69370 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
7d5c2f241c74e5f8d9ec492e8f9f268e5e9ae41f |
17-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for indirect gotos and address-of-label expressions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69369 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
|
1de05feeeafe5b215fe7617594a7076a5192a6e2 |
17-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for labels and goto. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69364 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
84f2170062014d268951902164bed0d8bdea0e82 |
17-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for declaration statements, and a test for PredefinedExpr git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69356 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
0de9d8857b715c2f45c987651f4ce06d73330d93 |
17-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for return statements. Optimize PCH encoding for switch-case statements slightly, by making the switch-case numbering local to a particular statement. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69355 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
67d8249924ef38a5375ff9c92cd21c1854d6abab |
17-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for do-while and for loops git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69334 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
d921cf976b4769af8d06d6763a2547dadf7940ab |
17-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for while and continue statements git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69332 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
025452fa0eda63e150cfaeebe64f0a19c96b3a06 |
17-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for the first batch of statements, including null, compound, case, default, if, switch, and break statements. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69329 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
c9490c000f515c29f200a1215328d8ab9a0f3818 |
17-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Prepare PCH reader and writer for (de-)serialization of statements. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69319 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
19cbb44e3c4f2181dafa2ab92d3e3a26619b71d9 |
16-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
tblgen is now passing diagnostic group information in the .inc file, ignore it everywhere. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69269 91177308-0d34-0410-b5e6-96231b3b80d8
rontendDiagnostic.h
|
d51d74a3e89c5e5fc9bfd2814996a5feab6dc932 |
16-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
implement framework for -fdiagnostics-show-option, but tblgen isn't passing down the right info yet. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69268 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
63f5c2646e75041277657aa1392a5bdd643367a7 |
16-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Eliminate pch::TYPE_ATTR, which is never used git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69256 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
ba6d7e7fa5f79959d3eef39adb5620d845ba5198 |
16-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for CompoundLiteralExpr. This is the last C expression that does not require PCH support for statements. Only AddrLabelExpr, StmtExpr, and BlockExpr remain (for C). git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69255 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
d077d759d0c7fceee98f4e77b6423a3f11cfc849 |
16-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for InitListExpr, DesignatedInitExpr, and ImplicitValueInitExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69251 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
94cd5d1397bb1a8bcd109602aa38dd787b164c22 |
16-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for ShuffleVectorExpr and BlockDeclRefExpr git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69244 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
44cae0c8669cdf83618cbe7fd36ea7a8e51cf97f |
16-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for TypesCompatibleExpr, ChooseExpr, and GNUNullExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69242 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
d3c98a02c73417689deaaa6671ea6df7f2a8a73c |
16-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for ExtVectorElementExpr and VAArgExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69240 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
ad90e96fb7eed26d5217dd06ba50ecbbbebb59e6 |
16-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for CompoundAssignOperator and ConditionalOperator git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69237 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
cb2ca73c1d7e76cc1358ce51457d2d5837d84f9b |
16-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for ImaginaryLiteral and ArraySubscriptExpr git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69233 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
68a2eb0cc76267ba0615992fb5e0977853c397b2 |
15-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for declaration attributes git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69225 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
1f0d0133b0e8d1f01f63951ee04927796b34740d |
15-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for MemberExpr and CallExpr. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69186 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
4ac072aceb9c68f7a023050e2ab9ccacb4fe6e5b |
15-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
Tblgen now passes the default mapping explicitly, instead of having it be tied to the diag class. This requires an LLVM tree update. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69175 91177308-0d34-0410-b5e6-96231b3b80d8
rontendDiagnostic.h
|
673ecd6a4a9f7c12fb6f76f84f654dbdcdc89e76 |
15-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for string literals git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69172 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
0b0b77fa29c74c99a77548ed86ca8a04f7cf6b02 |
15-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for UnaryOperator, SizeOfAlignOfExpr git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69169 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
db600c330a37b1c3ab4533310729910ee188f900 |
15-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for CStyleCastExpr and BinaryOperator expression kinds. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69119 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
c04db4feefa2b0dbbc6876cb4eeeee108aa6791d |
15-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for ParenExpr git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69106 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
087fd536809ebe754d91c641a98917e02dd7452d |
15-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Add PCH support for ImplicitCastExprs. This is the first expression kind PCH handles that has an expression as an operand, so most of this work is in the infrastructure to rebuild expression trees from the serialized representation. We now store expressions in post-order (e.g., Reverse Polish Notation), so that we can easily rebuild the appropriate expression tree. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69101 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHWriter.h
|
2c78b873f4f3823ae859c15674cb3d76c8554113 |
15-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
Change Lexer::MeasureTokenLength to take a LangOptions reference. This allows it to accurately measure tokens, so that we get: t.cpp:8:13: error: unknown type name 'X' static foo::X P; ~~~~~^ instead of the woefully inferior: t.cpp:8:13: error: unknown type name 'X' static foo::X P; ~~~~ ^ Most of this is just plumbing to push the reference around. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69099 91177308-0d34-0410-b5e6-96231b3b80d8
ixItRewriter.h
extDiagnosticPrinter.h
|
17fc223395d51be582fc666bb6ea21bd1dff26dc |
14-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Add PCH support for PredefinedExpr and FloatingLiteral expressions git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69084 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
0b7489194f9f89fac39d57211c1e7953ae50251f |
14-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for a few very, very simple kinds of expressions. Hook up expression (de-)serialization for VLAs, variable initializers, enum constant initializers, and bitfield widths. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69075 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
fdd0172ca1b3c837f8c2b37d69cc2085234e09fa |
14-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
When writing a PCH file, keep track of all of the non-static, non-inline external definitions (and tentative definitions) that are found at the top level. The corresponding declarations are stored in a record in the PCH file, so that they can be provided to the ASTConsumer (via HandleTopLevelDecl) when the PCH file is read. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69005 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
1028bc67d56ea088c3a57c4c44c3f6aeff60a031 |
14-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Partial PCH support for FileScopeAsmDecl and BlockDecl. Both require expression or statement serialization before we can test them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@69002 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
3a2f7e42514ddbec983c61826ce85d3071e23e8e |
14-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for functions and their parameters. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68997 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
|
8c70006581a9b9e9485570ca727a6c5f7be63521 |
13-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH support for record decls/types and their fields. Now that we can handle the definition of __builtin_va_list on x86-64, eliminate the forced -triple in PCH tests to get better coverage. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68988 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
0a2b45e5885b6b8477b167042c0f6cd1d99a1f13 |
13-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Add PCH support for enumerations and enumerators. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68974 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
bd94500d3aa60092fb0f1e90f53fb0d03fa502a8 |
13-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Include the SourceManager's line table in the PCH file. We can now properly cope with #line directives in PCH files. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68963 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
c1f9d828c733ec1eba06d01070735d1f36fda733 |
13-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
implement the microsoft/gnu "__COUNTER__" macro: rdar://4329310 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68933 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
7356a31327be9b3c3434a0c88746028980da5684 |
11-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
now that we have an identifier table in the PCH file, finish hooking up macro deserialization. We now correctly install II's in tokens, handle function-like macros, etc. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68882 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
|
afaf308b779cd8e8fc8c42601b9f383423c15c2d |
11-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Store unique IDs for identifiers in the PCH file. Use some bitmangling so that we only need to perform the lookup and identifier resolution once per identifier in the PCH file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68846 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
e1d918e9fe55e3b34401fd5d420c47ea0f9572c9 |
11-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Compare the predefines buffer in the PCH file with the predefines buffer generated for the current translation unit. If they are different, complain and then ignore the PCH file. This effectively checks for all compilation options that somehow would affect preprocessor state (-D, -U, -include, the dreaded -imacros, etc.). When we do accept the PCH file, throw away the contents of the predefines buffer rather than parsing them, since all of the results of that parsing are already stored in the PCH file. This eliminates the ugliness with the redefinition of __builtin_va_list, among other things. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68838 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
42d42b5b84603032e57add333b5b44e0ef99bd9e |
10-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
add support for reading macros. This does all the reading (with a bunch of fixme's, e.g. for tokens with identifiers) but does not actually install them. Some details with the predefines buffer needs to be sorted out first. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68828 91177308-0d34-0410-b5e6-96231b3b80d8
CHReader.h
|
2bec0410d268779f601bd509e0302a500af7ac6a |
10-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Encode the target triple in the PCH file, and check that target triple when using the PCH file git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68824 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHWriter.h
|
0a0428e96c6f1e8bef7a481a9eb69a6f6df38951 |
10-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Implement serialization/deserialization of LangOptions in the PCH file. When de-serializing LangOptions, we check that the currently-provided language options are consistent with the options used to compile the PCH file. If they are not, we emit a diagnostic and ignore the PCH file. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68820 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
d14f27053c5d2a9140eed38b9d208b94e7f83b31 |
10-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
add a new PP_MACRO_NAME hack so that I can test object-like macros. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68803 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
df961c28f84666051ad59d2da1f44023f6366d02 |
10-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
emit tokens, constify the Preprocessor passed down into PCH writer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68798 91177308-0d34-0410-b5e6-96231b3b80d8
CHWriter.h
|
7c5d24efcd2e505b5739f7def08dfe25ce59a1b2 |
10-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
emit function-like and object-like macros to the PCH file. Note that we don't do anything useful with identifier infos yet and don't emit the tokens that the macros are defined to. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68797 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
|
8038d5182b72dcdef292f6fb8539ad77f338855a |
10-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Various minor fixes to PCH reading and writing, with general cleanup. Aside from a minor tweak to the PCH file format, no functionality change. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68793 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
0b1fb988012da21d996c43e36867787a7a07b889 |
10-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
Arrange for the preprocessor to be passed down into the PCH writer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68790 91177308-0d34-0410-b5e6-96231b3b80d8
CHWriter.h
|
14f79002e58556798e86168c63e48d533287eda5 |
10-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
PCH serialization/deserialization of the source manager. With this improvement, source locations read from the PCH file will properly resolve to the source files that were used to build the PCH file itself. Once we have the preprocessor state stored in the PCH file, source locations that refer to macro instantiations that occur in the PCH file should have the appropriate instantiation information. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68758 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
2cf2634ffdb4f7c8d46cef3f8e60a55993f1c57a |
10-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Implementation of pre-compiled headers (PCH) based on lazy de-serialization of abstract syntax trees. PCH support serializes the contents of the abstract syntax tree (AST) to a bitstream. When the PCH file is read, declarations are serialized as-needed. For example, a declaration of a variable "x" will be deserialized only when its VarDecl can be found by a client, e.g., based on name lookup for "x" or traversing the entire contents of the owner of "x". This commit provides the framework for serialization and (lazy) deserialization, along with support for variable and typedef declarations (along with several kinds of types). More declarations/types, along with important auxiliary structures (source manager, preprocessor, etc.), will follow. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68732 91177308-0d34-0410-b5e6-96231b3b80d8
CHBitCodes.h
CHReader.h
CHWriter.h
|
26df2f09587ad6978ac8e357ca46b2731d591cc4 |
02-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Add a new command-line option "-fixit-at=file:line:column" that only applies fix-its to error messages that occur at that specific location in the program. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68342 91177308-0d34-0410-b5e6-96231b3b80d8
ixItRewriter.h
|
de4bf6a63219c5b9d3bce1fed3dfe075568098a0 |
02-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Provide FIX-IT notes to describe what fix-it is doing behind the scenes, using the underlying diagnostic client to format the messages. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68324 91177308-0d34-0410-b5e6-96231b3b80d8
ixItRewriter.h
|
558cb56caf8906e0adbe643e3febbef0b7af1b9f |
02-Apr-2009 |
Douglas Gregor <dgregor@apple.com> |
Introduce a "-fixit" mode to clang-cc that applies code-modification hints. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@68268 91177308-0d34-0410-b5e6-96231b3b80d8
ixItRewriter.h
|
bd3606426d389370616126af969904ec493cb105 |
26-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
most of this is plumbing to get CompileOptions down into CodeGenModule. Once there, add a new NoCommon option to it and implement -fno-common. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67735 91177308-0d34-0410-b5e6-96231b3b80d8
ompileOptions.h
|
e062533e298f72d970b2aa99cd0e3818b20d73df |
26-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
make this self contained, declare everything as 'class'. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67734 91177308-0d34-0410-b5e6-96231b3b80d8
ompileOptions.h
|
4d7a089144f336b11e5e8ce437b3b27bce2b310d |
20-Mar-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Bindir and Win32 builds work, so switch to .inc files. Leave the .def files in the tree for a day or so longer. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67346 91177308-0d34-0410-b5e6-96231b3b80d8
rontendDiagnostic.h
|
e89b6b272f9f3b15afa56a701a4d7a6b1001ed34 |
14-Mar-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Revert the switch to the tablegen diags. It fails for seperate objdir builds and cmake builds, and I have no clue what to do about it. Revisit this after someone with a clue about the build systems has looked at it. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67009 91177308-0d34-0410-b5e6-96231b3b80d8
rontendDiagnostic.h
|
3801d71fbeb6e74a22cdd6a858e10d887bc29c7a |
14-Mar-2009 |
Sebastian Redl <sebastian.redl@getdesigned.at> |
Switch diagnostics from .def to tablegen files. Please validate the Windows build. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@67007 91177308-0d34-0410-b5e6-96231b3b80d8
rontendDiagnostic.h
|
1fbee5d02860d3c72a713d3dfb4179fa9f400cb3 |
13-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
implement a new -fprint-source-range-info option, which defaults to off. When enabled, it emits range info along with the file/line/col information for a diagnostic. This allows tools that textually parse the output of clang to know where the ranges are, even if they span multiple lines. For example, with: $ clang exprs.c -fprint-source-range-info We now produce: exprs.c:21:11:{21:12-21:13}: warning: use of unary operator that may be intended as compound assignment (+=) var =+ 5; // expected-warning {{use of unary operator that may be intended as compound assignment (+=)}} ^~ exprs.c:22:11:{22:12-22:13}: warning: use of unary operator that may be intended as compound assignment (-=) var =- 5; // expected-warning {{use of unary operator that may be intended as compound assignment (-=)}} ^~ exprs.c:36:13:{36:3-36:12}: error: assignment to cast is illegal, lvalue casts are not supported (float*)X = P; // expected-error {{assignment to cast is illegal, lvalue casts are not supported}} ~~~~~~~~~ ^ exprs.c:41:4:{41:3-41:4}: error: called object type 'int' is not a function or function pointer X(); // expected-error {{called object type 'int' is not a function or function pointer}} ~^ exprs.c:45:15:{45:8-45:14}{45:17-45:24}: error: invalid operands to binary expression ('int *' and '_Complex float') P = (P-42) + Gamma*4; // expected-error {{invalid operands to binary expression ('int *' and '_Complex float')}} ~~~~~~ ^ ~~~~~~~ exprs.c:61:7:{61:16-61:22}: error: invalid application of '__alignof' to bitfield R = __alignof(P->x); // expected-error {{invalid application of '__alignof' to bitfield}} expected-warning {{extension used}} ^ ~~~~~~ Note the range info after the column in the initial diagnostic. This is obviously really annoying if you're not a tool parsing the output of clang, which is why it is off by default. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66862 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
50f4f469024928670f2d634c445686d00eeb89b7 |
12-Mar-2009 |
Daniel Dunbar <daniel@zuster.org> |
Add Diagnostic files for Frontend and move a couple errors over. - Notably, clang now exits with an error if it can't find a file. This flushed out a bug in the CGColorSpace.c test case. :) git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66789 91177308-0d34-0410-b5e6-96231b3b80d8
rontendDiagnostic.h
|
df667e71b1daadeacb230cf94fc717843f1a138a |
10-Mar-2009 |
Douglas Gregor <dgregor@apple.com> |
Extend the notion of active template instantiations to include the context of a template-id for which we need to instantiate default template arguments. In the TextDiagnosticPrinter, don't suppress the caret diagnostic if we are producing a non-note diagnostic that follows a note diagnostic with the same location, because notes are (conceptually) a part of the warning or error that comes before them. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66572 91177308-0d34-0410-b5e6-96231b3b80d8
extDiagnosticPrinter.h
|
20126046221404b81cdd8de192bd72fdc7b0a670 |
09-Mar-2009 |
Chris Lattner <sabre@nondot.org> |
move debug info generation flag into CompileOptions. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@66478 91177308-0d34-0410-b5e6-96231b3b80d8
ompileOptions.h
|
d37ee16367bbf8058799148d958cbf4fbabc9fb7 |
02-Mar-2009 |
Daniel Dunbar <daniel@zuster.org> |
Normalize .h guards. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65853 91177308-0d34-0410-b5e6-96231b3b80d8
ompileOptions.h
nitHeaderSearch.h
anagerRegistry.h
athDiagnosticClients.h
extDiagnosticBuffer.h
extDiagnosticPrinter.h
|
e1bd4e6d7c5b13462f83245865f7d9e9b6ea8486 |
02-Mar-2009 |
Daniel Dunbar <daniel@zuster.org> |
Rename lib/Driver (etc) to lib/Frontend in prep for the *actual* driver taking lib/Driver. git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@65811 91177308-0d34-0410-b5e6-96231b3b80d8
ompileOptions.h
nitHeaderSearch.h
anagerRegistry.h
athDiagnosticClients.h
extDiagnosticBuffer.h
extDiagnosticPrinter.h
|