| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
declarations.
llvm-svn: 148599
|
| |
|
|
| |
llvm-svn: 148586
|
| |
|
|
| |
llvm-svn: 148577
|
| |
|
|
|
|
| |
are used with that and the 'a' length modifier.
llvm-svn: 148029
|
| |
|
|
|
|
|
| |
Before r148025 we (accidentally) didn't check whether a length modifier is
appropriate for a scanlist, but now we do.
llvm-svn: 148026
|
| |
|
|
| |
llvm-svn: 148025
|
| |
|
|
|
|
| |
a rvalue, which is a useful step during AST evaluation.
llvm-svn: 147918
|
| |
|
|
| |
llvm-svn: 147672
|
| |
|
|
| |
llvm-svn: 147670
|
| |
|
|
| |
llvm-svn: 147506
|
| |
|
|
| |
llvm-svn: 147331
|
| |
|
|
|
|
|
| |
It should not be supported in C++11, since that uses the C99 standard
library, in which 'a' is a format specifier.
llvm-svn: 147310
|
| |
|
|
|
|
|
|
|
|
| |
block-level expr. Currently CXXConstructExpr is always added as a block-level
expr. This caused two problems for the analyzer (and potentially for the
CFG-based codegen).
1. We have no way to know whether a ctor call is base or complete.
2. We have no way to know the destination object being contructed.
llvm-svn: 147306
|
| |
|
|
| |
llvm-svn: 147203
|
| |
|
|
|
|
|
|
| |
PseudoObjExprs. It turns out
that the information collected by this method is a super set of the captured variables in BlockDecl.
llvm-svn: 147122
|
| |
|
|
|
|
| |
blocks.
llvm-svn: 147116
|
| |
|
|
| |
llvm-svn: 147068
|
| |
|
|
| |
llvm-svn: 147066
|
| |
|
|
| |
llvm-svn: 146967
|
| |
|
|
|
|
| |
http://llvm.org/docs/CodingStandards.html#ll_virtual_anch
llvm-svn: 146959
|
| |
|
|
|
|
|
|
|
|
| |
declarations and definitions) as ObjCInterfaceDecls within the same
redeclaration chain. This new representation matches what we do for
C/C++ variables/functions/classes/templates/etc., and makes it
possible to answer the query "where are all of the declarations of
this class?"
llvm-svn: 146679
|
| |
|
|
|
|
|
|
|
| |
extension.
This fixes gcc.dg/format/c90-scanf-3.c and ext-4.c (test for excess
errors).
llvm-svn: 146649
|
| |
|
|
|
|
| |
and offer fixits when there is a mismatch.
llvm-svn: 146326
|
| |
|
|
| |
llvm-svn: 146259
|
| |
|
|
|
|
| |
in addition to underlying type.
llvm-svn: 146254
|
| |
|
|
|
|
|
| |
It's declared in FormatString.h, so it shouldn't be defined in
PrintfFormatString.cpp.
llvm-svn: 146253
|
| |
|
|
|
|
| |
It should reset the length modifier (unless it's a wchar_t string).
llvm-svn: 146252
|
| |
|
|
|
|
| |
scoped_lockable attribute.
llvm-svn: 146174
|
| |
|
|
|
|
|
|
|
|
|
|
| |
in addition to underlying type.
For example, the warning for printf("%zu", 42.0);
changes from "conversion specifies type 'unsigned long'" to "conversion
specifies type 'size_t' (aka 'unsigned long')"
(This is a second attempt after r145697, which got reverted.)
llvm-svn: 146032
|
| |
|
|
|
|
|
|
| |
(Previously, Clang used it's implementation of dominators.)
The patch is contributed by Guoping Long!
llvm-svn: 145858
|
| |
|
|
|
|
| |
lib/Analysis to lib/Sema which is cyclical.
llvm-svn: 145724
|
| |
|
|
|
|
| |
Use the canonical type of the typedef to compare with the underlying type.
llvm-svn: 145702
|
| |
|
|
|
|
|
|
| |
For example, the warning for printf("%zu", 42.0);
changes from "conversion specifies type 'unsigned long'" to "conversion
specifies type 'size_t' (aka 'unsigned long')"
llvm-svn: 145697
|
| |
|
|
|
|
|
|
| |
lifetimes have been extended via reference binding. The type of the
reference and the type of the temporary are not necessarily the same,
which could cause a crash. Fixes <rdar://problem/10398199>.
llvm-svn: 144646
|
| |
|
|
|
|
| |
capture the 'self' variable of the enclosing ObjC method decl. Fixes <rdar://problem/10380300>.
llvm-svn: 144556
|
| |
|
|
|
|
|
| |
through it, so we should look through it for the live-values
analysis as well.
llvm-svn: 144190
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
property references to use a new PseudoObjectExpr
expression which pairs a syntactic form of the expression
with a set of semantic expressions implementing it.
This should significantly reduce the complexity required
elsewhere in the compiler to deal with these kinds of
expressions (e.g. IR generation's special l-value kind,
the static analyzer's Message abstraction), at the lower
cost of specifically dealing with the odd AST structure
of these expressions. It should also greatly simplify
efforts to implement similar language features in the
future, most notably Managed C++'s properties and indexed
properties.
Most of the effort here is in dealing with the various
clients of the AST. I've gone ahead and simplified the
ObjC rewriter's use of properties; other clients, like
IR-gen and the static analyzer, have all the old
complexity *and* all the new complexity, at least
temporarily. Many thanks to Ted for writing and advising
on the necessary changes to the static analyzer.
I've xfailed a small diagnostics regression in the static
analyzer at Ted's request.
llvm-svn: 143867
|
| |
|
|
|
|
| |
alternativing ParenExprs and OpaqueValueExprs. Thanks to Anna and Argiris for iterating on this function. My original patch embarssingly didn't even pass the Clang tests.
llvm-svn: 143797
|
| |
|
|
| |
llvm-svn: 143796
|
| |
|
|
| |
llvm-svn: 143795
|
| |
|
|
| |
llvm-svn: 143794
|
| |
|
|
|
|
| |
Make test/Analysis/misc-ps.c test pass.
llvm-svn: 143790
|
| |
|
|
|
|
|
|
| |
break out of
switch statement, not the while loop).
llvm-svn: 143780
|
| |
|
|
|
|
| |
liveness.
llvm-svn: 143767
|
| |
|
|
| |
llvm-svn: 143766
|
| |
|
|
|
|
|
|
| |
implicitly perform an lvalue-to-rvalue conversion if used on an lvalue
expression. Also improve the documentation of Expr::Evaluate* to indicate which
of them will accept expressions with side-effects.
llvm-svn: 143263
|
| |
|
|
|
|
|
|
| |
The code had it backwards, thinking size_t was signed, and using that for "%zd".
Also let the analysis get the types for (u)intmax_t while we are at it.
llvm-svn: 143099
|
| |
|
|
|
|
| |
accept any char, not just signed char. Fixes <rdar://problem/10303638>.
llvm-svn: 142908
|
| |
|
|
| |
llvm-svn: 142885
|
| |
|
|
|
|
|
| |
to match the CMakeLists.txt change in r142782; this should fix the CMake
build.
llvm-svn: 142784
|