Chris Lattner
8962015386
split macro expansion support out of Preprocessor.cpp into PPMacroExpansion.cpp
...
Rename Directives.cpp -> PPDirectives.cpp since it implements part of the
Preprocessor class.
llvm-svn: 48078
2008-03-09 03:13:06 +00:00
Chris Lattner
1d4000ba50
rename HandleEndOfMacro -> HandleEndOfTokenLexer
...
llvm-svn: 48076
2008-03-09 03:04:16 +00:00
Chris Lattner
7ff66fb91e
split the MacroArgs class out of TokenLexer.cpp/h into
...
MacroArgs.cpp/h
llvm-svn: 48075
2008-03-09 02:55:12 +00:00
Chris Lattner
285c0c1150
rename some MacroExpander-related ivars to TokenLexer.
...
llvm-svn: 48073
2008-03-09 02:26:03 +00:00
Chris Lattner
5bb36002be
Rename MacroExpander.cpp/h -> TokenLexer.cpp/h
...
llvm-svn: 48072
2008-03-09 02:22:57 +00:00
Chris Lattner
95d72cdf0f
rename the MacroExpander class to TokenLexer. It handles both
...
token streams and macro lexing, so a more generic name is useful.
llvm-svn: 48071
2008-03-09 02:18:51 +00:00
Chris Lattner
d7daed1478
rename MacroTokens -> Tokens. When this is a token stream, there is no macro
...
involved.
llvm-svn: 48070
2008-03-09 02:07:49 +00:00
Chris Lattner
f64b352660
split preprocesor directive handling out of Preprocessor.cpp into Directives.cpp
...
llvm-svn: 48068
2008-03-09 01:54:53 +00:00
Chris Lattner
37e0587839
remove the source location arguments to various target query methods.
...
llvm-svn: 47954
2008-03-05 18:54:05 +00:00
Chris Lattner
855d024a83
Remove the first layer of support for "portability" warnings. This is
...
theoretically useful, but not useful in practice. It adds a bunch of
complexity, and not much value. It's best to nuke it. One big advantage
is that it means the target interfaces will soon lose their SLoc arguments
and target queries can never emit diagnostics anymore (yay). Removing this
also simplifies some of the core preprocessor which should make it slightly
faster.
Ted, I didn't simplify TripleProcessor, which can now have at most one
triple, and can probably just be removed. Please poke at it when you have
time.
llvm-svn: 47930
2008-03-05 01:18:20 +00:00
Chris Lattner
f5c619f98c
clarify comment, this is undefined behavior in any case, even if it only
...
bits VC++ right now.
llvm-svn: 47565
2008-02-25 21:38:21 +00:00
Lauro Ramos Venancio
4400a85ce8
Revert an incorrect part of my previuos patch.
...
llvm-svn: 47553
2008-02-25 19:08:51 +00:00
Lauro Ramos Venancio
8983891531
Fix PR2086.
...
llvm-svn: 47551
2008-02-25 19:03:15 +00:00
Chris Lattner
5329e7e5ed
Fix PR2090, a typo in digraph processing.
...
llvm-svn: 47540
2008-02-24 19:05:57 +00:00
Ted Kremenek
72be068ab3
Two more Windows-related fixes:
...
- More enum signeness bitfield fixes (MSVC treats enums as signed).
- Fixed in Lex/HeaderSearch.cpp an unsafe copy between two
HeaderSearch::PerFileInfo entries in a common vector. The copy involved two
calls to getFileInfo() within the assignment; these calls could have
side-effects that enlarged the internal vector, and with MSVC this would
invalidate one of the values in the assignment.
Patch by Argiris Kirtzidis!
llvm-svn: 47536
2008-02-24 03:55:14 +00:00
Chris Lattner
27055194b7
Fix CheckEndOfDirective to diagnose lines that contain macros that expand to
...
zero tokens. This fixes PR2045, thanks to Neil for finding another
incredibly subtle corner case :)
llvm-svn: 47203
2008-02-16 01:20:36 +00:00
Dan Gohman
63705ecefd
Adjust for APInt's isPositive being renamed to isNonNegative.
...
llvm-svn: 47091
2008-02-13 22:09:49 +00:00
Steve Naroff
5915777fca
Move Microsoft __declspec hack from the parser to the preprocessor. Since we have no plans to actually implement this construct, it is cleaner to limit the change to the preprocessor.
...
llvm-svn: 46973
2008-02-11 22:29:58 +00:00
Chris Lattner
00c5b28923
long is 32-bit is on win32.
...
llvm-svn: 46935
2008-02-10 21:12:45 +00:00
Steve Naroff
4e79d340bd
- Add support for fuzzy parsing line-oriented __asm's (yuck).
...
- Change handling of __w64 to a built-in macro.
llvm-svn: 46864
2008-02-07 23:24:32 +00:00
Steve Naroff
6936a08704
Minor cleanup from yesterday's -fms-extension commit. Move __int* MS keywords to predefined macros. This removes some of the MS-madness from Parser::ParseDeclarationSpecifiers().
...
llvm-svn: 46852
2008-02-07 15:26:07 +00:00
Chris Lattner
3b5054dda0
Implement support for the extremely atrocious MS /##/ extension,
...
which pastes together a comment. This is only enabled with
-fms-extensions of course.
llvm-svn: 46845
2008-02-07 06:03:59 +00:00
Steve Naroff
b2c80c7c7b
Implement -fms-extensions. This allows us to fuzzy parse non-standard MS constructs used in "windows.h".
...
llvm-svn: 46838
2008-02-07 03:50:06 +00:00
Chris Lattner
1226188e0a
Fix PR1969. stdin has no FileEntry.
...
llvm-svn: 46629
2008-02-01 05:34:02 +00:00
Chris Lattner
0c8a1edb8b
Fix a bug where we would incorrectly emit a "cannot paste" error
...
message when handling the GNU ", ## __VA_ARGS__" extension. While
I'm at it, flag uses of this as extensions.
llvm-svn: 46503
2008-01-29 07:54:23 +00:00
Chris Lattner
9046dc1080
Change the location we return for the EOF token to actually be on the last
...
line of the file, in the common case where a file ends with a newline.
llvm-svn: 46335
2008-01-25 00:00:30 +00:00
Chris Lattner
7238225c28
add support for -Wundef.
...
llvm-svn: 46274
2008-01-23 17:19:46 +00:00
Chris Lattner
97ff7763dc
Fix PR1936, a crash on malformed #if. Thanks to Neil for
...
noticing this!
llvm-svn: 46256
2008-01-22 19:34:51 +00:00
Ted Kremenek
a0a3e9bb07
Change uses of std::cerr/std::cout to llvm::Lcerr/llvm::cout, and remove
...
#include<iostream>.
Patch provided by Sam Bishop.
llvm-svn: 45962
2008-01-14 16:44:48 +00:00
Chris Lattner
a30be59fa2
Fix a nasty corner case that Neil noticed in PR1900, where we would
...
incorrectly apply the multiple include optimization to files with
guards like:
#if !defined(x) MACRO
where MACRO could expand to different things in different contexts.
Thanks Neil!
llvm-svn: 45716
2008-01-07 19:50:27 +00:00
Nate Begeman
f7c3ff6f80
Fix typo
...
llvm-svn: 45682
2008-01-07 04:01:26 +00:00
Chris Lattner
2b15cf705b
simplify the lexer a bit, pulling stuff out of the default case.
...
llvm-svn: 45540
2008-01-03 17:58:54 +00:00
Chris Lattner
5926c0ebfb
remove attribution from makefiles.
...
llvm-svn: 45412
2007-12-29 20:02:25 +00:00
Chris Lattner
5b12ab8c93
Don't attribute in file headers anymore. See llvmdev for the
...
discussion of this change.
llvm-svn: 45410
2007-12-29 19:59:25 +00:00
Ted Kremenek
71d643f8b1
Converted uses of scoped_ptr to OwningPtr.
...
llvm-svn: 45265
2007-12-20 19:47:16 +00:00
Ted Kremenek
230bd918b2
Interned MainFileID within SourceManager. Since SourceManager is referenced by
...
both Preprocessor and ASTContext, we no longer need to explicitly pass
MainFileID around in function calls that also pass either Preprocessor or
ASTContext. This resulted in some nice cleanups in the ASTConsumers and the
driver.
llvm-svn: 45228
2007-12-19 22:51:13 +00:00
Chris Lattner
c238331377
Add support for #pragma mark, which shouldn't warn about bogus tokens.
...
llvm-svn: 45212
2007-12-19 19:38:36 +00:00
Chris Lattner
619e18cce2
implement HeaderMap::LookupFile. I think headermaps are done now. All that is
...
left is this crazy thing called "testing".
llvm-svn: 45124
2007-12-17 21:38:04 +00:00
Chris Lattner
9f9a619a9f
implement enough helper functions to successfully dump out the
...
contents of the header map. Look ma, no assumptions about input data
here (aka, corrupt header maps can't crash the compiler - crazy thought).
llvm-svn: 45122
2007-12-17 21:06:11 +00:00
Chris Lattner
d39b8c0269
simplify some code, using new scoped_ptr support. Fix a bug in the
...
cross-endianness case, where we checked the version in the wrong endianness.
Amusingly, the GCC logic that detects mixed endianness hmaps and rejects
them is dead for this very reason.
llvm-svn: 45113
2007-12-17 18:59:44 +00:00
Chris Lattner
79764a6bee
Finish hooking up the scaffolding for headermaps. They can now do everything
...
except resolve lookups.
llvm-svn: 45111
2007-12-17 18:44:09 +00:00
Chris Lattner
4ffe46cbdf
Start reading the headermap header, drop the 'errorstr' argument to
...
the create method.
llvm-svn: 45109
2007-12-17 18:34:53 +00:00
Chris Lattner
8d720d083a
Sink getName into DirectoryLookup to simplify the client in clang.
...
llvm-svn: 45106
2007-12-17 17:57:27 +00:00
Chris Lattner
1587e6db01
add headermap.cpp
...
llvm-svn: 45095
2007-12-17 08:22:46 +00:00
Chris Lattner
44bd21b7c1
finish stubbing out support for HeaderMap. Now we just need an implementation!
...
llvm-svn: 45094
2007-12-17 08:17:39 +00:00
Chris Lattner
712e3873a0
refactor an better comment framework lookup code. This moves it from
...
HeaderSearch into DirectoryLookup, as a particular framework lookup is
specific to the directory we are currently querying.
llvm-svn: 45093
2007-12-17 08:13:48 +00:00
Chris Lattner
f62f75895f
as it turns out, frameworks and headermaps are orthogonal. Make this so in
...
the internal representation. This also fixes a bug where -I foo -F foo would
not search foo as both a normal and framework include dir.
llvm-svn: 45092
2007-12-17 07:52:39 +00:00
Chris Lattner
c4ba38ed1e
Step #1 in adding headermap support to clang.
...
llvm-svn: 45089
2007-12-17 06:36:45 +00:00
Chris Lattner
67671ed4b7
add a helper method.
...
llvm-svn: 44976
2007-12-13 01:59:49 +00:00
Ted Kremenek
1daa3cfbae
TargetInfo no longer includes a reference to SourceManager.
...
Moved all clients of Diagnostics to use FullSourceLoc instead of SourceLocation.
Added many utility methods to FullSourceLoc to provide shorthand for:
FullLoc.getManager().someMethod(FullLoc.getLocation());
instead we have:
FullLoc.someMethod();
Modified TextDiagnostics (and related classes) to use this short-hand.
llvm-svn: 44957
2007-12-12 22:39:36 +00:00