- Nov 11, 2009
-
-
Daniel Dunbar authored
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
-
Daniel Dunbar authored
llvm-svn: 86805
-
Daniel Dunbar authored
tons of std::string trashing. I plan to move this and other fun string munging utilities to a StringRefExtras.h at some point if no one beats me to it. On a synthetic benchmark on x86_64, llvm-gcc actually generates code thats 10% faster using the StringRef version. gcc miscompiles the synthetic benchmark, which I'm crossing my fingers and hoping won't happen here. clang compiles the sythetic benchmark correctly (wootness), but the StringRef version is slower. Silly clang. llvm-svn: 86799
-
Ted Kremenek authored
the old builder API. This percolated a bunch of changes up to the Checker class (where CheckLocation has been renamed VisitLocation) and GRExprEngine. ProgramPoint now has the notion of a "LocationCheck" point (with PreLoad and PreStore respectively), and a bunch of the old ProgramPoints that are no longer used have been removed. llvm-svn: 86798
-
John McCall authored
anonymous members. Partial fix for PR 5390. llvm-svn: 86796
-
Mike Stump authored
interface. WIP. llvm-svn: 86793
-
Mike Stump authored
llvm-svn: 86792
-
John McCall authored
if (self = [super init]) Recognize it and only warn if -Wparentheses is explicitly enabled. llvm-svn: 86790
-
Fariborz Jahanian authored
objects. llvm-svn: 86778
-
Douglas Gregor authored
parameters. Rather than storing them as either declarations (for the non-dependent case) or expressions (for the dependent case), we now (always) store them as TemplateNames. The primary change here is to add a new kind of TemplateArgument, which stores a TemplateName. However, making that change ripples to every switch on a TemplateArgument's kind, also affecting TemplateArgumentLocInfo/TemplateArgumentLoc, default template arguments for template template parameters, type-checking of template template arguments, etc. This change is light on testing. It should fix several pre-existing problems with template template parameters, such as: - the inability to use dependent template names as template template arguments - template template parameter default arguments cannot be instantiation However, there are enough pieces missing that more implementation is required before we can adequately test template template parameters. llvm-svn: 86777
-
Daniel Dunbar authored
llvm-svn: 86775
-
Daniel Dunbar authored
llvm-svn: 86774
-
Mike Stump authored
llvm-svn: 86772
-
John McCall authored
llvm-svn: 86764
-
Daniel Dunbar authored
llvm-svn: 86760
-
Daniel Dunbar authored
llvm-svn: 86757
-
Fariborz Jahanian authored
llvm-svn: 86755
-
Devang Patel authored
llvm-svn: 86750
-
- Nov 10, 2009
-
-
Ted Kremenek authored
llvm-svn: 86746
-
Eli Friedman authored
llvm-svn: 86745
-
Eli Friedman authored
necessary. llvm-svn: 86741
-
Eli Friedman authored
generated PHI node for the null check of a new operator. llvm-svn: 86738
-
Ted Kremenek authored
Make -Wsemicolon-before-method-body opt-in (and part of -Wextra). Addresses <rdar://problem/7381735>. llvm-svn: 86731
-
Benjamin Kramer authored
llvm-svn: 86719
-
Douglas Gregor authored
handling template template parameters properly. This refactoring: - Parses template template arguments as id-expressions, representing the result of the parse as a template name (Action::TemplateTy) rather than as an expression (lame!). - Represents all parsed template arguments via a new parser-specific type, ParsedTemplateArgument, which stores the kind of template argument (type, non-type, template) along with all of the source information about the template argument. This replaces an ad hoc set of 3 vectors (one for a void*, which was either a type or an expression; one for a bit telling whether the first was a type or an expression; and one for a single source location pointing at the template argument). - Moves TemplateIdAnnotation into the new Parse/Template.h. It never belonged in the Basic library anyway. llvm-svn: 86708
-
Fariborz Jahanian authored
(Ted's feedback). llvm-svn: 86702
-
Fariborz Jahanian authored
global array of objects. llvm-svn: 86701
-
Mike Stump authored
llvm-svn: 86699
-
Daniel Dunbar authored
- 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
-
John McCall authored
although in this case we probably just run a risk of duplicating work; I can't think of how this could cause a bug. llvm-svn: 86680
-
John McCall authored
using directives, and fix a bug thereby exposed: since we're playing tricks with pointers, we need to make certain we're always using the same pointers for things. Also tweak an existing error message. llvm-svn: 86679
-
Zhongxing Xu authored
llvm-svn: 86677
-
Zhongxing Xu authored
This is reasonable because people know what they are doing when they intentionally dereference the pointer. So now we only emit warning when a pointer variable is use literally. llvm-svn: 86673
-
Mike Stump authored
being generated. Add the most derived vtable pointer to the VTT. llvm-svn: 86671
-
John McCall authored
This is a pretty minimal test case; I'll make a better one later. llvm-svn: 86669
-
Anders Carlsson authored
When trying to assign a regular string literal to an Objective-C 'id' type or a pointer to an NSString, emit a code insertion hint that turns it into an Objective-C string. For example: @class NSString; @interface Test + (void)test:(NSString *)string; @end void g(NSString *a); void f() { NSString *a = "Foo"; g("Foo"); [Test test:"Foo"]; } will produce t.m:10:17: warning: incompatible pointer types initializing 'char [4]', expected 'NSString *' NSString *a = "Foo"; ^~~~~ @ t.m:11:5: warning: incompatible pointer types passing 'char [4]', expected 'NSString *' g("Foo"); ^~~~~ @ t.m:12:14: warning: incompatible pointer types sending 'char [4]', expected 'NSString *' [Test test:"Foo"]; ^~~~~ @ 3 diagnostics generated. llvm-svn: 86665
-
Zhongxing Xu authored
llvm-svn: 86663
-
Zhongxing Xu authored
llvm-svn: 86662
-
Anders Carlsson authored
llvm-svn: 86661
-
Zhongxing Xu authored
the argument is not an expression. llvm-svn: 86660
-