| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
ActOnClassMessage/ActOnInstanceMessage.
llvm-svn: 64560
|
| |
|
|
| |
llvm-svn: 64559
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ConstraintManager:
- constify getSymVal()
BasicConstraintManager:
- Pull out logic that would be common to ConstraintManagers of a similar nature
and put them in a parent class called 'SimpleConstraintManager'.
RangeConstraintManager:
- Added a new prototype ConstraintManager to track ranges of variables! This
ConstraintManager keeps tracks of ranges of concrete integers that a symbolic
integer may have.
AnalysisConsumer:
- Add driver option to use RangeConstraintManager with GRExprEngine-based
analyses.
llvm-svn: 64558
|
| |
|
|
| |
llvm-svn: 64557
|
| |
|
|
| |
llvm-svn: 64556
|
| |
|
|
| |
llvm-svn: 64553
|
| |
|
|
| |
llvm-svn: 64549
|
| |
|
|
| |
llvm-svn: 64548
|
| |
|
|
|
|
| |
implications.
llvm-svn: 64547
|
| |
|
|
|
|
|
| |
We don't have "zero cost" exceptions for ObjC yet, so there is no codegen
support required.
llvm-svn: 64546
|
| |
|
|
| |
llvm-svn: 64545
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
1) implement parser and sema support for reading and verifying attribute(warnunusedresult).
2) rename hasLocalSideEffect to isUnusedResultAWarning, inverting the sense
of its result.
3) extend isUnusedResultAWarning to directly return the loc and range
info that should be reported to the user. Make it substantially more
precise in some cases than what was previously reported.
4) teach isUnusedResultAWarning about CallExpr to decls that are
pure/const/warnunusedresult, fixing a fixme.
5) change warn_attribute_wrong_decl_type to not pass in english strings, instead,
pass in integers and use %select.
llvm-svn: 64543
|
| |
|
|
| |
llvm-svn: 64542
|
| |
|
|
| |
llvm-svn: 64541
|
| |
|
|
|
|
| |
ignore the malloc attribute however.
llvm-svn: 64538
|
| |
|
|
| |
llvm-svn: 64537
|
| |
|
|
| |
llvm-svn: 64536
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
symbols from an SVal.
- Fixed a bug in EnvironmentManager::RemoveDeadBindings() where it did not mark
live all the symbols reachable from a live block-level expression.
- Fixed a bug in the retain/release checker where it did not stop tracking
symbols that 'escaped' via compound literals being assigned to something the
BasicStoreManager didn't reason about.
llvm-svn: 64534
|
| |
|
|
|
|
| |
ASTContext types.
llvm-svn: 64533
|
| |
|
|
|
|
|
| |
important for both keeping the generated LLVM simple and for ensuring
that integer types are passed/promoted correctly.
llvm-svn: 64529
|
| |
|
|
| |
llvm-svn: 64527
|
| |
|
|
|
|
|
|
| |
we can define builtins such as fprintf, vfprintf, and
__builtin___fprintf_chk. Give a nice error message when we need to
implicitly declare a function like fprintf.
llvm-svn: 64526
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Added a new 'node builder' class called GRStmtNodeBuilderRef (name may
change). This is essentially a smart reference to a GRStmtNodeBuilder object
that keeps track of the current context (predecessor node, GRExprEngine
object, etc.) The idea is to gradually simplify the interface between
GRExprEngine and GRTransferFuncs using this new builder (i.e., passing 1
argument instead of 5). It also handles some of the "auto-transition" for node
creation, simplifying some of the logic in GRExprEngine itself.
- Used GRStmtBuilderRef to replace GRTransferFuncs::EvalStore with
GRTransferFuncs::EvalBind. The new EvalBind method will be used at any
arbitrary places where a binding between a location and value takes place.
Moreover, GRTransferFuncs no longer has the responsibility to request
StoreManager to do the binding; this is now in GRExprEngine::EvalBind. All
GRTransferFuncs::EvalBind does is checker-specific logic (which can be a
no-op).
llvm-svn: 64525
|
| |
|
|
| |
llvm-svn: 64522
|
| |
|
|
| |
llvm-svn: 64519
|
| |
|
|
|
|
| |
functions aren't created in C++
llvm-svn: 64513
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
printf-like functions, both builtin functions and those in the
C library. The function-call checker now queries this attribute do
determine if we have a printf-like function, rather than scanning
through the list of "known functions IDs". However, there are 5
functions they are not yet "builtins", so the function-call checker
handles them specifically still:
- fprintf and vfprintf: the builtins mechanism cannot (yet)
express FILE* arguments, so these can't be encoded.
- NSLog: the builtins mechanism cannot (yet) express NSString*
arguments, so this (and NSLogv) can't be encoded.
- asprintf and vasprintf: these aren't part of the C99 standard
library, so we really shouldn't be defining them as builtins in
the general case (and we don't seem to have the machinery to make
them builtins only on certain targets and depending on whether
extensions are enabled).
llvm-svn: 64512
|
| |
|
|
| |
llvm-svn: 64507
|
| |
|
|
|
|
| |
missing-?:-true-value extension.
llvm-svn: 64505
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
etc.) when we perform name lookup on them. This ensures that we
produce the correct signature for these functions, which has two
practical impacts:
1) When we're supporting the "implicit function declaration" feature
of C99, these functions will be implicitly declared with the right
signature rather than as a function returning "int" with no
prototype. See PR3541 for the reason why this is important (hint:
GCC always predeclares these functions).
2) If users attempt to redeclare one of these library functions with
an incompatible signature, we produce a hard error.
This patch does a little bit of work to give reasonable error
messages. For example, when we hit case #1 we complain that we're
implicitly declaring this function with a specific signature, and then
we give a note that asks the user to include the appropriate header
(e.g., "please include <stdlib.h> or explicitly declare 'malloc'"). In
case #2, we show the type of the implicit builtin that was incorrectly
declared, so the user can see the problem. We could do better here:
for example, when displaying this latter error message we say
something like:
'strcpy' was implicitly declared here with type 'char *(char *, char
const *)'
but we should really print out a fake code line showing the
declaration, like this:
'strcpy' was implicitly declared here as:
char *strcpy(char *, char const *)
This would also be good for printing built-in candidates with C++
operator overloading.
The set of C library functions supported by this patch includes all
functions from the C99 specification's <stdlib.h> and <string.h> that
(a) are predefined by GCC and (b) have signatures that could cause
codegen issues if they are treated as functions with no prototype
returning and int. Future work could extend this set of functions to
other C library functions that we know about.
llvm-svn: 64504
|
| |
|
|
| |
llvm-svn: 64503
|
| |
|
|
| |
llvm-svn: 64502
|
| |
|
|
| |
llvm-svn: 64501
|
| |
|
|
| |
llvm-svn: 64500
|
| |
|
|
|
|
| |
__attribute__((used))".
llvm-svn: 64499
|
| |
|
|
| |
llvm-svn: 64498
|
| |
|
|
|
|
| |
definition of __intptr_t_defined when stdint.h defines intptr_t.
llvm-svn: 64497
|
| |
|
|
|
|
|
|
|
|
| |
a target.
Make Preprocessor.cpp define a new __INTPTR_TYPE__ macro based on this.
On linux/32, set intptr_t to int, instead of long. This fixes PR3563.
llvm-svn: 64495
|
| |
|
|
|
|
| |
the missing -dealloc check.
llvm-svn: 64494
|
| |
|
|
|
|
|
| |
the vla-in-structure extension that GCC does. PR3562
Also wrap some long lines.
llvm-svn: 64493
|
| |
|
|
|
|
| |
- PR3566
llvm-svn: 64492
|
| |
|
|
|
|
| |
just silently return an error to avoid bogus diagnostics.
llvm-svn: 64491
|
| |
|
|
|
|
| |
performance improvement on Cocoa.h (fsyntax-only+PTH).
llvm-svn: 64490
|
| |
|
|
| |
llvm-svn: 64489
|
| |
|
|
|
|
|
|
| |
- Fix emission of static functions with constructor attribute while I
was here.
<rdar://problem/6140899> [codegen] "static" and attribute-constructor interact poorly
llvm-svn: 64488
|
| |
|
|
|
|
|
| |
for attribute used support.
- No functionality change.
llvm-svn: 64487
|
| |
|
|
| |
llvm-svn: 64486
|
| |
|
|
| |
llvm-svn: 64485
|
| |
|
|
| |
llvm-svn: 64482
|
| |
|
|
| |
llvm-svn: 64481
|