Chris Lattner
2a904d0aba
Add assertions for out-of-fileid error case
...
llvm-svn: 39028
2006-10-22 06:33:42 +00:00
Chris Lattner
0b9bdd9a74
Use read to open small files so we don't run out of file descriptors as easily.
...
llvm-svn: 39027
2006-10-20 06:53:51 +00:00
Chris Lattner
2194ddc83d
Add new TargetInfo hooks for getting the set of target-specific #defines.
...
llvm-svn: 38979
2006-10-14 18:32:26 +00:00
Chris Lattner
1e27fe165c
Add new TargetInfo class to clang.
...
llvm-svn: 38971
2006-10-14 07:06:20 +00:00
Chris Lattner
051df7bfc4
Make this work with llvm cvs
...
llvm-svn: 38952
2006-08-27 07:12:21 +00:00
Chris Lattner
7fa8c889e2
Add a single-entry cache for macro instantation locations. This significantly
...
reduces the number of FileID's made and tracked.
llvm-svn: 38752
2006-07-20 06:48:52 +00:00
Chris Lattner
81500bc3ae
cleanups, add some code for instrumenting stat
...
llvm-svn: 38728
2006-07-19 03:40:07 +00:00
Chris Lattner
351050bcf5
Add a check that the physloc for a macro instantiation is not another macro.
...
llvm-svn: 38722
2006-07-16 18:05:08 +00:00
Chris Lattner
ae41157ee5
Implement support for arbitrarily mapping non-error diagnostics to be either
...
ignored, warned about, or error'd. Use this to implement the -Wunused_macros
command line option.
llvm-svn: 38676
2006-07-05 00:55:08 +00:00
Chris Lattner
d3a15f7f4e
Add a fast-path in getSpelling for identifiers.
...
llvm-svn: 38672
2006-07-04 23:01:03 +00:00
Chris Lattner
d5da3ea58d
This matters for -E.
...
llvm-svn: 38664
2006-07-04 21:11:41 +00:00
Chris Lattner
040a4ab71e
Compile without rtti or exceptions.
...
llvm-svn: 38629
2006-07-03 05:01:42 +00:00
Chris Lattner
a85a9d2db3
Tolerate conditions where there is no line #
...
llvm-svn: 38604
2006-07-02 20:07:52 +00:00
Chris Lattner
4c37a8c353
Eliminate SourceManager::createFileIDForMacroExp, inlining it into its single use.
...
llvm-svn: 38599
2006-06-30 06:15:08 +00:00
Chris Lattner
7d6a4f6746
Expose a useful helper method.
...
llvm-svn: 38596
2006-06-30 06:10:08 +00:00
Chris Lattner
2dffd2b445
Factor logical line lookup better.
...
llvm-svn: 38594
2006-06-29 16:44:08 +00:00
Chris Lattner
dc9f9bf80e
Due to generated tokens expanded by macros, there can be multiple MacroExpansion fileid's, loop over them until we get to something real.
...
llvm-svn: 38590
2006-06-29 06:33:42 +00:00
Chris Lattner
ec43eaf07a
Add a new SourceBuffer::getNewMemBuffer method.
...
llvm-svn: 38587
2006-06-28 06:35:31 +00:00
Chris Lattner
f6fd68add5
Fix Preprocessor/macro_expandloc2.c
...
llvm-svn: 38579
2006-06-26 01:48:23 +00:00
Chris Lattner
685730f964
To not treat macro invocation locations as part of the include stack
...
when reporting a diagnostic.
llvm-svn: 38577
2006-06-26 01:36:22 +00:00
Chris Lattner
269c232e67
implement #pragma GCC dependency
...
llvm-svn: 38574
2006-06-25 06:23:00 +00:00
Chris Lattner
9a13bde643
Implement a new SourceManager::getSourceName method
...
llvm-svn: 38560
2006-06-21 04:57:09 +00:00
Chris Lattner
bb893c3d67
Update SourceManager::getLineNumber to return the correct line # for macro
...
instantiations.
llvm-svn: 38558
2006-06-21 03:27:29 +00:00
Chris Lattner
30709b038d
Implement a new type of FileID: FileIDInfo::MacroExpansion. For tokens that
...
came from a macro expansion, this allows us to keep track of both where the
character data came from and where the logical position of the token is (at
the expansion site). This implements Preprocessor/indent_macro.c, and
reduces the number of cpp iostream -E diffs vs GCC from 2589 to 2297.
llvm-svn: 38557
2006-06-21 03:01:55 +00:00
Chris Lattner
5f4b1ff9fd
Modify SourceManager to make way for future macro locations and #line support
...
no functionality change yet
llvm-svn: 38556
2006-06-20 05:02:40 +00:00
Chris Lattner
d01e291332
Make a fundamental change to the way we represent the location of LexerToken's.
...
Now, instead of keeping a pointer to the start of the token in memory, we keep the
start of the token as a SourceLocation node. This means that each LexerToken knows
the full include stack it was created with, and means that the LexerToken isn't
reliant on a "CurLexer" member to be around (lexer tokens would previously go out of
scope when their lexers were deallocated).
This simplifies several things, and forces good cleanup elsewhere. Now the
Preprocessor is the one that knows how to dump tokens/macros and is the one that
knows how to get the spelling of a token (it has all the context).
llvm-svn: 38551
2006-06-18 16:22:51 +00:00
Chris Lattner
cb28334ea4
Remove manual conditional error handling code.
...
llvm-svn: 38540
2006-06-18 06:48:37 +00:00
Chris Lattner
22eb972f38
Initial checkin of c-language parser
...
llvm-svn: 38539
2006-06-18 05:43:12 +00:00