| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
a scoped enumeration type to an integral or floating type,
properly. There was an over-eager assertion, and it was missing the
floating-point case.
Fixes PR9107/<rdar://problem/8937402>.
llvm-svn: 125825
|
| |
|
|
|
|
|
|
|
|
|
|
| |
_Block_object_* flags; it's just BLOCK_HAS_COPY_DISPOSE or not.
Also, we don't need to chase forwarding pointers prior to calling
_Block_object_dispose; _Block_object_dispose in fact already does
this.
rdar://problem/9006315
llvm-svn: 125823
|
| |
|
|
|
|
|
|
|
| |
or union, place the qualifier on the outermost member reference
expression, which actually contains the entity name.
Fixes PR9188/<rdar://problem/8990184>.
llvm-svn: 125822
|
| |
|
|
| |
llvm-svn: 125821
|
| |
|
|
|
|
|
|
|
| |
This removes the final dependency edge from any lib outside of CodeGen
to core. As a result we can, and do, trim the dependency on core
from libclang, PrintFunctionNames, the unit tests and c-index-test.
While at it, review and trim other unneeded dependencies.
llvm-svn: 125820
|
| |
|
|
| |
llvm-svn: 125819
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
enumeration type, we were generating an integer literal implicitly
casted to the appropriate enumeration type. However, later checks on
that expression would strip the implicit cast.
This commit tweaks the lame hack, by creating an explicit cast instead
of an implicit cast. The right answer is to introduce a
SubstNonTypeTemplateParmExpr expression that acts like the substituted
result. I'll investigate that soon.
llvm-svn: 125818
|
| |
|
|
|
|
|
|
|
| |
bugs from other clients that don't expect to see a LabelDecl in a DeclStmt,
but if so they should be easy to fix.
This implements most of PR3429 and rdar://8287027
llvm-svn: 125817
|
| |
|
|
|
|
|
| |
own weird little DenseMap. Hey look, we now emit unused label
warnings deterministically, amazing.
llvm-svn: 125813
|
| |
|
|
| |
llvm-svn: 125806
|
| |
|
|
| |
llvm-svn: 125799
|
| |
|
|
|
|
| |
by Heikki Kultala!
llvm-svn: 125784
|
| |
|
|
| |
llvm-svn: 125783
|
| |
|
|
|
|
|
|
|
|
| |
The relative checker package is 'debug':
'-dump-live-variables' is replaced by '-analyzer-checker=debug.DumpLiveVars'
'-cfg-view' is replaced by '-analyzer-checker=debug.ViewCFG'
'-cfg-dump' is replaced by '-analyzer-checker=debug.DumpCFG'
llvm-svn: 125780
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
non-path-sensitive-checkers:
DeadStoresChecker
ObjCMethSigsChecker
ObjCUnusedIvarsChecker
SizeofPointerChecker
ObjCDeallocChecker
SecuritySyntaxChecker
llvm-svn: 125779
|
| |
|
|
|
|
|
|
|
|
| |
-Introduce CheckerV2, a set of templates for convenient declaration & registration of checkers.
Currently useful just for checkers working on the AST not the path-sensitive ones.
-Enhance CheckerManager to actually collect the checkers and turn it into the entry point for
running the checkers.
-Use the new mechanism for the LLVMConventionsChecker.
llvm-svn: 125778
|
| |
|
|
| |
llvm-svn: 125777
|
| |
|
|
|
|
|
|
|
| |
especially C++ code, and generally expand the test coverage.
Logic adapted from a patch by Kaelyn Uhrain <rikka@google.com> and
another Googler.
llvm-svn: 125775
|
| |
|
|
|
|
| |
of Clang, and reflows the code a bit to make it easier to read.
llvm-svn: 125773
|
| |
|
|
| |
llvm-svn: 125772
|
| |
|
|
|
|
|
|
|
|
| |
making them be template instantiated in a more normal way and
make them handle attributes like other decls.
This fixes the used/unused label handling stuff, making it use
the same infrastructure as other decls.
llvm-svn: 125771
|
| |
|
|
|
|
| |
client, making room for future hacking.
llvm-svn: 125770
|
| |
|
|
|
|
| |
and findInstantiationOf can never return null, even on invalid code.
llvm-svn: 125769
|
| |
|
|
|
|
| |
classes, since it's only really worked for the trivial cases anyway due to lame pseudo-parsing of the class name. The viewInheritance() function is still available for use in the debugger, where this is far more useful
llvm-svn: 125762
|
| |
|
|
| |
llvm-svn: 125761
|
| |
|
|
|
|
| |
computed; no need to do so again at the end of the translation unit
llvm-svn: 125760
|
| |
|
|
|
|
|
|
|
|
| |
Checkers.inc to be
included without '..', thus being compatible with build systems of *BSDs.
Patch by Joerg Sonnenberger!
llvm-svn: 125758
|
| |
|
|
|
|
|
|
| |
reducing the size of all declarations by one pointer. For a 64-bit
Clang parsing Cocoa.h, this saves ~630k of memory (about 3.5% of
ASTContext's memory usage for this header).
llvm-svn: 125756
|
| |
|
|
| |
llvm-svn: 125755
|
| |
|
|
| |
llvm-svn: 125754
|
| |
|
|
| |
llvm-svn: 125752
|
| |
|
|
| |
llvm-svn: 125751
|
| |
|
|
| |
llvm-svn: 125750
|
| |
|
|
|
|
|
|
|
|
|
| |
specifically targets literals which are implicitly converted, a those
are more often unintended and trivial to fix. This can be especially
helpful for diagnosing what makes 'const int x = 1e6' not an ICE.
Original patch authored by Jim Meehan with contributions from other
Googlers and a few cleanups from myself.
llvm-svn: 125745
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
class and to bind the shared value using OpaqueValueExpr. This fixes an
unnoticed problem with deserialization of these expressions where the
deserialized form would lose the vital pointer-equality trait; or rather,
it fixes it because this patch also does the right thing for deserializing
OVEs.
Change OVEs to not be a "temporary object" in the sense that copy elision is
permitted.
This new representation is not totally unawkward to work with, but I think
that's really part and parcel with the semantics we're modelling here. In
particular, it's much easier to fix things like the copy elision bug and to
make the CFG look right.
I've tried to update the analyzer to deal with this in at least some
obvious cases, and I think we get a much better CFG out, but the printing
of OpaqueValueExprs probably needs some work.
llvm-svn: 125744
|
| |
|
|
| |
llvm-svn: 125743
|
| |
|
|
|
|
| |
No one uses *-mingw64. mingw-w64 is represented as {i686|x86_64}-w64-mingw32.
llvm-svn: 125742
|
| |
|
|
| |
llvm-svn: 125741
|
| |
|
|
| |
llvm-svn: 125740
|
| |
|
|
|
|
|
|
|
|
|
| |
different types. We omit the warning when the enum types are anonymous.
Unlike GCC, this warning does not distinguish between C++ and C/ObjC for
controling whether it is on by default, it is always on by default.
Original patch contributed by Richard Trieu (@ Google), I fixed some
style issues, and cleaned it up for submission.
llvm-svn: 125739
|
| |
|
|
|
|
| |
heavyweight machinery and indirection that we don't need
llvm-svn: 125737
|
| |
|
|
| |
llvm-svn: 125736
|
| |
|
|
| |
llvm-svn: 125735
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
LabelDecl and LabelStmt. There is a 1-1 correspondence between the
two, but this simplifies a bunch of code by itself. This is because
labels are the only place where we previously had references to random
other statements, causing grief for AST serialization and other stuff.
This does cause one regression (attr(unused) doesn't silence unused
label warnings) which I'll address next.
This does fix some minor bugs:
1. "The only valid attribute " diagnostic was capitalized.
2. Various diagnostics printed as ''labelname'' instead of 'labelname'
3. This reduces duplication of label checking between functions and blocks.
Review appreciated, particularly for the cindex and template bits.
llvm-svn: 125733
|
| |
|
|
| |
llvm-svn: 125731
|
| |
|
|
| |
llvm-svn: 125730
|
| |
|
|
|
|
|
|
|
|
| |
parameter type to see what's behind it, so that we don't end up
printing silly things like "float const *" when "const float *" would
make more sense. Also, replace the pile of "isa" tests with a simple
switch enumerating all of the cases, making a few more obvious cases
use prefix qualifiers.
llvm-svn: 125729
|
| |
|
|
| |
llvm-svn: 125724
|
| |
|
|
| |
llvm-svn: 125722
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
I will not hold on to temporary StringRefs.
llvm-svn: 125718
|