| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 76856
|
|
|
|
|
|
| |
contain a single element and either a single i8 element or an array of i8s, there's no reason to use a packed struct.
llvm-svn: 76854
|
|
|
|
|
|
|
|
| |
--- Reverse-merging r76831 into '.':
U include/clang/Analysis/PathSensitive/GRExprEngine.h
U lib/Analysis/GRExprEngine.cpp
llvm-svn: 76851
|
|
|
|
| |
llvm-svn: 76847
|
|
|
|
| |
llvm-svn: 76846
|
|
|
|
|
|
| |
layout code. (Yay, no more packed structs unless absolutely necessary). We currently don't use the layouts being built but that will change when the new code is mature enough :)
llvm-svn: 76845
|
|
|
|
|
|
|
| |
Technically we could still do a bit more to avoid deferred generation of statics
which we know are used, but I seriously doubt this is important.
llvm-svn: 76844
|
|
|
|
|
|
| |
counter.
llvm-svn: 76833
|
|
|
|
| |
llvm-svn: 76832
|
|
|
|
| |
llvm-svn: 76831
|
|
|
|
|
|
|
|
| |
- Move Sema::ObjCQualifiedIdTypesAreCompatible(), Sema::QualifiedIdConformsQualifiedId(), and a couple helper functions to ASTContext.
- Change ASTContext::canAssignObjCInterfaces() to use ASTContext:: ObjCQualifiedIdTypesAreCompatible().
- Tweak several test cases to accommodate the new/improved type checking.
llvm-svn: 76830
|
|
|
|
|
|
|
| |
CXXBaseOrMemberInitializer AST node. Needed by
its clients to do the initialization.
llvm-svn: 76826
|
|
|
|
|
|
| |
filesystems.
llvm-svn: 76824
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
value. This is on by default, and controlled by -Wreturn-type (-Wmost
-Wall). I believe there should be very few false positives, though
the most interesting case would be:
int() { bar(); }
when bar does:
bar() { while (1) ; }
Here, we assume functions return, unless they are marked with the
noreturn attribute. I can envision a fixit note for functions that
never return normally that don't have a noreturn attribute to add a
noreturn attribute.
If anyone spots other false positives, let me know!
llvm-svn: 76821
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
templates, e.g.,
template<typename T>
struct Outer {
struct Inner;
};
template<typename T>
struct Outer<T>::Inner {
// ...
};
Implementing this feature required some extensions to ActOnTag, which
now takes a set of template parameter lists, and is the precursor to
removing the ActOnClassTemplate function from the parser Action
interface. The reason for this approach is simple: the parser cannot
tell the difference between a class template definition and the
definition of a member of a class template; both have template
parameter lists, and semantic analysis determines what that template
parameter list means.
There is still some cleanup to do with ActOnTag and
ActOnClassTemplate. This commit provides the basic functionality we
need, however.
llvm-svn: 76820
|
|
|
|
| |
llvm-svn: 76816
|
|
|
|
|
|
|
|
| |
ASTContext.
Now when creating a Preprocessor we can pass it a temporary LangOptions object instead of having to remember to keep it around.
llvm-svn: 76815
|
|
|
|
| |
llvm-svn: 76814
|
|
|
|
| |
llvm-svn: 76813
|
|
|
|
|
|
|
|
|
|
|
|
| |
Educate GRExprEngine::VisitGraph() about 'PreStmt'.
Mark the constructor of 'PostStmt' to be explicit, preventing implicit
conversions and the selection of the wrong 'generateNode' method in
GRStmtNodeBuilder.
Constify a bunch of arguments, which falls out of the changes to ProgramPoint.
llvm-svn: 76809
|
|
|
|
| |
llvm-svn: 76807
|
|
|
|
|
|
| |
the order of evaluation of their arguments to be correct.
llvm-svn: 76804
|
|
|
|
| |
llvm-svn: 76800
|
|
|
|
| |
llvm-svn: 76798
|
|
|
|
|
|
|
|
|
| |
'Checker' interface. An updated test case illustrates that after calling a
function with the 'nonnull' attribute we now register the fact that the passed
pointer must be non-null. This retention of information was not possible with
the previously used GRSimpleAPICheck interface.
llvm-svn: 76797
|
|
|
|
|
|
|
|
| |
definitions.
I'm not very familiar with this code, so please review.
llvm-svn: 76796
|
|
|
|
| |
llvm-svn: 76795
|
|
|
|
|
|
| |
Add a 'previsit' stage (that dispatches to registered Checkers) when evaluating the effects of CallExprs.
llvm-svn: 76794
|
|
|
|
|
|
|
|
|
| |
interface to plug in domain-specific checker logic than the current
GRSimpleAPICheck interface. The new 'Checker' interface can actually generate
new nodes, allowing it to modify the state and refine the analysis (which
GRSimpleAPIChecks could not).
llvm-svn: 76793
|
|
|
|
| |
llvm-svn: 76792
|
|
|
|
|
|
| |
preconditions (in GRExprEngine) before the statement itself is evaluated.
llvm-svn: 76791
|
|
|
|
| |
llvm-svn: 76790
|
|
|
|
|
|
|
|
| |
real. It turns out that we need to actually move all of the qualifiers
up to the array type itself, then recanonicalize the deduced template
argument type.
llvm-svn: 76788
|
|
|
|
| |
llvm-svn: 76784
|
|
|
|
| |
llvm-svn: 76783
|
|
|
|
| |
llvm-svn: 76779
|
|
|
|
| |
llvm-svn: 76777
|
|
|
|
|
|
| |
ctor's initialization of bases and fields.
llvm-svn: 76776
|
|
|
|
| |
llvm-svn: 76774
|
|
|
|
|
|
|
|
|
|
| |
const T
can be matched with, e.g.,
volatile int [5]
llvm-svn: 76773
|
|
|
|
| |
llvm-svn: 76772
|
|
|
|
| |
llvm-svn: 76771
|
|
|
|
|
|
| |
This requires llvm rev. 76769 or higher.
llvm-svn: 76770
|
|
|
|
|
|
| |
[class.union]p1", from John McCall!
llvm-svn: 76766
|
|
|
|
|
|
| |
BugReporter API. No real functionality change.
llvm-svn: 76760
|
|
|
|
|
|
| |
via ASTContext.
llvm-svn: 76758
|
|
|
|
|
|
|
| |
data members of class templates. We don't instantiate the definitions yet,
however.
llvm-svn: 76756
|
|
|
|
|
|
|
|
| |
the ObjC type system rewrite).
It's unfortunate that the mangling includes the low-level structs. Nevertheless, we need this for binary compatibility with GCC.
llvm-svn: 76755
|
|
|
|
|
|
| |
operations.
llvm-svn: 76753
|
|
|
|
|
|
| |
the wrong function. :-)
llvm-svn: 76752
|