- Oct 29, 2011
-
-
Fariborz Jahanian authored
ownership qualifier cast which won't work. // rdar://10244607 llvm-svn: 143258
-
Argyrios Kyrtzidis authored
in which case the ownership is redundant. Thanks to John for the suggestion. llvm-svn: 143240
-
- Oct 28, 2011
-
-
Fariborz Jahanian authored
an rvalue retainable object type with life-time qualifier has no effect and wil be diagnosed as error. // rdar://10244607 llvm-svn: 143219
-
Benjamin Kramer authored
llvm-svn: 143192
-
Richard Smith authored
to catch some future implicit lvalue-to-rvalue casts of inappropriate kinds. llvm-svn: 143182
-
John McCall authored
a binary operator involving a dependently-typed overload set. llvm-svn: 143172
-
Richard Trieu authored
string is part of the function call, then there is no difference. If the format string is not, the warning will point to the call site and a note will point to where the format string is. Fix-it hints for strings are moved to the note if a note is emitted. This will prevent changes to format strings that may be used in multiple places. llvm-svn: 143168
-
Richard Smith authored
llvm-svn: 143166
-
Richard Smith authored
rvalue. An assertion to catch this is in ImpCastExprToType will follow, but vector operations currently trip over this (due to omitting the usual arithmetic conversions). Also add an assert to catch missing lvalue-to-rvalue conversions on the LHS of ->. llvm-svn: 143155
-
- Oct 27, 2011
-
-
Fariborz Jahanian authored
property refactoring. // rdar://10327068 llvm-svn: 143139
-
Douglas Gregor authored
AST file more lazy, so that we don't eagerly load that information for all known identifiers each time a new AST file is loaded. The eager reloading made some sense in the context of precompiled headers, since very few identifiers were defined before PCH load time. With modules, however, a huge amount of code can get parsed before we see an @import, so laziness becomes important here. The approach taken to make this information lazy is fairly simple: when we load a new AST file, we mark all of the existing identifiers as being out-of-date. Whenever we want to access information that may come from an AST (e.g., whether the identifier has a macro definition, or what top-level declarations have that name), we check the out-of-date bit and, if it's set, ask the AST reader to update the IdentifierInfo from the AST files. The update is a merge, and we now take care to merge declarations before/after imports with declarations from multiple imports. The results of this optimization are fairly dramatic. On a small application that brings in 14 non-trivial modules, this takes modules from being > 3x slower than a "perfect" PCH file down to 30% slower for a full rebuild. A partial rebuild (where the PCH file or modules can be re-used) is down to 7% slower. Making the PCH file just a little imperfect (e.g., adding two smallish modules used by a bunch of .m files that aren't in the PCH file) tips the scales in favor of the modules approach, with 24% faster partial rebuilds. This is just a first step; the lazy scheme could possibly be improved by adding versioning, so we don't search into modules we already searched. Moreover, we'll need similar lazy schemes for all of the other lookup data structures, such as DeclContexts. llvm-svn: 143100
-
Argyrios Kyrtzidis authored
llvm-svn: 143088
-
-
Argyrios Kyrtzidis authored
llvm-svn: 143084
-
Fariborz Jahanian authored
decl. in Darwin due to certain projects requirement. // rdar://10277579 llvm-svn: 143082
-
- Oct 26, 2011
-
-
Richard Smith authored
implicitly in LookupMemberExpr and explicitly in cases where template instantiation doesn't redo the lookup. llvm-svn: 143046
-
Eli Friedman authored
llvm-svn: 143021
-
Richard Smith authored
member expression. Refactoring to follow. llvm-svn: 143017
-
Richard Smith authored
instantiations too. llvm-svn: 143016
-
- Oct 25, 2011
-
-
John McCall authored
GCC compiler workaround. llvm-svn: 142931
-
NAKAMURA Takumi authored
r142914: "Introduce a placeholder type for "pseudo object"" r142915: "Pull the pseudo-object stuff into its own file." llvm-svn: 142921
-
John McCall authored
Tidy up some marginally related code just to annoy single-purpose-commit lovers. No functionality change. llvm-svn: 142915
-
John McCall authored
expressions: expressions which refer to a logical rather than a physical l-value, where the logical object is actually accessed via custom getter/setter code. A subsequent patch will generalize the AST for these so that arbitrary "implementing" sub-expressions can be provided. Right now the only client is ObjC properties, but this should be generalizable to similar language features, e.g. Managed C++'s __property methods. llvm-svn: 142914
-
Richard Smith authored
dependent ->, where the member being referred to is an anonymous struct or union. This path was missed by the fix in r142890. llvm-svn: 142910
-
Douglas Gregor authored
Microsoft __if_exists/__if_not_exists statement. Also note that we weren't traversing DeclarationNameInfo *at all* within the RecursiveASTVisitor, which would be rather fatal for variadic templates. llvm-svn: 142906
-
Douglas Gregor authored
statements. As noted in the documentation for the AST node, the semantics of __if_exists/__if_not_exists are somewhat different from the way Visual C++ implements them, because our parsed-template representation can't accommodate VC++ semantics without serious contortions. Hopefully this implementation is "good enough". llvm-svn: 142901
-
Richard Smith authored
it during template instantiation, for a known RHS decl. llvm-svn: 142890
-
Douglas Gregor authored
analysis to separate dependent names from non-dependent names. For dependent names, we'll behave differently from Visual C++: - For __if_exists/__if_not_exists at class scope, we'll just warn and then ignore them. - For __if_exists/__if_not_exists in statements, we'll treat the inner statement as a compound statement, which we only instantiate in templates where the dependent name (after instantiation) exists. This behavior is different from VC++, but it's as close as we can get without encroaching ridiculousness. The latter part (dependent statements) is not yet implemented. llvm-svn: 142864
-
Douglas Gregor authored
unknown specialization, treat this the same way as if the name were not found in the current instantiation. No actual functionality change, since apparently nothing depends on this. llvm-svn: 142862
-
- Oct 24, 2011
-
-
Fariborz Jahanian authored
llvm-svn: 142807
-
Ted Kremenek authored
Rename AnalysisContext to AnalysisDeclContext. Not only is this name more accurate, but it frees up the name AnalysisContext for other uses. llvm-svn: 142782
-
- Oct 23, 2011
-
-
Peter Collingbourne authored
llvm-svn: 142760
-
Peter Collingbourne authored
in-class member initialisers). llvm-svn: 142758
-
Peter Collingbourne authored
llvm-svn: 142757
-
Peter Collingbourne authored
llvm-svn: 142756
-
Peter Collingbourne authored
instead of silently discarding them. As a side effect, this improves diagnostics for constexpr class templates slightly. llvm-svn: 142755
-
Ted Kremenek authored
[analyzer] Remove LocationContext creation methods from AnalysisManager, and change clients to use AnalysisContext instead. WIP to remove/reduce ExprEngine's usage of AnalysisManager. llvm-svn: 142739
-
- Oct 22, 2011
-
-
Ted Kremenek authored
Only emit implicit constant conversion truncation warnings in reachable code. Apparently this is what GCC does, and some code depends on this. Fixes <rdar://problem/10321089>. llvm-svn: 142716
-
Fariborz Jahanian authored
llvm-svn: 142711
-
Fariborz Jahanian authored
None private methods if their implementation have attribute, they must exactly match those in their declarations. // rdar://10271563 llvm-svn: 142709
-