- Jul 11, 2012
-
-
Axel Naumann authored
llvm-svn: 160041
-
Rafael Espindola authored
instantiation depends on the template, its arguments and parameters, but not where it is instantiated. llvm-svn: 160034
-
Eric Christopher authored
there's something going on there. Remove the unconditional line entry and only add one if we're emitting cleanups (any other statements would be handled normally). Fixes rdar://9199234 llvm-svn: 160033
-
Jordan Rose authored
This is probably not so useful yet because it is not path-sensitive, though it does try to show inlining with indentation. This also adds a dump() method to CallEvent, which should be useful for debugging. llvm-svn: 160030
-
Jordan Rose authored
C++ method calls and C function calls both appear as CallExprs in the AST. This was causing crashes for an object that had a 'free' method. <rdar://problem/11822244> llvm-svn: 160029
-
Richard Smith authored
value-initialization for an array of class type with a trivial default constructor. llvm-svn: 160024
-
Jordan Rose authored
Also contains a number of tweaks to inlining that are necessary for constructors and destructors. (I have this enabled on a private branch, but it is very much unstable.) llvm-svn: 160023
-
Jordan Rose authored
In order to accomplish this, we now build the callee's stack frame as part of the CallEnter node, rather than the subsequent BlockEdge node. This should not have any effect on perceived behavior or diagnostics. This makes it safe to re-enable inlining of member overloaded operators. llvm-svn: 160022
-
Jordan Rose authored
These ProgramPoints are used in inlining calls, and not all calls have associated statements anymore. llvm-svn: 160021
-
Jordan Rose authored
While this work is still fairly tentative (destructors are still left out of the CFG by default), we now handle destructors in the same way as any other calls, instead of just automatically trying to inline them. llvm-svn: 160020
-
Jordan Rose authored
These are currently unused, but are intended to be used in lieu of PreStmt and PostStmt when the call is implicit (e.g. an automatic object destructor). This also modifies the Data1 field of ProgramPoints to allow storing any pointer-sized value, as opposed to only aligned pointers. This is necessary to store SourceLocations. There is currently no BugReporter support for these; they should be skipped over in any diagnostic output. This commit also tags checkers that currently rely on function calls only occurring at StmtPoints. llvm-svn: 160019
-
- Jul 10, 2012
-
-
DeLesley Hutchins authored
llvm-svn: 160018
-
Chad Rosier authored
llvm-svn: 160017
-
Daniel Jasper authored
Reviewers: klimek Differential Revision: http://ec2-50-18-127-156.us-west-1.compute.amazonaws.com/D2 llvm-svn: 160013
-
Arnaud A. de Grandmaison authored
Adds support for auto-detection of compilation databases, looking in a directory and all its parents. llvm-svn: 159998
-
Axel Naumann authored
Implement UniqueFileContainer::erase(), camelCase, add comment on future optimizations of the cache versus de-optimizations of invalidations. llvm-svn: 159997
-
Anna Zaks authored
PR13319 Reported by Jozsef Mihalicza. llvm-svn: 159996
-
Axel Naumann authored
The consumer might see multiple input files (e.g. for cling) and since r159977 the count is maintained across input files. llvm-svn: 159995
-
Manuel Klimek authored
from a source file and changes clang-check to make use of this. This makes clang-check just work on in-tree builds, and allows easy setup via a symlink per source directory to make clang-check work without any extra configuration. llvm-svn: 159990
-
Jordan Rose authored
void f(); // expected-note 0+ {{previous declaration is here}} void g(); // expected-note 0-1 {{previous declaration is here}} The old "+" syntax is still an alias for "1+", and single numbers still work. Patch by Andy Gibbs! llvm-svn: 159979
-
Jordan Rose authored
// expected-warning@10 {{some text}} The line number may be absolute (as above), or relative to the current line by prefixing the number with either '+' or '-'. Patch by Andy Gibbs! llvm-svn: 159978
-
Jordan Rose authored
Patch by Andy Gibbs! llvm-svn: 159977
-
Richard Trieu authored
back to regular type printing. llvm-svn: 159976
-
Tanya Lattner authored
llvm-svn: 159965
-
- Jul 09, 2012
-
-
Dmitri Gribenko authored
llvm-svn: 159963
-
Abramo Bagnara authored
llvm-svn: 159961
-
Fariborz Jahanian authored
and similar other keywords. // rdar://10723084 llvm-svn: 159956
-
Matt Beaumont-Gay authored
llvm-svn: 159954
-
Chad Rosier authored
llvm-svn: 159942
-
Jordan Rose authored
Previously it was possible to get an infinite-loop-on-invalid with a namespace decl within @interface. Since 'namespace' is normally a safe place to retry top-level parsing, we just didn't consume the token. This adds a flag that tracks whether we have temporarily left Objective-C scope to parse a C-like declaration, and uses that to better recover from parse problems by stopping at possible method declarations and at @end. To fix the original problem, we do /not/ stop at 'namespace' when in an Objective-C @interface or @protocol context (but still do in @implementation). llvm-svn: 159941
-
Jordan Rose authored
This was a regression introduced during the CallEvent changes; a call to FunctionDecl::hasBody was also being used to replace the decl found by lookup with the actual definition. To keep from making this mistake again (particularly if/when we start inlining Objective-C methods), this commit adds a "getDefinition()" method to CallEvent, which should do the right thing under any circumstances. llvm-svn: 159940
-
Jordan Rose authored
Chris pointed out that while the comparison is certainly problematic and does not have well-defined behavior, it isn't any worse than some of the other abuses that we merely warn about and doesn't need to make the compilation fail. Revert the release notes change (r159766) now that this is just a new warning. llvm-svn: 159939
-
NAKAMURA Takumi authored
[CMake] Get rid of unconditional dependency to ClangDiagnosticCommon. Only clangBasic and clangASTMatchers need it. llvm-svn: 159931
-
Alexander Kornienko authored
llvm-svn: 159925
-
Richard Smith authored
* When substituting a reference to a non-type template parameter pack where the corresponding argument is a pack expansion, transform into an expression which contains an unexpanded parameter pack rather than into an expression which contains a pack expansion. This causes the SubstNonTypeTemplateParmExpr to be inside the PackExpansionExpr, rather than outside, so the expression still looks like a pack expansion and can be deduced. * Teach MarkUsedTemplateParameters that we can deduce a reference to a template parameter if it's wrapped in a SubstNonTypeTemplateParmExpr (such nodes are added during alias template substitution). llvm-svn: 159922
-
- Jul 08, 2012
-
-
Simon Atanasyan authored
MIPS: Range check __builtin_mips_wrdsp / __builtin_mips_rddsp arguments against the upper/lower values. llvm-svn: 159911
-
Richard Smith authored
expression, skip over any SubstNonTypeTemplateParmExprs which alias templates may have inserted before checking for a DeclRefExpr referring to a non-type template parameter declaration. llvm-svn: 159909
-
Richard Smith authored
llvm-svn: 159908
-
Richard Smith authored
-ftemplate-depth limit. There are various ways to get an infinite (or merely huge) stack of substitutions with no intervening instantiations. This is also consistent with gcc's behavior. llvm-svn: 159907
-
NAKAMURA Takumi authored
ASTMatchers/CMakeLists.txt: Add dependencies to generated headers, or "make clean; make ASTMatchers" would fail. llvm-svn: 159906
-