Daniel Dunbar
1a54e3fbb9
Switch PTHManager to using diagnostics for most errors.
...
Also, always give errors on a token-cache PTH failure.
llvm-svn: 86939
2009-11-12 02:53:48 +00:00
Daniel Dunbar
51637a9ba4
Simplify.
...
llvm-svn: 86938
2009-11-12 02:53:34 +00:00
Daniel Dunbar
1619831fde
clang-cc: Refactor ParseInputFollow to clearly split on the two primary cases,
...
when we are running an AST consumer and when we are just running the
preprocessor or parser alone.
llvm-svn: 86937
2009-11-12 02:53:27 +00:00
Daniel Dunbar
4806f2ea48
clang-cc: Factor ReadPCHFile out of ProcessInputFile.
...
llvm-svn: 86936
2009-11-12 02:53:20 +00:00
Daniel Dunbar
92641dca86
Simplify.
...
llvm-svn: 86935
2009-11-12 02:53:13 +00:00
Daniel Dunbar
7336edd8b2
clang-cc: Unify InitializeSourceManager calls.
...
llvm-svn: 86934
2009-11-12 02:53:06 +00:00
Daniel Dunbar
f7316732b8
clang-cc: Move non-Consumer action handling to common location, to expose the massive amount of redundancy we have introduced through blind copy-and-paste.
...
llvm-svn: 86922
2009-11-12 01:36:27 +00:00
Daniel Dunbar
f4408a29e1
Fix PCH/preprocess test to be more useful, and unbreak -E mode with implicit
...
PCH, which I broke.
llvm-svn: 86921
2009-11-12 01:36:20 +00:00
Daniel Dunbar
39b6e2a0fd
Tweak formatting.
...
llvm-svn: 86907
2009-11-12 00:24:28 +00:00
Daniel Dunbar
e6de40e747
Move AnalyzerOptions into CompilerInvocation.
...
llvm-svn: 86906
2009-11-12 00:24:10 +00:00
Daniel Dunbar
2856ae444b
Always initialize the header search object as part of InitializePreprocessor;
...
not doing this has little to no utility.
llvm-svn: 86883
2009-11-11 21:44:42 +00:00
Daniel Dunbar
0c6c930f05
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...
...
llvm-svn: 86882
2009-11-11 21:44:21 +00:00
Daniel Dunbar
55b781f85e
Sink AttachDependencyFileGen into CreatePreprocessor.
...
llvm-svn: 86881
2009-11-11 21:44:00 +00:00
Daniel Dunbar
89d1fdff65
Add DependencyOutputOptions to wrap -M... options, and propogate to
...
CompilerInvocation and clang-cc.
llvm-svn: 86880
2009-11-11 21:43:12 +00:00
Daniel Dunbar
f580187aed
Simplify.
...
llvm-svn: 86830
2009-11-11 10:22:48 +00:00
Daniel Dunbar
22bdabf05f
Add PreprocessorOutputOptions to CompilerInvocation, and move initialization to
...
clang-cc/Options.cpp
llvm-svn: 86828
2009-11-11 10:07:44 +00:00
Daniel Dunbar
531f6c662b
Add PreprocessorOutputOptions, for things like -dM, -C, -CC which control -E
...
mode.
llvm-svn: 86827
2009-11-11 10:07:22 +00:00
Daniel Dunbar
979586e755
Simplifiy target feature handling by coalescing all the logic into
...
InitializeCompileOptions.
llvm-svn: 86826
2009-11-11 09:38:56 +00:00
Daniel Dunbar
eced7e065f
Minor formatting tweaks.
...
llvm-svn: 86825
2009-11-11 09:38:42 +00:00
Daniel Dunbar
759cab9a54
clang-cc: Refactor some -fixit-at handling.
...
llvm-svn: 86824
2009-11-11 09:38:35 +00:00
Daniel Dunbar
d0c3bb0df2
Allow TextDiagnosticPrinter to have optional ownership of its output stream.
...
llvm-svn: 86823
2009-11-11 09:38:24 +00:00
Daniel Dunbar
d2cfa0111c
clang-cc: Move InitializeAnalyzerOptions into Options.cpp
...
llvm-svn: 86821
2009-11-11 08:13:55 +00:00
Daniel Dunbar
ef0147c0e9
clang-cc: Start coalescing "frontend" options.
...
llvm-svn: 86820
2009-11-11 08:13:47 +00:00
Daniel Dunbar
dcd40fb95f
clang-cc: Move InitializeDiagnosticOptions to Options.cpp
...
llvm-svn: 86819
2009-11-11 08:13:40 +00:00
Daniel Dunbar
f527a12e47
clang-cc: Move HeaderSearchOptions to Options.cpp
...
llvm-svn: 86818
2009-11-11 08:13:32 +00:00
Daniel Dunbar
b6bac22d02
Turn LoggingDiagnosticClient into a more general ChainedDiagnosticClient and
...
move to libFrontend.
llvm-svn: 86817
2009-11-11 08:13:24 +00:00
Daniel Dunbar
84dfbfde26
clang-cc: Move InitializeLangOptions to Options.cpp.
...
Also, inline InitializeLanguageStandard into InitializeLangOptions; this code
needs to be refactored but the current division doesn't make any sense.
llvm-svn: 86816
2009-11-11 07:26:12 +00:00
Daniel Dunbar
f0f6f0efb0
Inline some trivial functions.
...
llvm-svn: 86815
2009-11-11 07:26:02 +00:00
Daniel Dunbar
999215c8c8
clang-cc: Move InitializePreprocessorOptions to Options.cpp
...
llvm-svn: 86811
2009-11-11 06:10:03 +00:00
Daniel Dunbar
de142beafb
clang-cc: Simplify this code, now that predefines handling is uniform in the
...
PCH/-E and PCH/not--E cases.
llvm-svn: 86808
2009-11-11 05:33:31 +00:00
Daniel Dunbar
000c4ffd16
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.
llvm-svn: 86806
2009-11-11 05:29:04 +00:00
Daniel Dunbar
3618834da8
Recognize -fsyntax-only as a "consumer only" action.
...
llvm-svn: 86776
2009-11-11 00:54:56 +00:00
Daniel Dunbar
93097b3906
Add Diagnostic::Report method for reporting diagnostics without a location.
...
llvm-svn: 86760
2009-11-10 23:55:23 +00:00
Daniel Dunbar
de02f63945
PreprocessorOptions: Get rid of unnecessary 'isPTH' flag for include entries.
...
llvm-svn: 86757
2009-11-10 23:53:43 +00:00
Daniel Dunbar
47ea8628a5
Decouple more of clang-cc by moving ImplicitP[CT]H options into
...
PreprocessorOptions.
Global variables used as [in] [out] parameters considered harmful.
llvm-svn: 86728
2009-11-10 22:09:38 +00:00
Ted Kremenek
4a720a363c
Update CMake file.
...
llvm-svn: 86721
2009-11-10 21:38:41 +00:00
Dan Gohman
ad5ef3d70f
Use #include <stdio.h> when using fprintf and stderr.
...
llvm-svn: 86717
2009-11-10 21:21:27 +00:00
Daniel Dunbar
f89a32ac45
clang-cc: Start moving "pure" option handling to Options.cpp, to separate it
...
from the logic part of clang-cc, and to enforce limited scoping.
llvm-svn: 86711
2009-11-10 19:51:53 +00:00
Daniel Dunbar
d96cd43f13
clang-cc: Sink more options inside codegenopts namespace.
...
llvm-svn: 86710
2009-11-10 19:51:46 +00:00
Daniel Dunbar
a35a2cb56b
Change LangOpts initialization to directly test the code generation options,
...
instead of reproducing their logic.
llvm-svn: 86709
2009-11-10 19:51:33 +00:00
Daniel Dunbar
ef2919f1fa
Factor out parts of InitializeCompileOptions that depend on the LangOptions.
...
llvm-svn: 86696
2009-11-10 18:47:35 +00:00
Daniel Dunbar
be50f5ab9d
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.
llvm-svn: 86691
2009-11-10 17:50:53 +00:00
Daniel Dunbar
ede182ef05
clang-cc: Start sinking (CodeGen) options into namespaces to limit their scope.
...
llvm-svn: 86690
2009-11-10 17:50:42 +00:00
Daniel Dunbar
68ac06142b
Cleanup some clang-cc FIXMEs
...
llvm-svn: 86686
2009-11-10 16:23:44 +00:00
Daniel Dunbar
754c11ec48
Add CompileOptions to CompilerInvocation.
...
llvm-svn: 86685
2009-11-10 16:19:45 +00:00
Daniel Dunbar
a8b869e794
Simplify, following MemoryBuffer::getSTDIN API fix.
...
llvm-svn: 86633
2009-11-10 00:46:25 +00:00
Daniel Dunbar
190401566e
Remove some if-0'd code, we can resurrect this if we ever decide to support
...
continuing after invalid PCH loads.
llvm-svn: 86631
2009-11-10 00:46:12 +00:00
Daniel Dunbar
60198df262
Add PreprocessorOptions to CompilerInvocation.
...
llvm-svn: 86623
2009-11-09 23:12:31 +00:00
Daniel Dunbar
4df9aa2388
Privatize InitHeaderSearch, this functionality is only exposed via
...
ApplyHeaderSearchOptions now.
llvm-svn: 86617
2009-11-09 23:02:47 +00:00
Daniel Dunbar
e213db84cb
Move LangOptions, HeaderSearchOptions, and the target feature map into
...
CompilerInvocation.
llvm-svn: 86612
2009-11-09 22:46:17 +00:00
Daniel Dunbar
d673bfa6aa
Switch Target* to Target&.
...
llvm-svn: 86611
2009-11-09 22:46:09 +00:00
Daniel Dunbar
1de7855155
Change clang-cc to expect that all inputs have the same language (so we can only construct a single LangInfo). This matches how it is used in practice (since the compiler only it invokes it for one file at a time).
...
llvm-svn: 86609
2009-11-09 22:45:57 +00:00
Daniel Dunbar
06d4716297
(llvm up) Convert clang-cc.cpp:GetLanguage to StringSwitch.
...
llvm-svn: 86608
2009-11-09 22:45:47 +00:00
Daniel Dunbar
b2eae89108
Add CompilerInvocation object, to capture all the options one needs to invoke
...
the compiler, and start flood filling it into clang-cc.
llvm-svn: 86586
2009-11-09 20:55:08 +00:00
Daniel Dunbar
8ec8804de1
Switch clang-cc to use ApplyHeaderSearchOptions, and fix a thinko.
...
llvm-svn: 86341
2009-11-07 04:58:12 +00:00
Daniel Dunbar
ec87991c8f
Lift InitHeaderSearch::AddEnvVarPaths logic higher.
...
llvm-svn: 86337
2009-11-07 04:20:39 +00:00
Daniel Dunbar
00f8a397c6
Rename PreprocessorInitOptions to PreprocessorOptions for consistency, and fix
...
filenames.
Also, move InitializePreprocessor to Utils.h.
llvm-svn: 86335
2009-11-07 04:20:15 +00:00
Daniel Dunbar
b10ac0d708
Lift compiler builtin include path logic higher.
...
llvm-svn: 86334
2009-11-07 04:19:57 +00:00
Douglas Gregor
9eb7701dff
Various improvements to Clang's code-completion infrastructure:
...
- Introduce more code-completion string "chunk" kinds that describe
symbols, the actual text that the user is expected to type, etc.
- Make the generation of macro results optional, since it can be
slow
- Make code-completion accessible through the C API, marshalling the
code-completion results through a temporary file (ick) to maintain
process separation.
The last doesn't have tests yet.
llvm-svn: 86306
2009-11-07 00:00:49 +00:00
John Thompson
864bf7562f
Eliminate tabls
...
llvm-svn: 86183
2009-11-05 22:03:02 +00:00
John Thompson
ed4e2950bc
Adding -fshort-wchar option.
...
llvm-svn: 86167
2009-11-05 20:14:16 +00:00
Daniel Dunbar
0231895ce6
Replace DiagnosticClient::setLangOptions with {Begin,End}SourceFile, and clarify
...
invariants (diagnostics with source informations must occur between
{Begin,End}SourceFile).
llvm-svn: 86113
2009-11-05 02:42:12 +00:00
Daniel Dunbar
b5f2025b77
Convert CreateAnalysisConsumer and friends to just take a const Preprocessor&, and simplify.
...
llvm-svn: 86112
2009-11-05 02:41:58 +00:00
Daniel Dunbar
aef52f4c83
Remove clang-cc -html-diags option, this doesn't fit in well and we get plenty
...
of coverage of this from the analyzer.
If this bothers you, I can add it back in a mode where non-source diagnostics go
to stderr and only source diagnostics use -html-diags, but I don't think anyone
uses this.
llvm-svn: 86109
2009-11-05 02:11:37 +00:00
Daniel Dunbar
c00be15469
Simplify.
...
llvm-svn: 86104
2009-11-05 01:53:23 +00:00
Daniel Dunbar
b6362c13c9
CreatePreprocessor cannot fail
...
llvm-svn: 86103
2009-11-05 01:53:12 +00:00
Daniel Dunbar
d0ba0e6108
Kill PreprocessorFactory, which was both morally repugnant and totally unused.
...
llvm-svn: 86076
2009-11-04 23:56:25 +00:00
Daniel Dunbar
a5beced60e
Turn if chain into switch.
...
llvm-svn: 86071
2009-11-04 23:41:40 +00:00
Daniel Dunbar
181aaee165
InitializePreprocessor cannot fail.
...
llvm-svn: 86048
2009-11-04 21:13:15 +00:00
Daniel Dunbar
b27ec09a7e
Move -undef flag into PreprocessorInitOptions
...
llvm-svn: 86047
2009-11-04 21:13:02 +00:00
Daniel Dunbar
5ec950218a
Move -fcolor-diagnostics logic to driver.
...
llvm-svn: 86014
2009-11-04 06:24:57 +00:00
Daniel Dunbar
2c9784769a
Move logic for selection -fmessage-length= to driver.
...
llvm-svn: 86013
2009-11-04 06:24:47 +00:00
Daniel Dunbar
c2e6a4709e
Factor out a diagnostic options class.
...
llvm-svn: 86010
2009-11-04 06:24:30 +00:00
Tanya Lattner
f9d41df093
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.
...
llvm-svn: 85991
2009-11-04 01:18:09 +00:00
Chris Lattner
e9d7d78ab3
Implement support for the -undef command line option, patch by
...
Roman Divacky! PR5363
llvm-svn: 85932
2009-11-03 19:50:27 +00:00
Daniel Dunbar
f3355a61c4
Remove clang-cc code for handling -mmacosx-version-min and
...
-miphoneos-version-min.
llvm-svn: 85601
2009-10-30 18:12:31 +00:00
Daniel Dunbar
7ad807f248
Move some clang-cc errors to use diagnostics, and simplify.
...
llvm-svn: 85527
2009-10-29 21:05:18 +00:00
Daniel Dunbar
38b6279ce4
Reject -I- in driver instead of clang-cc.
...
llvm-svn: 85469
2009-10-29 01:53:44 +00:00
Daniel Dunbar
938eb27b25
Formatting fixes.
...
llvm-svn: 85468
2009-10-29 01:53:18 +00:00
Daniel Dunbar
431895f748
clang-cc: Allow building for x86_64 with -mmacosx-version-min=10.4.
...
llvm-svn: 85132
2009-10-26 17:52:49 +00:00
Rafael Espindola
b3549d74da
Rename -nostdclanginc to -nobuiltininc.
...
llvm-svn: 85116
2009-10-26 13:36:57 +00:00
Steve Naroff
505fb84ed9
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>).
llvm-svn: 84499
2009-10-19 14:34:22 +00:00
Daniel Dunbar
f997f1e896
Simplify (move guard to caller instead of callee).
...
llvm-svn: 84325
2009-10-17 09:04:56 +00:00
Mike Stump
904ad90bc8
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.
llvm-svn: 83594
2009-10-08 23:29:47 +00:00
Rafael Espindola
e7178953f9
Add a -nostdclanginc flag to clang-cc that prevents it from searching
...
its own binary-relative headers. Useful when using clang's preprocessor
with gcc.
llvm-svn: 83302
2009-10-05 13:12:17 +00:00
Douglas Gregor
63b3556c9c
Set GNUMode only for the "gnu" language standard options, from Ken Dyck!
...
llvm-svn: 83064
2009-09-29 14:42:43 +00:00
Anders Carlsson
d934010557
Add a -dump-record-layouts argument to clang-cc.
...
llvm-svn: 82703
2009-09-24 18:54:49 +00:00
Douglas Gregor
ea9b03e6e2
Replace the -code-completion-dump option with
...
-code-completion-at=filename:line:column
which performs code completion at the specified location by truncating
the file at that position and enabling code completion. This approach
makes it possible to run multiple tests from a single test file, and
gives a more natural command-line interface.
llvm-svn: 82571
2009-09-22 21:11:38 +00:00
Daniel Dunbar
1da62f5723
This FIXME is done.
...
llvm-svn: 82509
2009-09-22 02:17:27 +00:00
Fariborz Jahanian
71848a3ff1
Removed -fobjc-newgc-api option. clang now conforms to
...
gcc-style write-barrier api only.
llvm-svn: 82493
2009-09-21 23:03:37 +00:00
Daniel Dunbar
26e37a77c6
Switch ProcessASTInputFile to still use ParseAST.
...
- Currently this requires us to fake an input file.
- This allows Sema to be keep all the logic for how to pull decls out of the external AST source and how to handle things like tentative definitions.
llvm-svn: 82432
2009-09-21 03:03:56 +00:00
Daniel Dunbar
7cd285f0fe
Change ASTUnit to take the Diagnostic as an argument, the client should have control of this.
...
llvm-svn: 82430
2009-09-21 03:03:39 +00:00
Chris Lattner
78765c36de
switch command line 'parse' methods to use StringRef for efficiency, which
...
is also required for an llvm-side change.
llvm-svn: 82344
2009-09-20 00:39:15 +00:00
Douglas Gregor
2436e7116b
Initial implementation of a code-completion interface in Clang. In
...
essence, code completion is triggered by a magic "code completion"
token produced by the lexer [*], which the parser recognizes at
certain points in the grammar. The parser then calls into the Action
object with the appropriate CodeCompletionXXX action.
Sema implements the CodeCompletionXXX callbacks by performing minimal
translation, then forwarding them to a CodeCompletionConsumer
subclass, which uses the results of semantic analysis to provide
code-completion results. At present, only a single, "printing" code
completion consumer is available, for regression testing and
debugging. However, the design is meant to permit other
code-completion consumers.
This initial commit contains two code-completion actions: one for
member access, e.g., "x." or "p->", and one for
nested-name-specifiers, e.g., "std::". More code-completion actions
will follow, along with improved gathering of code-completion results
for the various contexts.
[*] In the current -code-completion-dump testing/debugging mode, the
file is truncated at the completion point and EOF is translated into
"code completion".
llvm-svn: 82166
2009-09-17 21:32:03 +00:00
Daniel Dunbar
e9fee8a361
Initial support for code generation from .ast files.
...
- Doesn't actually work yet because only module level asm's get correctly marked as externally visible in the PCH.
- Other things like 'clang-cc foo.ast -ast-dump' now work, as well.
llvm-svn: 82107
2009-09-17 00:48:13 +00:00
Daniel Dunbar
691b9337a6
clang-cc: Factor out code for creating one of the standard AST consumer actions.
...
llvm-svn: 82106
2009-09-17 00:48:00 +00:00
Daniel Dunbar
785d51c45b
Simplify.
...
llvm-svn: 82104
2009-09-17 00:47:46 +00:00
Daniel Dunbar
1188987e23
clang-cc: Remove -ObjC -ObjC++ handling from clang-cc.
...
llvm-svn: 82103
2009-09-17 00:47:27 +00:00
Fariborz Jahanian
a7fa6beb2e
Starting patch to generate more specific API for objc's
...
GC. Currently, new API will be generated under
clang-cc's -fobjc-newgc-api flag which will eventually
become the default. WIP.
llvm-svn: 82082
2009-09-16 21:37:16 +00:00
Mike Stump
a1874a91b6
Be sure to use the correct version instead of the wrong one.
...
llvm-svn: 81925
2009-09-15 21:49:22 +00:00