Richard Trieu
5f376f6d34
Change diagnoseAddressOfInvalidType() to use an enum to determine what error message to display. Also, move the function call into on location instead of having it spread among many places in the if/else statements.
...
llvm-svn: 139260
2011-09-07 21:46:33 +00:00
Douglas Gregor
5ca153f112
When parsing a function-try-block that does not have a
...
ctor-initializer, remember to call the Sema action to generate default
ctor-initializers. What a delightful little miscompile. Fixes PR10578
/ <rdar://problem/9877267>.
llvm-svn: 139253
2011-09-07 20:36:12 +00:00
Kaelyn Uhrain
5a43b461fc
Fix Sema::CorrectTypo to ignore found but unresolved symbols
...
llvm-svn: 139252
2011-09-07 20:25:59 +00:00
Peter Collingbourne
2d7f219caf
More missing dependencies picked up by Ninja.
...
llvm-svn: 139248
2011-09-07 19:12:36 +00:00
James Molloy
98f3e18f25
Fix up MCInstPrinter creation to take the new SubtargetInfo parameter (see LLVM r139237)
...
llvm-svn: 139238
2011-09-07 17:25:30 +00:00
Fariborz Jahanian
eebdb67420
objc-gc: More sema work for properties declared 'weak'
...
in GC mode. // rdar://10073896
llvm-svn: 139235
2011-09-07 16:24:21 +00:00
Chandler Carruth
3d45b23dfc
Extract the emission of the diagnostic's location into a separate
...
function. This is really the beginning of the second phase of
refactorings here. The end goal is to have (roughly) three interfaces:
1) Base class to format a single diagnostic suitable for display on the
console.
2) Extension of the base class which also displays a caret diagnostic
suitable for display on the console.
3) An adaptor that implements the DiagnosticClient by delegating to #1
and/or #2 as appropriate.
Once we have these, things like libclang's formatDiagnostic can use #1
and #2 to provide really well formatted (and consistently formatted!)
textual formatting of diagnostics.
Getting there is going to be quite a bit of shuffling. I'm basically
sketching out where the interface boundaries can be drawn for #1 and #2
within the existing classes. That lets me shuffle with a minimum of fuss
and delta. Once that's done, and any of the related interfaces that need
to change are updated, I'll hoist these into separate headers and
re-implement libclang in terms of their interfaces. Long WIP, but
comments at each step welcome. =D
llvm-svn: 139228
2011-09-07 08:05:58 +00:00
Chandler Carruth
9779830513
Move the HilightRange method from TextDiagnosticPrinter down to
...
CaretDiagnostic. It's completely generic, with nothing to do with the
diagnostic client or info APIs.
llvm-svn: 139227
2011-09-07 07:02:31 +00:00
Chandler Carruth
e79ddf8c67
Hoist the tab expansion into a helper function.
...
llvm-svn: 139226
2011-09-07 05:36:50 +00:00
Chandler Carruth
0f1006a95a
Don't compute the same line number in two places, once inside a loop.
...
llvm-svn: 139225
2011-09-07 05:01:10 +00:00
Eli Friedman
ce3e2c85b1
Make sure the FunctionDecl's created by "#pragma weak" have correct ParmVarDecl's. PR10878.
...
llvm-svn: 139224
2011-09-07 04:05:06 +00:00
Argyrios Kyrtzidis
9d4fac0f9f
[arcmt] Remove xfail on test for windows, Takumi reported that it passes mingw and msvc.
...
llvm-svn: 139223
2011-09-07 03:43:41 +00:00
Argyrios Kyrtzidis
7d500b3457
operator->() in PreprocessingRecord::iterator is useless since we
...
are returning a pointer to pointer.
llvm-svn: 139222
2011-09-07 03:43:39 +00:00
Richard Trieu
f9bd0f5d99
Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
...
ExprResult LHS, RHS,
Expr *LHSExpr, *RHSExpr
QualType LHSType, RHSType
Functions changed:
DiagnoseLogicalAndInLogicalOrLHS()
DiagnoseBinOpPrecedence()
ActOnBinOp()
BuildBinOp()
llvm-svn: 139219
2011-09-07 02:02:10 +00:00
Richard Trieu
4a287fb926
Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
...
ExprResult LHS, RHS,
Expr *LHSExpr, *RHSExpr
QualType LHSType, RHSType
Functions changed:
CreateBuiltinBinOp()
DiagnoseBitwisePrecedence()
llvm-svn: 139218
2011-09-07 01:49:20 +00:00
Chandler Carruth
773757a962
Switch the CharSourceRange array to a small vector. The array was
...
a stack array of a magical size with an assert() that we never
overflowed it. That seems incredibly risky. We also have a very nice API
for bundling up a vector we expect to usually have a small size without
loss of functionality or security if the size is excessive.
The fallout is to remove the last pointer+size parameter pair that are
traced through the recursive caret diagnostic emission.
llvm-svn: 139217
2011-09-07 01:47:09 +00:00
Eli Friedman
e9f8113ec4
Switch clang over to using fence/atomicrmw/cmpxchg instead of the intrinsics (which will go away). LLVM CodeGen does almost exactly the same thing with these and the old intrinsics, so I'm reasonably confident this will not break anything.
...
There are still a few issues which need to be resolved with code generation for atomic load and store, so I'm not converting the places which need those for now.
I'm not entirely sure what to do about __builtin_llvm_memory_barrier: the fence instruction doesn't expose all the possibilities which can be expressed by __builtin_llvm_memory_barrier. I would appreciate hearing from anyone who is using this intrinsic.
llvm-svn: 139216
2011-09-07 01:41:24 +00:00
Richard Trieu
da4f43a609
Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
...
ExprResult LHS, RHS,
Expr *LHSExpr, *RHSExpr
QualType LHSType, RHSType
Functions changed:
CheckAssignmentOperands()
DiagnoseSelfAssignment()
checkArithmeticNull()
llvm-svn: 139215
2011-09-07 01:33:52 +00:00
Richard Trieu
bcce2f7189
Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
...
ExprResult LHS, RHS,
Expr *LHSExpr, *RHSExpr
QualType LHSType, RHSType
Functions changed:
CheckVectorCompareOperands()
CheckBitwiseOperands()
CheckLogicalOperands()
llvm-svn: 139214
2011-09-07 01:19:57 +00:00
Richard Trieu
aa5e256c20
Change the self-reference visitor (which gives the warning for self-reference oninitalization warning of -Wuninitialized) to exclude member variables that can decay into pointers. This will cause it to no longer warn on this code:
...
struct foo { char a[100], *e; } bar = { .e = bar.a };
llvm-svn: 139213
2011-09-07 00:58:53 +00:00
Fariborz Jahanian
5f2b703651
objc-gc: Don't force a __strong type'd property
...
to be 'weak'. This prevents a crash and should
probably be flagged as error - later to come.
llvm-svn: 139211
2011-09-07 00:38:49 +00:00
Francois Pichet
bcf6471010
In Microsoft mode, if we are inside a template class member function and we can't resolve a function call then create a type-dependent CallExpr even if the function has no type dependent arguments. The goal is to postpone name lookup to instantiation time to be able to search into type dependent base classes.
...
With this patch in, clang will generate only 37 errors (down from 212) when parsing a typical MFC source file.
llvm-svn: 139210
2011-09-07 00:14:57 +00:00
Chad Rosier
e75ef40843
[driver] When clang crashes, don't try to generate diagnostics (i.e.,
...
preprocessor output) with multiple -arch options.
llvm-svn: 139207
2011-09-06 23:52:36 +00:00
Fariborz Jahanian
6dd3f39dae
objc-gc: Adds support for "weak" property attribute under GC.
...
// rdar://10073896
llvm-svn: 139203
2011-09-06 23:32:40 +00:00
Chandler Carruth
cf57ebfd4c
Remove the doxyment for this now defunct parameter.
...
llvm-svn: 139197
2011-09-06 22:34:36 +00:00
Chandler Carruth
935574de2f
Don't recompute the presumed loc twice in 5 lines of code... Spotted by
...
inspection.
llvm-svn: 139196
2011-09-06 22:34:33 +00:00
Chandler Carruth
1f28e6c7e3
Use ArrayRef for the fixit hint array rather than a pointer and a size.
...
Clean up loops over the hints to use the more idiomatic iterator form in
LLVM and Clang.
llvm-svn: 139195
2011-09-06 22:31:44 +00:00
Chandler Carruth
20bfaa0f68
Hoist the construction of the FixItHint line into a member function with
...
a defined interface. This isn't as nice as the previous one, but should
get better as I push through better data types in all these functions.
Also, I'm hoping to pull some aspects of this out into a common routine
(such as tab expansion).
Again, WIP, comments welcome as I'm going through.
llvm-svn: 139190
2011-09-06 22:01:04 +00:00
Richard Trieu
b80728fe9a
Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
...
ExprResult LHS, RHS,
Expr *LHSExpr, *RHSExpr
QualType LHSType, RHSType
Functions changed:
CheckCompareOperands()
llvm-svn: 139187
2011-09-06 21:43:51 +00:00
Douglas Gregor
e0e9630e07
When extracting the callee declaration from a call expression, be sure
...
to look through SubstNonTypeTemplateParmExprs. Then, update the IR
generation of CallExprs to actually use CallExpr::getCalleeDecl()
rather than attempting to mimick its behavior (badly).
Fixes <rdar://problem/10063539>.
llvm-svn: 139185
2011-09-06 21:41:04 +00:00
Richard Trieu
1762d7cc35
Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
...
ExprResult LHS, RHS,
Expr *LHSExpr, *RHSExpr
QualType LHSType, RHSType
Functions changed:
checkEnumComparison()
diagnoseDistinctPointerComparison()
convertPointersToCompositeType()
diagnoseFunctionPointerToVoidComparison()
llvm-svn: 139184
2011-09-06 21:27:33 +00:00
Richard Trieu
e4a19fbd0c
Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
...
ExprResult LHS, RHS,
Expr *LHSExpr, *RHSExpr
QualType LHSType, RHSType
Functions changed:
DiagnoseBadShiftValues()
CheckShiftOperands()
llvm-svn: 139183
2011-09-06 21:21:28 +00:00
Richard Trieu
4ae7e97667
Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
...
ExprResult LHS, RHS,
Expr *LHSExpr, *RHSExpr
QualType LHSType, RHSType
Functions changed:
diagnoseArithmeticOnTwoVoidPointers()
checkArithmeticBinOpPointerOperands()
diagnosePointerIncompatibility()
CheckAdditionOperands()
CheckSubtractionOperands()
llvm-svn: 139182
2011-09-06 21:13:51 +00:00
Richard Trieu
859d23fa5e
Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
...
ExprResult LHS, RHS,
Expr *LHSExpr, *RHSExpr
QualType LHSType, RHSType
Functions changed:
CheckVectorOperands()
CheckMultiplyDivideOperands()
CheckRemainderOperands()
llvm-svn: 139181
2011-09-06 21:01:04 +00:00
Ted Kremenek
99c0966fc4
Place 'equality comparison with extraneous parentheses...' into a subgroup of -Wparentheses called -Wparentheses-equality.
...
llvm-svn: 139180
2011-09-06 20:58:32 +00:00
Douglas Gregor
49695f078e
Implement the Named Return Value Optimization (NRVO) for blocks.
...
llvm-svn: 139178
2011-09-06 20:46:03 +00:00
Richard Trieu
eb29914c5d
Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
...
ExprResult LHS, RHS,
Expr *LHSExpr, *RHSExpr
QualType LHSType, RHSType
Functions changed:
CheckTransparentUnionArgumentConstraints()
CheckSingleAssignmentConstraints()
InvalidOperands()
llvm-svn: 139176
2011-09-06 20:40:12 +00:00
Douglas Gregor
e3f3ea08a8
Implement the Named Return Value Optimization (NRVO) for Objective-C++
...
methods. Fixes PR10835 / <rdar://problem/10050178>.
llvm-svn: 139175
2011-09-06 20:33:37 +00:00
Richard Trieu
de4958fb28
Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
...
ExprResult LHS, RHS,
Expr *LHSExpr, *RHSExpr
QualType LHSType, RHSType
Functions changed:
CheckAssignmentConstraints()
llvm-svn: 139173
2011-09-06 20:30:53 +00:00
Richard Trieu
a871b97da5
Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
...
ExprResult LHS, RHS,
Expr *LHSExpr, *RHSExpr
QualType LHSType, RHSType
Functions changed:
checkPointerTypesForAssignment()
checkBlockPointerTypesForAssignment()
checkObjCPointerTypesForAssignment()
CheckAssignmentConstraints()
llvm-svn: 139170
2011-09-06 20:21:22 +00:00
Richard Trieu
d33e46e943
Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
...
ExprResult LHS, RHS,
Expr *LHSExpr, *RHSExpr
QualType LHSType, RHSType
Functions changed:
DiagnoseConditionalForNull()
CheckConditionalOperands()
IsArithmeticBinaryExpr()
DiagnoseConditionalPrecedence()
llvm-svn: 139167
2011-09-06 20:06:39 +00:00
Benjamin Kramer
499c68b5f6
Spelling.
...
llvm-svn: 139165
2011-09-06 19:57:14 +00:00
Richard Trieu
9a52fbb2d0
Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
...
ExprResult LHS, RHS,
Expr *LHSExpr, *RHSExpr
QualType LHSType, RHSType
Functions changed:
handleIntegerConversion()
UsualArithmeticConversions()
llvm-svn: 139164
2011-09-06 19:52:52 +00:00
Ted Kremenek
fed48af3de
Don't emit -Wpadded warnings without a valid SourceLocation. This can happen when RecordLayoutBuilder is used by Codegen, not Sema.
...
llvm-svn: 139162
2011-09-06 19:40:45 +00:00
Eli Friedman
cf9b1f6524
Rearrange code so that we pass the right pointer to delete[] when an exception is thrown constructing the array elements in an array new expression. Fixes PR10870.
...
llvm-svn: 139158
2011-09-06 18:53:03 +00:00
Richard Trieu
cfe3f21cec
Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
...
ExprResult LHS, RHS,
Expr *LHSExpr, *RHSExpr
QualType LHSType, RHSType
Functions changed:
handleFloatConversion()
handleComplexIntConvsersion()
llvm-svn: 139153
2011-09-06 18:38:41 +00:00
Richard Trieu
5065cdd0ea
Rename variables in SemaExpr.cpp to give a more consistant naming scheme.
...
ExprResult LHS, RHS,
Expr *LHSExpr, *RHSExpr
QualType LHSType, RHSType
Functions changed:
handleComplexFloatToComplexFloatConverstion()
handleComplexFloatConversion()
llvm-svn: 139151
2011-09-06 18:25:09 +00:00
Richard Smith
a8a5c402bb
Advertise support for cxx_range_for as an extension in C++98 mode. Patch by Jean-Daniel Dupas!
...
Also provide a modicum of test coverage for ranged for in C++98.
llvm-svn: 139149
2011-09-06 18:03:41 +00:00
Douglas Gregor
cd0d826001
Finish implementing (de-)serialization of the CXXDefinitionData bits
...
needed for implicit move constructors and move assignment
operators. Fixes PR10847.
llvm-svn: 139144
2011-09-06 16:38:46 +00:00
Douglas Gregor
146b8e9a58
When performing a derived-to-base cast on the right-hand side of the
...
synthesized move assignment within an implicitly-defined move
assignment operator, be sure to treat the derived-to-base cast as an
xvalue (rather than an lvalue). Otherwise, we'll end up getting the
wrong constructor.
Optimize a direct call to a trivial move assignment operator to an
aggregate copy, as we do for trivial copy assignment operators, and
update the the assertion in CodeGenFunction::EmitAggregateCopy() to
cope with this optimization.
Fixes PR10860.
llvm-svn: 139143
2011-09-06 16:26:56 +00:00
Richard Smith
3ab15558d7
PR10867: Work around a bug in lit. Multiple RUN: lines are joined with &&, so:
...
RUN: foo
RUN: bar || true
is equivalent to:
RUN: foo && bar || true
which is equivalent to:
RUN: (foo && bar) || true
This resulted in several of the fixit tests not really testing anything.
llvm-svn: 139132
2011-09-06 03:01:15 +00:00
Peter Collingbourne
2e8201422d
Add missing dependency
...
Spotted by Ninja.
llvm-svn: 139129
2011-09-06 02:08:40 +00:00
Peter Collingbourne
15a26dacbc
Fix typo
...
llvm-svn: 139128
2011-09-06 02:08:36 +00:00
Peter Collingbourne
fa9771ffec
Add the resource directory to the search path for Driver::GetFilePath,
...
as well as the search path printed by -print-search-dirs.
The main purpose of this change is to cause -print-file-name=include
to print the path to the include directory under Clang's resource
directory, instead of the system compiler's include directory, whose
header files Clang may not be able to parse. Some build scripts will
do something like:
$(CC) -nostdinc -I`$(CC) -print-file-name=include`
to exclude all header paths except the compiler's.
llvm-svn: 139127
2011-09-06 02:08:31 +00:00
Benjamin Kramer
17ff23c708
Speed up BCPL comment lexing by looking aggressively for newlines and then scannig backwards to see if the newline is escaped.
...
3% speedup in preprocessing all of clang with -Eonly. Also includes a small testcase for coverage.
llvm-svn: 139116
2011-09-05 07:19:39 +00:00
Benjamin Kramer
dbfb18a0a9
Use the Lexer's definition of whitespace here.
...
llvm-svn: 139115
2011-09-05 07:19:35 +00:00
Benjamin Kramer
e007e80fc0
Stop cluttering the test directory with temporary files.
...
llvm-svn: 139114
2011-09-05 07:19:32 +00:00
Chandler Carruth
58b3749d6c
Enable -Wdangling-fields by default in Clang. I've run this warning over
...
a very large chunk of code and found zero false positives. I've only
found a few bugs, but that likely is because bugs of this nature
actually do manifest. We've also identified several bugs that were
caught by Valgrind, but would have been caught faster and more easily
with this warning.
If anyone has concerns, or this causes fallout on any build bots, lemme
know. I'm happy to just put it under -Wmost.
llvm-svn: 139112
2011-09-05 05:47:35 +00:00
Richard Smith
a528507418
Implement the suggested resolution of WG21 N3307 issue 19: When determining whether a class is an aggregate in C++0x, treat all functions which are neither deleted nor defaulted as user-provided, not just special member functions. The wording of the standard only defines the term "user-provided" for special member functions, but the intent seems to be that any function can be user-provided.
...
llvm-svn: 139111
2011-09-05 02:13:09 +00:00
Richard Smith
3f9211d322
PR10506: Extend test for temporary cleanups in range-based for loop to cover the dependent case.
...
llvm-svn: 139109
2011-09-04 23:52:03 +00:00
Francois Pichet
4391c7529a
Pass 0 instead of a empty TemplateArgumentListInfo when creating a CXXDependentScopeMemberExpr to handle a "this->" fixit (lookup into dependent bases of class template)
...
Otherwise the fixit doesn't really work for subsequent lookup.
llvm-svn: 139105
2011-09-04 23:00:48 +00:00
Benjamin Kramer
60053cf547
Use const_cast to avoid warnings.
...
llvm-svn: 139104
2011-09-04 20:26:28 +00:00
Richard Smith
5065864151
PR10458: Last part of providing 'auto' type specifier as an extension in C++98: permit it within type-ids.
...
llvm-svn: 139103
2011-09-04 20:24:20 +00:00
Richard Smith
58c7433709
PR10458: Finesse behaviour of C++0x features when in pre-0x mode. Accept for-range and auto with an ExtWarn, and produce a -Wc++0x-compat warning in C++98 mode when auto is used as a storage class.
...
llvm-svn: 139102
2011-09-04 19:54:14 +00:00
Sebastian Redl
e9c4e84f8e
Add test case for defaulted copy and move structure validation.
...
Fix bug this uncovered.
Address minor comments from Doug.
Enable cxx_implicit_moves feature.
llvm-svn: 139101
2011-09-04 18:14:28 +00:00
Argyrios Kyrtzidis
b914e3bc5c
Handle a code-completion token being passed to the macro stringify operator.
...
Fixes http://llvm.org/PR10826 .
llvm-svn: 139087
2011-09-04 03:32:19 +00:00
Argyrios Kyrtzidis
5cec2aea3f
Support code-completion for C++ inline methods and ObjC buffering methods.
...
Previously we would cut off the source file buffer at the code-completion
point; this impeded code-completion inside C++ inline methods and,
recently, with buffering ObjC methods.
Have the code-completion inserted into the source buffer so that it can
be buffered along with a method body. When we actually hit the code-completion
point the cut-off lexing or parsing.
Fixes rdar://10056932&8319466
llvm-svn: 139086
2011-09-04 03:32:15 +00:00
Argyrios Kyrtzidis
a3deaeeb52
Fix Lexer::ComputePreamble when MaxLines parameter is non-zero.
...
The function was only counting lines that included tokens and not empty lines,
but MaxLines (mainly initiated to the line where the code-completion point resides)
is a count of overall lines (even empty ones).
llvm-svn: 139085
2011-09-04 03:32:04 +00:00
Benjamin Kramer
a66aaa93ee
More unused variable removal.
...
llvm-svn: 139080
2011-09-03 08:46:20 +00:00
Benjamin Kramer
2667afa980
Make helpers static, remove unused variables.
...
llvm-svn: 139078
2011-09-03 03:30:59 +00:00
Chandler Carruth
d551d4e1da
Teach -Wdangling-field to warn about temporaries bound to references as
...
well.
Also, clean up the flow of the code a bit, and factor things more
nicely.
Finally, add the test case that was missing from my previous
commit (sorry), with new tests added to cover temporaries and other fun
cases.
llvm-svn: 139077
2011-09-03 02:21:57 +00:00
Chandler Carruth
599deef379
Add a simple new warning to catch blatantly dangling pointer and
...
reference members of classes. We've had several bugs reported because of
this, and there's no reason not to flag it right away in the compiler.
Comments especially welcome on the strategy for implementing this
warning (IE, what should trigger this?) and on the text of the warning
itself.
I'm going to extend this to cover obvious cases with temporaries and
beef up the test cases some in subsequent patches. I'll then run it over
a large codebase and make sure its not misbehaving before I add it to
-Wall or turn it on by default. I think this one might be a good
candidate for on by default.
llvm-svn: 139075
2011-09-03 01:14:15 +00:00
Fariborz Jahanian
4efb6b35f6
Revise test and see if it passes with a release-built clang.
...
llvm-svn: 139043
2011-09-02 21:47:51 +00:00
Richard Trieu
48277e5710
Fix some indenting issues in SemaExpr.cpp
...
llvm-svn: 139042
2011-09-02 21:44:27 +00:00
Fariborz Jahanian
2bb8270e6f
blocks: Support capturing complex variable in block.
...
// rdar://10033896
llvm-svn: 139041
2011-09-02 21:33:44 +00:00
Richard Trieu
7aa58f1eea
Refactor UsualArithmeticConversions() in SemaExpr.cpp into several functions.
...
llvm-svn: 139033
2011-09-02 20:58:51 +00:00
Fariborz Jahanian
b74711df52
revert patch in r139020
...
llvm-svn: 139029
2011-09-02 20:03:16 +00:00
Ted Kremenek
aed4677a1c
-Wuninitialized: fix insidious bug resulting from interplay of blocks and dead code. Fixes <rdar://problem/10060250>.
...
llvm-svn: 139027
2011-09-02 19:39:26 +00:00
Fariborz Jahanian
f30bc00103
blocks: Support capturing complex variable in block.
...
// rdar://10033896
llvm-svn: 139020
2011-09-02 18:39:40 +00:00
Eli Friedman
29538899ef
Make StmtDumper::VisitCXXFunctionalCastExpr dump the attached cast kind. Fix the cast kind for a cast from floating-point to enum type. (The difference isn't actually visible, but that's just because IRGen is overly forgiving.) Per report by Enea Zaffanella on cfe-dev.
...
llvm-svn: 139011
2011-09-02 17:38:59 +00:00
Jordy Rose
087611ed81
[analyzer] Remove TransferFuncs.h, then deal with the fallout.
...
And with that, TransferFuncs is gone!
llvm-svn: 139003
2011-09-02 08:02:59 +00:00
Jordy Rose
75e680eae3
[analyzer] Move RetainReleaseChecker to the Checkers library and rename it to RetainCountChecker...and clean up the file while I'm at it.
...
llvm-svn: 139002
2011-09-02 06:44:22 +00:00
Chandler Carruth
d3e83677b4
Hoist the emission of parseable fixits into a helper method, simplifying
...
and reducing indentation through the clever use of early exits. ;]
llvm-svn: 139001
2011-09-02 06:30:30 +00:00
Jordy Rose
dd7a654b1a
[analyzer] Remove lingering CFRefCount creation, which would have resulted in a leak. There's room for improvement here...
...
llvm-svn: 139000
2011-09-02 06:29:27 +00:00
Jordy Rose
a87a2775fa
[analyzer] Fix member initialization order. No functionality change.
...
llvm-svn: 138999
2011-09-02 06:21:26 +00:00
Jordy Rose
c49ec53e29
[analyzer] Move the knowledge of whether or not GC is enabled for the current analysis from CFRefCount to ExprEngine.
...
Remove TransferFuncs from ExprEngine and AnalysisConsumer.
Demote RetainReleaseChecker to a regular checker, and give it the name osx.cocoa.RetainCount (class name change coming shortly). Update tests accordingly.
llvm-svn: 138998
2011-09-02 05:55:19 +00:00
Richard Trieu
eea56f785e
Move the warning for different enum comparisons and the warning for using NULL as a non-pointer in a binary operation into separate functions.
...
llvm-svn: 138995
2011-09-02 03:48:46 +00:00
Richard Trieu
dd82a5c5d7
Reduce code duplication for pointer comparisons in CheckCompareOperands().
...
llvm-svn: 138994
2011-09-02 02:55:45 +00:00
Richard Trieu
aba2280573
Pull out incomplete pointer type checking code, used from arithmetic checking functions, into its own function.
...
llvm-svn: 138993
2011-09-02 02:15:37 +00:00
Richard Trieu
27ae4cb7c4
Refactor CheckConditionalOperands() by moving chunks of code to helper functions making a slimmer function.
...
llvm-svn: 138992
2011-09-02 01:51:02 +00:00
Richard Trieu
3fd7bb8224
Refactor CheckAddressOfOperand() by pulling out redundant code and moving hard coding strings from SemaExpr.cpp to DiagnosticSemaKinds.td.
...
llvm-svn: 138987
2011-09-02 00:47:55 +00:00
Douglas Gregor
8835e03cee
Always construct an ASTReader with a non-NULL ASTContext and
...
Preprocessor, eliminating the constructor that was used by ASTUnit
(which didn't provide an ASTContext or Prepreprocessor). Ensuring that
both objects are non-NULL will simplify module loading (but none of
that is done yet).
llvm-svn: 138986
2011-09-02 00:26:20 +00:00
Douglas Gregor
e8bbc12152
Extend the ASTContext constructor to delay the initialization of
...
builtin types (When requested). This is another step toward making
ASTUnit build the ASTContext as needed when loading an AST file,
rather than doing so after the fact. No actual functionality change (yet).
llvm-svn: 138985
2011-09-02 00:18:52 +00:00
Douglas Gregor
83297dfc7e
Allow the preprocessor to be constructed without performing target-
...
and language-specific initialization. Use this to allow ASTUnit to
create a preprocessor object *before* loading the AST file. No actual
functionality change.
llvm-svn: 138983
2011-09-01 23:39:15 +00:00
Richard Trieu
b10c631f53
Refactor CheckAdditionOperands(), CheckSubtractionOperands(), and CheckIncrementDecrementOperand() in SemaExpr.cpp to move reused code to separate functions.
...
llvm-svn: 138975
2011-09-01 22:53:23 +00:00
Argyrios Kyrtzidis
43ea78b48d
Don't try keeping a 'LeadingEmptyMacroLoc' in NullStmt. This fails
...
in the face of buffering C++/ObjC method bodies.
llvm-svn: 138972
2011-09-01 21:53:45 +00:00
Argyrios Kyrtzidis
48d7798de1
[arcmt] Clear out temporary dirs in the tests or we may get failures because of leftovers.
...
llvm-svn: 138971
2011-09-01 21:53:39 +00:00
Nick Lewycky
0112b11f5c
Don't try to emit unsupported templated friend declarations. They're unsupported
...
and may very well be dependent-types, triggering an assertion in debug info
codegen.
llvm-svn: 138970
2011-09-01 21:49:51 +00:00
Richard Trieu
a04ad1a1b9
Extend the self-reference warning to catch when a constructor references itself upon initialization, such as using itself within its own copy constructor.
...
struct S {};
S s(s);
llvm-svn: 138969
2011-09-01 21:44:13 +00:00
Argyrios Kyrtzidis
cbbc0141f6
[arcmt] Fix test/ARCMT/remove-statements.m regression due to
...
Objective-C method buffering(rdar://10056942)
Turned out the same issue existed for C++ inline methods.
llvm-svn: 138960
2011-09-01 20:53:18 +00:00
Douglas Gregor
7018d5bcfb
Teach ASTContext and Preprocessor to hold on to references to the same
...
LangOptions, rather than making distinct copies of
LangOptions. Granted, LangOptions doesn't actually get modified, but
this will eventually make it easier to construct ASTContext and
Preprocessor before we know all of the LangOptions.
llvm-svn: 138959
2011-09-01 20:23:19 +00:00
Fariborz Jahanian
415e47dd6e
default property synthesis is off by default
...
for now.
llvm-svn: 138958
2011-09-01 20:23:17 +00:00
Douglas Gregor
6ac0b717b4
Make test slightly trickier
...
llvm-svn: 138957
2011-09-01 19:02:18 +00:00
Fariborz Jahanian
f7a3d4ad15
objective-c: Make auto synthesis of properties the default.
...
This concludes //rdar://8843851
llvm-svn: 138947
2011-09-01 17:50:05 +00:00
Douglas Gregor
4a69c2e6c5
Modules hide macro definitions by default, so that silly things like
...
include guards don't show up as macro definitions in every translation
unit that imports a module. Macro definitions can, however, be
exported with the intentionally-ugly #__export_macro__
directive. Implement this feature by not even bothering to serialize
non-exported macros to a module, because clients of that module need
not (should not) know that these macros even exist.
llvm-svn: 138943
2011-09-01 17:04:32 +00:00
Francois Pichet
0274487d97
Enable -fdelayed-template-parsing by default on Win32.
...
I had to force -fno-delayed-template-parsing on some Index tests because delayed template parsing will change the output of some tests.
llvm-svn: 138942
2011-09-01 16:38:08 +00:00
Rafael Espindola
5f344fff08
Fix PR10744 by adding the toolchain path to the regular program path
...
and doing a simple search. Before we would manually check for the linker
before the -B options were searched.
llvm-svn: 138941
2011-09-01 16:25:49 +00:00
Hans Wennborg
ecc25a2812
Add 4.4.6 to GccVersions[] in lib/Driver/ToolChains.cpp.
...
llvm-svn: 138940
2011-09-01 14:41:39 +00:00
Zhongxing Xu
bfb8e2fe6e
If size was equal to 0, either NULL or a pointer suitable to be passed to
...
free() is returned by realloc(). Most code expect NULL.
And we only need to transfer one final ProgramState.
llvm-svn: 138937
2011-09-01 04:53:59 +00:00
Argyrios Kyrtzidis
019f3c2444
Fix "multi-line comment" compiler error.
...
llvm-svn: 138936
2011-09-01 03:07:11 +00:00
Douglas Gregor
528499bb44
When defining the implicit move assignment operator, don't perform
...
semantic analysis when taking the address of an xvalue. Instead, just
build the unary operator directly, since it's safe to do so (from the
IRgen and AST perspectives) for any glvalue. Fixes PR10822.
llvm-svn: 138935
2011-09-01 02:09:07 +00:00
Argyrios Kyrtzidis
7d847c9fd8
Support importing of ObjC categories from modules.
...
The initial incentive was to fix a crash when PCH chaining categories
to an interface, but the fix was done in the "modules way" that I hear
is popular with the kids these days.
Each module stores the local chain of categories and we combine them
when the interface is loaded. We also warn if non-dependent modules
introduce duplicate named categories.
llvm-svn: 138926
2011-09-01 00:58:55 +00:00
Chandler Carruth
eef47ba664
Create a CaretDiagnostic class to hold the logic for emitting
...
(unsurprisingly) caret diagnostics. This is designed to bring some
organization to the monstrous EmitCaretDiagnostic function, and allow
factoring it more easily and with less mindless parameter passing.
Currently this just lifts the existing function into a method, and
splits off the obviously invariant arguments to be class members. No
functionality is changed, and there are still lots of warts to let
existing code continue functioning as-is. Definitely WIP, more cleanups
to follow.
llvm-svn: 138921
2011-08-31 23:59:23 +00:00
Chandler Carruth
153a7bb35e
Sink all of the include stack printing logic into its member function.
...
llvm-svn: 138920
2011-08-31 23:59:19 +00:00
Anna Zaks
5efad63f57
[analyzer] Revert a regression introduced in r133104(The ARC Migration Tool..) due to a merge error.
...
llvm-svn: 138919
2011-08-31 23:53:24 +00:00
Fariborz Jahanian
b93cd18a82
Test for default property synthesis.
...
llvm-svn: 138917
2011-08-31 23:32:48 +00:00
Fariborz Jahanian
97d744bea4
objective-c: this patch (re)introduces objective-c's default property
...
synthesis. This new feature is currently placed under
-fobjc-default-synthesize-properties option
and is off by default pending further testing.
It will become the default feature soon.
// rdar://8843851
llvm-svn: 138913
2011-08-31 22:24:06 +00:00
Douglas Gregor
dd8a2fe0be
Switch the "no module found" default-fatal warning to a default-fatal error.
...
llvm-svn: 138909
2011-08-31 21:52:21 +00:00
John McCall
fa6f5d6ab8
Don't assert when diagnosing a missing cast of an unknown-anytype
...
message send to an unknown method.
rdar://problem/9416370, redux.
llvm-svn: 138893
2011-08-31 20:57:36 +00:00
Chad Rosier
64707fee22
[driver] If no -miphoneos-version-min is specified on the command line *and*
...
IPHONEOS_DEPLOYMENT_TARGET if undefined, set -miphoneos-version-min based on
isysroot.
llvm-svn: 138892
2011-08-31 20:56:25 +00:00
Eli Friedman
874844123f
Make sure to initialize field. Hopefully this will fix some test failures on Windows.
...
llvm-svn: 138880
2011-08-31 18:45:31 +00:00
Chandler Carruth
f38e760777
Don't verify the name of the driver executable. It's not really relevent
...
to this test, and doesn't always start with 'clang' when fully resolved
on some build systems.
llvm-svn: 138878
2011-08-31 18:39:20 +00:00
Jordy Rose
973a8886f6
[analyzer] Fix varargs helper to only use POD types even for named arguments. Thanks, Joerg.
...
llvm-svn: 138875
2011-08-31 18:33:45 +00:00
Douglas Gregor
ca97589f7d
Switch __import__ over to __import_module__, so we don't conflict with
...
existing practice with Python extension modules. Not that Python
extension modules should be using a double-underscored identifier
anyway, but...
llvm-svn: 138870
2011-08-31 18:19:09 +00:00
Fariborz Jahanian
bd0642fede
objective-c - This patch buffers method implementations
...
and does the Sema on their body after the entire
class/category @implementation is seen. This change allows messaging
of forward private methods, as well as, access to
synthesized ivars of properties with foward synthesize
declarations; among others. In effect, this patch removes
several restrictions placed on objective-c due to in-place
semantics processing of methods.
This is part of // rdar://8843851.
llvm-svn: 138865
2011-08-31 17:37:55 +00:00
Chandler Carruth
4aa01ef19c
Update libclang to have APIs corresponding to the new 'expansion' naming
...
system for macro-backed source locations. The old APIs are preserved for
legacy users.
This was intended to land with the main work of instantiation ->
expansion, but despite running it by Doug over a month ago, I forgot to
commit it. Very sorry for that...
llvm-svn: 138860
2011-08-31 16:53:37 +00:00
Sebastian Redl
b74486312b
Serialize the new bits in CXXRecordDecl::DefinitionData.
...
llvm-svn: 138855
2011-08-31 13:59:56 +00:00
Chandler Carruth
c841b6e598
Improve the diagnostic text for -Wmissing-noreturn to include the name
...
of the function in question when applicable (that is, not for blocks).
Patch by Joerg Sonnenberger with some stylistic tweaks by me.
When discussing this weth Joerg, streaming the decl directly into the
diagnostic didn't work because we have a pointer-to-const, and the
overload doesn't accept such. In order to make my style tweaks to the
patch, I first changed the overload to accept a pointer-to-const, and
then changed the diagnostic printing layer to also use
a pointer-to-const, cleaning up a gross line of code along the way.
llvm-svn: 138854
2011-08-31 09:01:53 +00:00
Eli Friedman
3781a36238
Change err_pp_file_not_found back to an Error; when it's a Warning, we suppress it in system headers. And it is not a good idea to suppress it in system headers. (This was originally changed in r134996 to implement -MG.)
...
Fixes <rdar://10041960>. And also brings down the number of warnings without a flag by one :)
llvm-svn: 138842
2011-08-30 23:07:51 +00:00
Douglas Gregor
86325ad2b5
Allow C99 hexfloats in C++0x mode. This change resolves the standards
...
collision between C99 hexfloats and C++0x user-defined literals by
giving C99 hexfloats precedence. Also, warning about user-defined
literals that conflict with hexfloats and those that have names that
are reserved by the implementation. Fixes <rdar://problem/9940194>.
llvm-svn: 138839
2011-08-30 22:40:35 +00:00
Jeffrey Yasskin
924255875e
Fix PR10694: Boolean conversions can be from pointers, and those conversions
...
aren't considered narrowing conversions.
llvm-svn: 138838
2011-08-30 22:25:41 +00:00
Douglas Gregor
05ef93158d
When writing out the entries in a lookup table for a DeclContext, make
...
sure that all of the CXXConversionDecls go into the same
bucket. Otherwise, name lookup might not find them all. Fixes
<rdar://problem/10041960>.
llvm-svn: 138824
2011-08-30 20:49:19 +00:00
Sebastian Redl
22653bac1a
Declare and define implicit move constructor and assignment operator.
...
This makes the code duplication of implicit special member handling even worse,
but the cleanup will have to come later. For now, this works.
Follow-up with tests for explicit defaulting and enabling the __has_feature
flag to come.
llvm-svn: 138821
2011-08-30 19:58:05 +00:00
Argyrios Kyrtzidis
3a5094b18c
Remove a few mutating ObjCCategoryDecl methods.
...
Remove
-setClassInterface
-setNextClassCategory
-insertNextClassCategory
and combine them in the Create function.
llvm-svn: 138817
2011-08-30 19:43:26 +00:00
Argyrios Kyrtzidis
d3497db59b
In ASTWriter::WriteDeclContextVisibleBlock, don't write empty lookups.
...
Empty lookups can occur in the DeclContext map when we are chaining PCHs, where
the empty lookup indicates that we already looked in ExternalASTSource.
llvm-svn: 138816
2011-08-30 19:43:23 +00:00
Argyrios Kyrtzidis
342e08fbf1
Remove a couple of unnecessary objc method lookups.
...
llvm-svn: 138815
2011-08-30 19:43:21 +00:00
Argyrios Kyrtzidis
6b0cf7e5fc
[libclang] Rename some functions and make sure we don't iterate past the tokens array.
...
llvm-svn: 138813
2011-08-30 19:43:19 +00:00
Fariborz Jahanian
59b75285f6
objc - fixes a regression in declaring c decls nested in
...
objective-c containers due to recent changes to objc decl
contexts. // rdar://10041908
llvm-svn: 138803
2011-08-30 17:10:52 +00:00
Jordy Rose
b7abce9f8b
Remove obsolete ObjCInferRelatedReturnType from LangOptions...the correct option is ObjCInferRelatedResultType.
...
llvm-svn: 138793
2011-08-30 01:51:13 +00:00
John McCall
3480ef24d1
The size of struct UnwindException varies by platform with no
...
apparent general rule. Just special-case it as appropriate.
PR10789.
llvm-svn: 138792
2011-08-30 01:42:09 +00:00
John McCall
154a2fd3cb
Be sure to emit lvalue-to-rvalue casts for loads from x-values.
...
Doing this happens to disrupt the pattern that ARC was looking for
for move optimizations, so we need to fix that simultaneously.
llvm-svn: 138789
2011-08-30 00:57:29 +00:00
Douglas Gregor
cd267f7e0d
Update mingw-w64 part of the user manual, from Ruben Van Boxem!
...
llvm-svn: 138788
2011-08-30 00:40:12 +00:00
Douglas Gregor
9f05ed53fd
Fix a typo when determining whether to strip cv-qualifiers during template argument deduction
...
llvm-svn: 138787
2011-08-30 00:37:54 +00:00
Douglas Gregor
506d34a0df
Update python testcase for GNU old-style field designator warning,
...
from Anders Waldenborg!
llvm-svn: 138786
2011-08-30 00:16:30 +00:00
Douglas Gregor
7c7c068251
Add support for Cursor.displayname in python bindings, from Anders Waldenborg!
...
llvm-svn: 138785
2011-08-30 00:15:34 +00:00
John McCall
0562caaad6
Update the comment on the default-argument conversion fix; thanks to
...
Johannes Schaub for talking me around to sense.
llvm-svn: 138784
2011-08-29 23:55:37 +00:00
Caitlin Sadowski
ccdceb5aac
Thread safety: Adding a name to the thread safety diagnostic group to prevent typos
...
llvm-svn: 138783
2011-08-29 23:33:18 +00:00
Nico Weber
f926a45df5
Do not warn about [super finalize] in arc mode.
...
llvm-svn: 138776
2011-08-29 22:59:14 +00:00
Ivan Krasin
69a990badb
Clang/PNaCl: Improve test coverage for PNaClTargetInfo (type aligns), fixes nits:
...
- wrong alignment for double (it was 4, but 8 is desired),
- added checks for _REENTRANT define,
- fixed the issue that defines were not tested (because the check for inside #ifdef).
llvm-svn: 138775
2011-08-29 22:39:12 +00:00
Caitlin Sadowski
dd5fd87a6d
Thread safety: added basic handling for pt_guarded_by/var and guarded_by/var annotations. We identify situations where we are accessing (reading or writing) guarded variables, and report an error if the appropriate locks are not held.
...
llvm-svn: 138774
2011-08-29 22:27:51 +00:00
Fariborz Jahanian
abc11aa3bc
Fix a rewriter bug caused by recent changes in objc's
...
group decls.
llvm-svn: 138772
2011-08-29 22:21:46 +00:00
Eli Friedman
f8cb480528
Add missing function _mm_ucomige_sd to emmintrin.h. PR10803.
...
llvm-svn: 138769
2011-08-29 21:26:24 +00:00
Anna Zaks
50dd696339
[analyzer] MacOSKeychainAPIChecker: Simplify getSymbolForRegion by using existing API. Thanks Jordy.
...
llvm-svn: 138765
2011-08-29 21:10:00 +00:00
Anna Zaks
814adf7752
Fix: Bug 10798 - [analyzer] Crash when analyzing ICU. (A slight improvement on the previous commit.)
...
llvm-svn: 138762
2011-08-29 20:43:37 +00:00
Anna Zaks
cda129eb1c
Fix bug 10797: Crash: "cast<Ty>() argument of incompatible type!" assert when analyzing ICU.
...
Patch by Jean-Daniel Dupas. Thanks for spotting and fixing!
llvm-svn: 138757
2011-08-29 20:05:54 +00:00
Eli Friedman
d62d51c84d
Some minor updates to the Linux search path handling for Slackware. Patch by Will Dietz. PR10692.
...
llvm-svn: 138753
2011-08-29 18:56:43 +00:00
Fariborz Jahanian
4327b32654
Minor clean up of objc's decl context stuff.
...
No change in functionality.
llvm-svn: 138742
2011-08-29 17:33:12 +00:00
Douglas Gregor
26858b7e10
Add and document __has_feature values for the remaining C++0x
...
features, so clients can check for the availability of these features
even before we get around to implementing them.
llvm-svn: 138741
2011-08-29 17:28:38 +00:00
Caitlin Sadowski
293d24a5ba
Thread safety: various minor bugfixes, with test cases
...
This patch is by DeLesley Hutchins.
llvm-svn: 138738
2011-08-29 17:12:27 +00:00
Matt Beaumont-Gay
d6238f4717
Fix type mismatch in initialization (caught by -Wliteral-conversion)
...
llvm-svn: 138736
2011-08-29 16:37:29 +00:00
Jeffrey Yasskin
74231381a3
Print 'int' instead of 'const int' in the narrowing conversion error, since the
...
qualification of a type doesn't affect whether a conversion is a narrowing
conversion.
This doesn't work in template cases because SubstTemplateTypeParmType gets in
the way.
llvm-svn: 138735
2011-08-29 15:59:37 +00:00
Nico Weber
1fb82667dd
Warn on missing [super finalize] calls.
...
This matches gcc's logic. Second half of PR10661.
llvm-svn: 138730
2011-08-28 22:35:17 +00:00
Jordy Rose
7881affdbf
[analyzer] Header cleanup to decrease coupling (and recompilation). No functionality change.
...
llvm-svn: 138729
2011-08-28 19:45:32 +00:00
Jordy Rose
58a20d31b7
[analyzer] Introduce a new callback for checkers, printState, to be used for debug-printing the contents of a ProgramState.
...
Unlike the other callbacks, this one is a simple virtual method, since it is only to be used for debugging.
This new callback replaces the old ProgramState::Printer interface, and allows us to move the printing of refcount bindings from CFRefCount to RetainReleaseChecker.
llvm-svn: 138728
2011-08-28 19:11:56 +00:00
Nico Weber
5d8f912f50
[analyzer] update bug report url
...
llvm-svn: 138721
2011-08-28 11:50:56 +00:00
Jordy Rose
e9ff97b850
[analyzer] Remove the ProgramState argument from ExprEngine::evalBind; we were ignoring it anyway. No functionality change.
...
llvm-svn: 138720
2011-08-28 06:02:28 +00:00
Jordy Rose
d26e9e7f7c
[analyzer] Eliminate almost all uses of TransferFuncs from ExprEngine.
...
llvm-svn: 138719
2011-08-28 05:54:23 +00:00
Jordy Rose
d188d66e69
[analyzer] Migrate argument invalidation from CFRefCount to ExprEngine.
...
This is a common path for function and C++ method calls, Objective-C messages and property accesses, and C++ construct-exprs.
As support, add message receiver accessors to ObjCMessage and CallOrObjCMessage.
llvm-svn: 138718
2011-08-28 05:16:28 +00:00
Jordy Rose
1fad663126
[analyzer] Change the check::RegionChanges callback to include the regions explicitly requested for invalidation.
...
Also, allow CallOrObjCMessage to wrap a CXXConstructExpr as well.
Finally, this allows us to remove the clunky whitelisting system from CFRefCount/RetainReleaseChecker. Slight regression due to CXXNewExprs not yet being handled in post-statement callbacks (PR forthcoming).
llvm-svn: 138716
2011-08-27 22:51:26 +00:00
John McCall
4bb057d321
Disable the l-value to r-value conversion on C++ class types passed
...
to varargs functions in unevaluated contexts. AFAICT, there is no
standards justification for this, but it matches what other compilers do
and therefore preserves compatibility with certain template metaprogramming
idioms.
Should fix self-host.
llvm-svn: 138715
2011-08-27 22:06:17 +00:00
Fariborz Jahanian
83aa8ab3ae
objective-c - Make warning on unimplemented protocols point
...
to class implementation where it is supposed to be
implemented. // rdar://10009982.
llvm-svn: 138714
2011-08-27 21:55:47 +00:00
Ted Kremenek
996bfab499
[analyzer] Rename current PathDiagnosticClient::HandlePathDiagnostic() to HandlePathDiagnosticImpl(), and slot in new HandlePathDiagnostic() for potentially handling concurrent access to PathDiagnosticClients (in the future).
...
llvm-svn: 138713
2011-08-27 21:39:14 +00:00
Ted Kremenek
60120fb1b1
[analyzer] Pull body of loop in AnalysisConsumer::HandleDeclContext() into its own method. No real functionality change.
...
llvm-svn: 138712
2011-08-27 21:28:09 +00:00
Ted Kremenek
6eb83cfacd
[analyzer] Add test case for handling of __bridge_transfer that previously resulted in a 'stack address' warning (that was fixed in r138616). Fixes <rdar://problem/10018376>.
...
llvm-svn: 138710
2011-08-27 21:15:48 +00:00
Fariborz Jahanian
3a039e339f
objective-c: Treat top-level objective-c declarations
...
, such as list of forward @class decls, in a DeclGroup
node. Deal with its consequence throught clang. This
is in preparation for more Sema work ahead. // rdar://8843851.
Feel free to reverse if it breaks something important
and I am unavailable.
llvm-svn: 138709
2011-08-27 20:50:59 +00:00
Benjamin Kramer
1174675c7b
Remove unused variables noticed by GCC.
...
llvm-svn: 138707
2011-08-27 17:54:32 +00:00
Douglas Gregor
d90c3c92d5
Take an entirely different approach to handling the "parsing" of
...
__import__ within the preprocessor, since the prior one foolishly
assumed that Preprocessor::Lex() was re-entrant. We now handle
__import__ at the top level (only), after macro expansion. This should
fix the buildbot failures.
llvm-svn: 138704
2011-08-27 06:37:51 +00:00
Argyrios Kyrtzidis
bd0a6019a2
[arcmt] Xfail the test for windows.
...
llvm-svn: 138696
2011-08-27 03:38:05 +00:00
John McCall
29ad95b232
The lvalue-to-rvalue on structs in C++ is actually part
...
of default argument promotion and needs to happen unconditionally.
This is particularly semantically important in C++0x.
llvm-svn: 138691
2011-08-27 01:09:30 +00:00
Benjamin Kramer
79cfba180a
Twinify.
...
llvm-svn: 138689
2011-08-27 00:34:29 +00:00
Douglas Gregor
e89397ac1e
XFAIL one of the module tests on win32, until we figure out what's happening
...
llvm-svn: 138688
2011-08-27 00:29:32 +00:00
Douglas Gregor
472f85d86b
In C++0x mode, suggest nullptr as the initializer for an uninitialized
...
pointer variable. Patch by David Blaikie!
llvm-svn: 138687
2011-08-27 00:18:50 +00:00
Ted Kremenek
183875f671
Control 'invalid conversion specifier' warnings under a subflag (-Wformat-invalid-specifier) of -Wformat. Fixes <rdar://problem/10031930>.
...
llvm-svn: 138686
2011-08-27 00:16:45 +00:00
Douglas Gregor
afeabec7e1
Improve caret location for the GNU old-style field designator warning, from David Blaikie
...
llvm-svn: 138684
2011-08-27 00:13:16 +00:00
Douglas Gregor
be861783d2
Silence a GCC warning
...
llvm-svn: 138683
2011-08-27 00:10:53 +00:00
Douglas Gregor
c67bcd5b65
Remove the -import-module option. It's no longer useful
...
llvm-svn: 138681
2011-08-27 00:03:05 +00:00
Douglas Gregor
5be7a1c818
Try to unbreak the build on systems where uint64_t isn't something that StringRef::getAsInteger can handle as its second argument
...
llvm-svn: 138680
2011-08-26 23:57:29 +00:00
Douglas Gregor
081425343b
Introduce support for a simple module import declaration, which
...
loads the named module. The syntax itself is intentionally hideous and
will be replaced at some later point with something more
palatable. For now, we're focusing on the semantics:
- Module imports are handled first by the preprocessor (to get macro
definitions) and then the same tokens are also handled by the parser
(to get declarations). If both happen (as in normal compilation),
the second one is redundant, because we currently have no way to
hide macros or declarations when loading a module. Chris gets credit
for this mad-but-workable scheme.
- The Preprocessor now holds on to a reference to a module loader,
which is responsible for loading named modules. CompilerInstance is
the only important module loader: it now knows how to create and
wire up an AST reader on demand to actually perform the module load.
- We search for modules in the include path, using the module name
with the suffix ".pcm" (precompiled module) for the file name. This
is a temporary hack; we hope to improve the situation in the
future.
llvm-svn: 138679
2011-08-26 23:56:07 +00:00
Argyrios Kyrtzidis
1045430525
[arcmt] Add a test case for r138671 and improve the loop.
...
llvm-svn: 138674
2011-08-26 23:20:23 +00:00
Andrew Trick
3df2824c59
FreeBSD (apparently) does not support crash-recovery tests.
...
These tests have been failing since the beginning of buildbot time:
crash-recovery-code-complete.c
crash-recovery-reparse.c
crash-recovery.c
llvm-svn: 138672
2011-08-26 22:46:31 +00:00
Argyrios Kyrtzidis
3da6bc16bb
[arcmt] Fix horrible bug where migrating files if there is a space in the paths
...
of the migrated files. rdar://10022801
llvm-svn: 138671
2011-08-26 22:40:55 +00:00
Chad Rosier
97c373793b
Cleanup r138662 per Ben and David's suggestions, thanks.
...
llvm-svn: 138670
2011-08-26 22:27:02 +00:00
Douglas Gregor
4e4c83e995
Teach the ASTReader how to avoid cycles when loading declarations that
...
are lexically within a particular DeclContext. Test forthcoming.
llvm-svn: 138668
2011-08-26 22:04:51 +00:00
Chad Rosier
f0be551d68
Make sure the std::string isn't deallocated prior to use. Many thanks to Eli
...
for catching this.
llvm-svn: 138666
2011-08-26 21:47:20 +00:00
Chad Rosier
39ab743e59
[driver] When generating temporary files allow a prefix to be added. In many
...
cases we want the prefix to be the original file name less the suffix. For an
input such as test.c to named temporary would be something like test-3O4Clq.o
Part of <rdar://problem/8314451>
llvm-svn: 138662
2011-08-26 21:28:44 +00:00
Douglas Gregor
f337ae9477
When we're deserializing declarations lexically stored in a RecordDecl
...
after having already deserialized the fields, clear out the fields
first. This makes sure that we keep all of the declarations in the
lexical context (including those implicitly added by later
type-checking) within the same list. A test case for this behavior is
coming as part of another commit; testing for this problem in
isolation is a nightmare.
llvm-svn: 138661
2011-08-26 21:23:06 +00:00
Fariborz Jahanian
97b6ac5407
objc-arc: Mention property's attribute by name when
...
finding life-time conflict with its declared ivar.
// rdar://10007230
llvm-svn: 138659
2011-08-26 21:21:19 +00:00
John McCall
17054bd670
Slight optimization enabled by the previous assert:
...
emit all gl-value arguments as reference bindings.
llvm-svn: 138655
2011-08-26 21:08:13 +00:00
Jordy Rose
256a6dd13b
[analyzer] Remove a couple of unnecessary returns after llvm_unreachables.
...
llvm-svn: 138649
2011-08-26 20:32:01 +00:00
Eli Friedman
755c0c996a
Don't assert on taking the address of a non-type template parameter. Fixes PR10766.
...
llvm-svn: 138648
2011-08-26 20:28:17 +00:00
Eli Friedman
79b2d3a4d4
Make sure we don't crash printing builtin candidates for overloads of deleted operators. Fixes PR10757.
...
llvm-svn: 138645
2011-08-26 19:46:22 +00:00
John McCall
0a76c0cf68
Assert that a call argument is a gl-value iff the parameter is a reference type.
...
llvm-svn: 138639
2011-08-26 18:42:59 +00:00
John McCall
1cd60a2670
In -Wno-error=non-pod-varargs, initialize a temporary with
...
the crazy comma expression so that we get an r-value in the
varargs position.
llvm-svn: 138638
2011-08-26 18:41:18 +00:00
Chad Rosier
f29d9aa5f5
[driver] Remove a few more options when clang invokes cc1plus for i386 kexts.
...
<rdar://problem/10027287>
llvm-svn: 138637
2011-08-26 18:30:43 +00:00
Axel Naumann
cb2c52f7ac
From Vassil Vassilev: unnamed decls cannot be removed from the lookup map.
...
llvm-svn: 138631
2011-08-26 14:06:12 +00:00
John McCall
cac93853ae
What say we document some of these AggValueSlot flags a bit
...
better.
llvm-svn: 138628
2011-08-26 08:02:37 +00:00
John McCall
46759f4f46
Since the 'is aliased' bit is critical for correctness in C++, it
...
really shouldn't be optional. Fix the remaining place where a
temporary was being passed as potentially-aliased memory.
Fixes PR10756.
llvm-svn: 138627
2011-08-26 07:31:35 +00:00
John McCall
a8a39bc346
An initialization does not alias.
...
llvm-svn: 138624
2011-08-26 05:38:08 +00:00
Chad Rosier
aedf7d5f4e
Take 2: Actually fix spacing.
...
llvm-svn: 138617
2011-08-26 00:49:52 +00:00
John McCall
eb07554d9c
Be sure to do unary conversions on the operand to an ARC
...
bridged cast. Noticed by AST inspection by Ted Kremenek!
llvm-svn: 138616
2011-08-26 00:48:42 +00:00
John McCall
35e4f0cd0f
The allocated exception slot does not alias anything; should fix self-host.
...
llvm-svn: 138615
2011-08-26 00:46:38 +00:00
Chad Rosier
3b561ebd44
80-column.
...
llvm-svn: 138614
2011-08-26 00:44:04 +00:00
Jeffrey Yasskin
0e9cdbbb06
Handle CXXTempObjectRegion in StackAddrEscapeChecker.
...
Also convert stack-addr-ps.cpp to use the analyzer instead of just Sema, now
that it doesn't crash, and extract the stack-block test into another file since
it errors, and that prevents the analyzer from running.
llvm-svn: 138613
2011-08-26 00:41:31 +00:00
Chad Rosier
ba3df1d3ca
[driver] Add -mglobal-merge/-mno-global-merge machine options to enable/disable merging of
...
globals during codegen.
Fixes <rdar://problem/10017909>.
llvm-svn: 138612
2011-08-26 00:26:29 +00:00
Francois Pichet
35bc5de3bd
revert 138610, accidental commit.
...
llvm-svn: 138611
2011-08-26 00:22:34 +00:00
Francois Pichet
9a98454a7d
(no commit message)
...
llvm-svn: 138610
2011-08-26 00:18:13 +00:00
Jordy Rose
9942fe7c87
[analyzer] Increase the number of possible checks for a checker.
...
llvm-svn: 138609
2011-08-26 00:08:00 +00:00
Ivan Krasin
9b2cbdfcff
PNaClTargetInfo: add __ELF__, _REENTRANT and _GNU_SOURCE defines and update the test
...
llvm-svn: 138607
2011-08-25 23:49:20 +00:00
Matt Beaumont-Gay
045bde420b
Fix a crash-on-invalid.
...
Much to everyone's surprise, the default constructor for TypeResult produces
an instance with Invalid == false. This seems like a decision we may want to
revisit.
llvm-svn: 138601
2011-08-25 23:22:24 +00:00
John McCall
a5efa7386a
Track whether an AggValueSlot is potentially aliased, and do not
...
emit call results into potentially aliased slots. This allows us
to properly mark indirect return slots as noalias, at the cost
of requiring an extra memcpy when assigning an aggregate call
result into a l-value. It also brings us into compliance with
the x86-64 ABI.
llvm-svn: 138599
2011-08-25 23:04:34 +00:00
Fariborz Jahanian
5cc730cdef
Don't warn on category implementing a method, if
...
declated method in the class belongs to a synthesized
property getter/setter. // rdar://10014946
llvm-svn: 138598
2011-08-25 22:58:42 +00:00
Douglas Gregor
2ed0ee1ace
Eliminate the -chained-pch flag and all of the frontend and libclang options associated with it. Chained PCH is the only way to build a PCH file that includes another PCH file
...
llvm-svn: 138597
2011-08-25 22:54:01 +00:00
Douglas Gregor
36db4f9602
Remove the Chaining argument from the PCH/module generator. It's no longer used
...
llvm-svn: 138596
2011-08-25 22:35:51 +00:00
Douglas Gregor
69f74f80db
Introduce a -cc1 option "-emit-module", that creates a binary module
...
from the given source. -emit-module behaves similarly to -emit-pch,
except that Sema is somewhat more strict about the contents of
-emit-module. In the future, there are likely to be more interesting
differences.
llvm-svn: 138595
2011-08-25 22:30:56 +00:00
Fariborz Jahanian
371376010f
objc - fix a bug exposed by my recent decl context
...
changes. // rdar://10015110
llvm-svn: 138594
2011-08-25 22:26:53 +00:00
Argyrios Kyrtzidis
440f954d6f
[libclang] Fix getting a cursor that points inside tag definition that is part
...
of a type specifier.
e.g. for:
typedef struct _MyS {
int foo;
} MyS;
pointing at field 'foo' would give a cursor for the typedef declaration 'MyS'
instead of the field.
llvm-svn: 138593
2011-08-25 22:24:47 +00:00
Douglas Gregor
d09937fde0
Clean up the reloading of identifier information following the load of
...
a top-level module. This code is still horrible and should go away,
but we're not there yet.
llvm-svn: 138586
2011-08-25 21:19:59 +00:00
Douglas Gregor
a918babff4
Preload source location entries as soon as we've loaded a particular
...
AST file, rather than waiting until we finish loading the top-level
AST file.
llvm-svn: 138585
2011-08-25 21:09:44 +00:00
Fariborz Jahanian
d8114f7560
Reverse r138567 until a buildbot failure is investigated.
...
llvm-svn: 138584
2011-08-25 21:09:22 +00:00
Douglas Gregor
2fdb6b5391
Move file validation in the ASTReader from "top of chain" validation
...
to "when loading a particular module" validation, since it was only
validating local information anyway. This shouldn't change anything.
llvm-svn: 138583
2011-08-25 20:58:51 +00:00
Douglas Gregor
d44252ec03
Factor the Module and ModuleManager classes out into separate headers
...
and .cpp files, since ASTReader.cpp was getting way too large. No
functionality change.
llvm-svn: 138582
2011-08-25 20:47:51 +00:00
John McCall
8d6fc9583d
Use stronger typing for the flags on AggValueSlot and require
...
creators to tell us whether something needs GC barriers.
No functionality change.
llvm-svn: 138581
2011-08-25 20:40:09 +00:00
Argyrios Kyrtzidis
7aecbc7661
Make Lexer::ComputePreamble accept a LangOptions parameter, otherwise it may be
...
out-of-sync how a file is compiled. Patch by Matthias Kleine!
llvm-svn: 138580
2011-08-25 20:39:19 +00:00
Chad Rosier
9c286cce2e
80-column and spacing.
...
llvm-svn: 138578
2011-08-25 20:17:19 +00:00
Ted Kremenek
1b7f49c2d6
Teach -Wunreachable-code about dead code caused by macro expansions. This should suppress false positives resulting from 'assert' and friends.
...
llvm-svn: 138576
2011-08-25 19:28:55 +00:00
Douglas Gregor
69e9464340
Switch ASTReader::GetHeaderFileInfo() from a walk over the module
...
chain to a proper search.
llvm-svn: 138574
2011-08-25 18:14:34 +00:00
Douglas Gregor
14f771695a
Switch the forward walk through the module chain over to a depth-first
...
search in ASTReader::ReadPreprocessedEntities().
llvm-svn: 138572
2011-08-25 18:03:05 +00:00
Fariborz Jahanian
35d0e66bee
Fixes a typo in my last patch.
...
llvm-svn: 138571
2011-08-25 18:01:27 +00:00
Fariborz Jahanian
73d5f67f5a
objc -arse: Use DeclGroup for forward class declarations;
...
as in @class foo, bar. More cleanup to follow.
llvm-svn: 138567
2011-08-25 17:47:31 +00:00
Chad Rosier
160276dc93
[driver] Do not add -kext to the link command line when compiling with
...
-fapple-kext.
Fixes <rdar://problem/10013310>. Reverts <rdar://problem/7809940>.
llvm-svn: 138564
2011-08-25 17:33:03 +00:00
Douglas Gregor
aa7cbfd259
Remove a bogus assertion from the AST reader, which assumed that
...
redeclarations of a particular entity would occur in source
order. Friend declarations that occur within class templates (or
member classes thereof) do not follow this, nor would modules. Big
thanks to Erik Verbruggen for reducing this problem from the Very
Large Qt preamble testcase he found.
llvm-svn: 138557
2011-08-25 15:28:26 +00:00
Douglas Gregor
c10edd6dd0
Use the module manager's search facility to look for methods with a
...
given selector, rather than walking the chain backwards. Teach its
visitor how to merge multiple result sets into a single result set,
combining the results of selector lookup in several different modules
into a single result set.
llvm-svn: 138556
2011-08-25 14:51:20 +00:00
Jordy Rose
15484daafe
[analyzer] Move the leak bugs from CFRefCount to RetainReleaseChecker, with a level of indirection to handle GC vs. non-GC.
...
llvm-svn: 138538
2011-08-25 01:14:38 +00:00
Anna Zaks
5be8a4d104
[analyzer] MacOSKeychainAPIChecker: Cleanup AllocationState structure.
...
llvm-svn: 138535
2011-08-25 00:59:06 +00:00
Francois Pichet
f2fb411d4a
Add support for Microsoft __ptr32 keyword.
...
Patch by Chris Cudmore!
llvm-svn: 138533
2011-08-25 00:36:46 +00:00
Jordy Rose
4ba0ba42e2
[analyzer] Move the easy bug types from CFRefCount to RetainReleaseChecker.
...
(These bug types may have just been leaked before...!)
llvm-svn: 138532
2011-08-25 00:34:03 +00:00
Anna Zaks
85913db489
[analyzer] MacOSKeychainAPIChecker: Add the custom BugReport visitor(which highlights the allocation site) to all the relevant reports within the checker.
...
llvm-svn: 138531
2011-08-25 00:32:42 +00:00
Jordy Rose
8b289a2cbd
[analyzer] Move the RetainSummaryManager from CFRefCount to RetainReleaseChecker.
...
Because Checkers live for an entire translation unit, this persists summary caches across multiple code bodies and avoids repeated initialization (but probably at the cost of memory). This removes the last references from RetainReleaseChecker to CFRefCount.
llvm-svn: 138529
2011-08-25 00:10:37 +00:00
Fariborz Jahanian
5c4b2ca699
blocks - capturing logic of byref block variable's expression
...
statement initializer makes safe assumption when a substatement
is encounterred (with a fix me).
llvm-svn: 138528
2011-08-25 00:06:26 +00:00
Jordy Rose
a4c41bb875
[analyzer] Better fix for the "missing return" error, from Ted.
...
llvm-svn: 138526
2011-08-24 23:41:46 +00:00
Jordy Rose
34a83e911f
[analyzer] Silence another incorrect warning ("control reaches end of non-void function")
...
llvm-svn: 138510
2011-08-24 22:58:49 +00:00
Jordy Rose
763982b82d
[analyzer] Remove experimental FIXME that never actually applied to the code in trunk.
...
llvm-svn: 138508
2011-08-24 22:45:12 +00:00
Jordy Rose
184bd1430b
[analyzer] CFRefReport and friends no longer depend on CFRefCount.
...
llvm-svn: 138506
2011-08-24 22:39:09 +00:00
Douglas Gregor
754ff8b622
Remove long-dead FIXME
...
llvm-svn: 138498
2011-08-24 22:09:40 +00:00
Anna Zaks
f880cff209
[analyzer] Do not use references in std::pair.
...
llvm-svn: 138497
2011-08-24 21:58:55 +00:00
Douglas Gregor
a3e59b49e7
Don't force the complete deserialization of the visible-declarations
...
table when serializing an AST file. This was a holdover from the days
before chained PCH, and is a complete waste of time and storage
now. It's a good thing it's useless, because I have no idea how I
would have implemented MaterializeVisibleDecls efficiently in the
presence of modules.
llvm-svn: 138496
2011-08-24 21:56:08 +00:00
Anna Zaks
0d67579497
[analyzer] Unbreak the release buildbot.
...
llvm-svn: 138493
2011-08-24 21:40:10 +00:00
Douglas Gregor
1257f97003
Introduce a depth-first search of modules into the module manager,
...
which supports both pre-order and post-order traversal via a visitor
mechanism. Use this depth-first search with a post-order traversal to
give predictable ordering semantics when walking all of the lexical
declarations in the translation unit.
Eventually, module imports will occur in the source code rather than
at the beginning, and we'll have to revisit this walk.
llvm-svn: 138490
2011-08-24 21:27:34 +00:00
Ivan Krasin
7a09d12242
Follow up to r138470 (Add PNaCl TargetInfo). I've occasionally submitted wrong patch.
...
llvm-svn: 138489
2011-08-24 21:22:25 +00:00
Anna Zaks
be460898bb
[analyzer] MacOSKeychainAPIChecker: Provide reacher diagnostic trace by pointing to the allocation site when reporting a leak.
...
llvm-svn: 138479
2011-08-24 20:52:46 +00:00
Jordy Rose
9ff0299935
[analyzer] Silence an (incorrect) uninitialized variable warning, caught by Cameron.
...
llvm-svn: 138477
2011-08-24 20:38:42 +00:00
Jordy Rose
38eea65acd
[analyzer] Copy GC mode setting from CFRefCount to RetainReleaseChecker in preparation for getting rid of CFRefCount.
...
This is a little hacky for now but will get better once we decide the best way to handle this.
llvm-svn: 138476
2011-08-24 20:33:55 +00:00
Argyrios Kyrtzidis
b87ea9871d
Silence 'may be used uninitialized' warnings.
...
llvm-svn: 138475
2011-08-24 20:33:05 +00:00
Anna Zaks
45aa208554
[analyzer] Allow checker writes to specify that no region should be accosiated with the report. (Useful when we report an error on endOfPath or deadSymbols, when the range of the last expression might have nothing to do with the error.)
...
llvm-svn: 138474
2011-08-24 20:31:06 +00:00
Ivan Krasin
dd7403e612
Add PNaCl TargetInfo.
...
llvm-svn: 138470
2011-08-24 20:22:22 +00:00
Jordy Rose
e8743a7499
[analyzer] Remove unused DoNothingByRef and the special case for CFDictionaryCreate.
...
This is a very small regression (actually introduced in r138309) because it won't catch leaks of objects passed by reference to CFDictionaryCreate (they're considered to have escaped and are ignored). If this is important we can put in a specific eval::Call to restore the functionality.
llvm-svn: 138464
2011-08-24 19:10:50 +00:00
Douglas Gregor
94619c81fc
In the AST reader, switch name lookup within a DeclContect over to the
...
module DAG-based lookup scheme. This required some reshuffling, so
that each module stores its own mapping from DeclContexts to their
lexical and visible sets for those DeclContexts (rather than one big
"chain").
Overall, this allows simple qualified name lookup into the translation
unit to gather results from multiple modules, with the lookup results
in module B shadowing the lookup results in module A when B imports A.
Walking all of the lexical declarations in a module DAG is still a
mess; we'll end up walking the loaded module list backwards, which
works fine for chained PCH but doesn't make sense in a DAG. I'll
tackle this issue as a separate commit.
llvm-svn: 138463
2011-08-24 19:03:07 +00:00
Jordy Rose
5df640dc33
[analyzer] Slightly clean up the fix in 138432, so that it doesn't depend on the relative ordering of path-sensitive and path-insensitive checks. Still not ideal, but I think a real fix would require infrastructure that doesn't exist yet.
...
llvm-svn: 138462
2011-08-24 18:56:32 +00:00
Caitlin Sadowski
726003e79d
Thread safety: Fix a few typos in last commit -- use LockID instead of Lock in comments and start a couple methods with a lowercase letter
...
llvm-svn: 138460
2011-08-24 18:46:20 +00:00
Evan Cheng
494eb062b5
Match LLVM change: TargetRegistry and TargetSelect have been moved to Support.
...
llvm-svn: 138451
2011-08-24 18:09:14 +00:00
Axel Naumann
744f121e5b
Reset FirstID (first diagnostic's file ID) to allow for invocations of the VerifyDiagnosticsClient on several input files.
...
llvm-svn: 138434
2011-08-24 13:36:19 +00:00
Jordy Rose
95589f13ff
[analyzer] Fix a Heisenbug concerning object lifetimes with a hack. Hopefully a better fix coming soon. See comment for more details.
...
llvm-svn: 138432
2011-08-24 09:27:24 +00:00
Jordy Rose
58428b914d
[analyzer] Reapply 138390 "Clean up unused bits of CFRefCount", reverted in 138405. Ended up unrelated to any problems.
...
llvm-svn: 138431
2011-08-24 09:22:31 +00:00
Jordy Rose
14de7c5a88
[analyzer] Fix potential crasher with RAII. No functionality change. (No test because this particular circumstance requires an impossible series of events, but this is future-proofing.)
...
llvm-svn: 138430
2011-08-24 09:02:37 +00:00
Jordy Rose
7a53498f20
[analyzer] Reapply 138382 and 138388 (reverted in 138419 and 138420). The issue seems to have been with the uninitialized variable fixed in 138424; a fix for another Heisencrasher coming soon.
...
llvm-svn: 138426
2011-08-24 05:47:39 +00:00
Jordy Rose
03a8f9e578
[analyzer] Correctly initialize a variable and hopefully fix crashes.
...
llvm-svn: 138424
2011-08-24 04:48:19 +00:00
Bruno Cardoso Lopes
fbb8b84f5f
Add testcase for r138411
...
llvm-svn: 138422
2011-08-24 01:35:04 +00:00
Eric Christopher
aa8b6a5cf4
Revert "[analyzer] Cleanup: Move temporary declarations of CFRefCount variables closer to their uses. No functionality change."
...
This reverts commit d02b4af7bd6ca4a743c7074d64e205d718aa221d.
llvm-svn: 138420
2011-08-24 00:39:51 +00:00
Eric Christopher
1825e7a260
Revert "[analyzer] Make CFRefBug and CFRefReportVisitor not dependent on CFRefCount. Unfortunately, CFRefReport still is. No functionality change."
...
This reverts commit e3fb7e428b7ba0d5d902dfe3f165d70e09b03a15.
llvm-svn: 138419
2011-08-24 00:39:48 +00:00
Eric Christopher
b58b3e879d
Make constant aggregate constant initializers private linkage.
...
After talking with John making this the case for all of these is
the right way to go.
Fixes rdar://9804564 and PR10414
llvm-svn: 138418
2011-08-24 00:33:55 +00:00
Anna Zaks
0897a23517
[analyzer] MacOSKeychainAPIChecker: Add reasoning about functions which MIGHT deallocate the memory region allocated with SecKeychain APIs. Specifically, when the buffer is passed to CFStringCreateWithBytesNoCopy along with a custom deallocator, which might potentially correctly release the memory.
...
llvm-svn: 138417
2011-08-24 00:06:27 +00:00
Anna Zaks
f9e9c4e9bc
[analyzer] MacOSKeychainAPIChecker: Retrieve the memory region which we are tracking even when it's no longer a SymbolicRegion, for example, when it is cast to char*.
...
llvm-svn: 138415
2011-08-23 23:56:12 +00:00
Anna Zaks
bb167011e3
Move creation of the deallocation mismatch report into a separate function for future reuse.
...
llvm-svn: 138414
2011-08-23 23:47:36 +00:00
Eric Christopher
d28d107099
Whitespace and 80-col cleanup.
...
llvm-svn: 138413
2011-08-23 23:44:09 +00:00
Fariborz Jahanian
73952fc263
objc - fix up the builtin type for objc_assign_ivar.
...
// rdar://9362887.
llvm-svn: 138412
2011-08-23 23:33:09 +00:00
Bruno Cardoso Lopes
7a98a7e681
Fix _mm256_shuffle_ps mask! Example, for mask=203, Instead of:
...
<i32 3, i32 2, i32 8, i32 11, i32 3, i32 6, i32 12, i32 15>
generate:
<i32 3, i32 2, i32 8, i32 11, i32 7, i32 6, i32 12, i32 15>
llvm-svn: 138411
2011-08-23 23:29:45 +00:00
Ted Kremenek
bd91371381
Start reworking -Wunreachable-code. The original analysis had serious flaws with how it
...
handled SCC's of dead code, or simply having false negatives by overly suppressing warnings.
WIP.
llvm-svn: 138410
2011-08-23 23:05:11 +00:00
Ted Kremenek
6b9964d237
CFG: record set of C++ 'try' dispatch blocks, which could be of interest to various analyses (e.g., reachability).
...
llvm-svn: 138409
2011-08-23 23:05:07 +00:00
Ted Kremenek
adfb445466
Constify the result of CFGStmt::getStmt().
...
llvm-svn: 138408
2011-08-23 23:05:04 +00:00
Ted Kremenek
4183a62a53
Add 'const' version of CompoundStmt::children().
...
llvm-svn: 138407
2011-08-23 23:05:01 +00:00
Eric Christopher
fba570c9d8
Revert "[analyzer] Clean up unused bits of CFRefCount."
...
This reverts commit 6886a92640f5bffc972f67c0a1f302d6c6e7c322.
llvm-svn: 138405
2011-08-23 22:38:04 +00:00
Eric Christopher
31ab13047d
Whitespace.
...
llvm-svn: 138404
2011-08-23 22:38:00 +00:00
Eli Friedman
3fa64df543
Refactor and fix checking for initialization of flexible array members. The old version had the checks scattered across the code, missed some checks, and had a couple nasty bugs in existing checks.
...
Fixes PR10648 and another similar accepts-invalid bug.
llvm-svn: 138398
2011-08-23 22:24:57 +00:00
Jordy Rose
5aa9b1dd3f
[analyzer] Clean up unused bits of CFRefCount.
...
llvm-svn: 138390
2011-08-23 21:51:36 +00:00
Eric Christopher
c3fc262423
Right now this requires asserts.
...
llvm-svn: 138389
2011-08-23 21:47:58 +00:00
Jordy Rose
908426aae4
[analyzer] Make CFRefBug and CFRefReportVisitor not dependent on CFRefCount. Unfortunately, CFRefReport still is. No functionality change.
...
llvm-svn: 138388
2011-08-23 21:47:17 +00:00
Jordy Rose
fd13f6f56a
[analyzer] Cleanup: Move temporary declarations of CFRefCount variables closer to their uses. No functionality change.
...
llvm-svn: 138382
2011-08-23 21:06:32 +00:00
Argyrios Kyrtzidis
18c88a96eb
Remove one SourceManager::isInFileID overload and use isOffsetInFileID for the other.
...
llvm-svn: 138381
2011-08-23 21:02:45 +00:00
Argyrios Kyrtzidis
2797df6a24
Amend r138129 (reduction of SLocEntries) which introduced performance regression due
...
to increased calls to SourceManager::getFileID. (rdar://9992664)
Use a slightly different approach that is more efficient both in terms of speed
(no extra getFileID calls) and in SLocEntries reduction.
Comparing pre-r138129 and this patch we get:
For compiling SemaExpr.cpp reduction of SLocEntries by 26%.
For the boost enum library:
-SLocEntries -34% (note that this was -5% for r138129)
-Memory consumption -50%
-PCH size -31%
Reduced SLocEntries also benefit the hot function SourceManager::getFileID,
evident by the reduced "FileID scans".
llvm-svn: 138380
2011-08-23 21:02:41 +00:00
Argyrios Kyrtzidis
e7f7516148
Introduce SourceManager::isInSLocAddrSpace and use it in TokenLexer instead of isInFileID
...
since it is a bit more efficient.
llvm-svn: 138379
2011-08-23 21:02:38 +00:00
Argyrios Kyrtzidis
5451a3973b
Rename SourceManager::isBeforeInSourceLocationOffset -> isBeforeInSLocAddrSpace.
...
llvm-svn: 138378
2011-08-23 21:02:35 +00:00
Argyrios Kyrtzidis
7a7ff681ee
TokenLexer::getExpansionLocForMacroDefLoc doesn't need to return an invalid SourceLocation.
...
llvm-svn: 138377
2011-08-23 21:02:32 +00:00
Argyrios Kyrtzidis
f6a3b0ca4b
In Lexer::isAtEndOfMacroExpansion use SourceManager::isInFileID and avoid
...
the extra SourceManager::getFileID call.
llvm-svn: 138376
2011-08-23 21:02:30 +00:00
Argyrios Kyrtzidis
296374b501
Move a couple of SourceManager functions out-of-line; no functionality change.
...
llvm-svn: 138375
2011-08-23 21:02:28 +00:00
Jordy Rose
20d4e68195
[analyzer] Move function retain-count effect summary log from CFRefCount to RetainReleaseChecker, and then explicitly provide the summary log when creating CFRefReports. No functionality change.
...
llvm-svn: 138374
2011-08-23 20:55:48 +00:00
Ted Kremenek
ee9848e20d
Fix regression in -Wuninitialized involving VLAs. It turns out that we were modeling sizeof(VLAs)
...
incorrectly in the CFG, and also the static analyzer. This patch regresses the analyzer a bit, but
that needs to be followed up with a better solution.
Fixes <rdar://problem/10008112>.
llvm-svn: 138372
2011-08-23 20:30:50 +00:00
Jordy Rose
bf77e51fa1
[analyzer] Move helper method Update from CFRefCount to RetainReleaseChecker. No functionality change.
...
llvm-svn: 138370
2011-08-23 20:27:16 +00:00
Eli Friedman
750a5916af
Cleanup to use helper.
...
llvm-svn: 138369
2011-08-23 20:22:34 +00:00
Eli Friedman
c616c5ff1a
Remove function parameter which always used the default value.
...
llvm-svn: 138368
2011-08-23 20:17:13 +00:00
Jordy Rose
6763e38736
[analyzer] Move helper method handleAutoreleaseCounts from CFRefCount to RetainReleaseChecker. No functionality change.
...
llvm-svn: 138365
2011-08-23 20:07:14 +00:00
Jordy Rose
298cc4d907
[analyzer] Move ReturnStmt retain-count analysis from CFRefCount to RetainReleaseChecker. Tweak CFRefReport to reflect that fact that ReturnStmt checks are pre-statement, not post-statement. No intended functionality change.
...
llvm-svn: 138358
2011-08-23 19:43:16 +00:00
Jordy Rose
7861276f47
[analyzer] Move symbol death leak analysis from CFRefCount to RetainReleaseChecker.
...
llvm-svn: 138353
2011-08-23 19:01:07 +00:00
Caitlin Sadowski
afbbd8e5ad
Thread-safety analysis: adding in a basic lockset tracking system. This
...
system flags an error when unlocking a lock which was not held, locking
the same lock twice, having a different lockset on each iteration of a
loop, or going out of scope while still holding a lock. In order to
successfully use the lockset, this patch also makes sure that attribute
arguments are attached correctly for later parsing.
This patch was also worked on by DeLesley Hutchins.
Note: This patch has been reviewed by Chandler Carruth and Jeffrey
Yasskin. Feel free to provide post-commit review comments for a
subsequent patch.
llvm-svn: 138350
2011-08-23 18:46:34 +00:00
Eric Christopher
551ef45e85
Add support for a verifier to the driver. Currently only verifies debug
...
output on darwin so is hard coded there.
As a note this will need a little bit of refactoring in the class
hierarchy to separate it out for different verifiers based on input type.
Fixes rdar://8256258.
llvm-svn: 138343
2011-08-23 17:56:55 +00:00
Fariborz Jahanian
797f1e23f6
checking for __block variable captured by given
...
stmt expression, recursively walk down all substatements
of the stmt expression. // rdar://10001085
llvm-svn: 138334
2011-08-23 16:47:15 +00:00
Nico Weber
dd47363b3a
enable -fstack-protector on 10.5 for usermode binaries by default.
...
This matches gcc's behavior.
llvm-svn: 138324
2011-08-23 07:38:27 +00:00
Jordy Rose
212e459164
[analyzer] Only allocate retain summaries for interesting functions/messages. This is a minor saving of memory but doesn't seem to cost any performance.
...
llvm-svn: 138320
2011-08-23 04:27:15 +00:00
Matt Beaumont-Gay
56381b8502
Fix an incorrect note.
...
For the test case added to function-redecl.cpp, we were previously complaining
about a mismatch in the parameter types, since the definition used the
typedef'd type.
llvm-svn: 138318
2011-08-23 01:35:51 +00:00
Fariborz Jahanian
b50801f049
block IRgen - Fixes a crash when determining if given block variable
...
is captured by a given statement expression. // rdar://10001085
llvm-svn: 138314
2011-08-23 00:27:49 +00:00
Jordy Rose
f5b0234992
[analyzer] Rename CFRefCount's evalSummary method to evalCallOrMessage, since it no longer, uh, evaluates call summaries.
...
llvm-svn: 138313
2011-08-23 00:03:01 +00:00
Eli Friedman
c55efe4fb2
Make sure we don't inline functions marked with __attribute__((naked)). <rdar://problem/9973228>
...
llvm-svn: 138310
2011-08-22 23:55:33 +00:00
Jordy Rose
5b31d7acf7
[analyzer] Migrate the handling of retain-count-related RetEffects and ArgEffects from CFRefCount to RetainReleaseChecker. No intended functionality change.
...
llvm-svn: 138309
2011-08-22 23:48:23 +00:00
Anna Zaks
bd7972b49e
[analyzer] MacOSKeychainAPIChecker: Users of KeyChain API often use free() to deallocate the password. Catch this error explicitly and generate the error message at the place where free() is called.
...
llvm-svn: 138296
2011-08-22 23:18:12 +00:00
Fariborz Jahanian
b66de9f37b
objc refactoring - minor clean up.
...
llvm-svn: 138276
2011-08-22 21:44:58 +00:00
Anna Zaks
76c3fb6a51
Static Analyzer Diagnostics: Allow checkers to add ExtraDescriptiveText, now renamed into ExtraText, to the diagnostic without subclassing BugReport.
...
llvm-svn: 138272
2011-08-22 20:31:28 +00:00
Fariborz Jahanian
a646084550
objc - use existing API for temporary switch of
...
objc's decl context.
llvm-svn: 138267
2011-08-22 20:15:24 +00:00
Ted Kremenek
618e574253
Do not perform check for missing '[super dealloc]' under ARC as calling -dealloc is illegal in that mode.
...
llvm-svn: 138261
2011-08-22 19:07:43 +00:00
Anna Zaks
752de1443f
Clean up the CFRefBugReport - remove the members, which got moved to the CFRefReportVisitors.
...
llvm-svn: 138259
2011-08-22 18:54:07 +00:00
Eli Friedman
4acfbcd918
Don't warn on varaidic macros in C++0x mode.
...
llvm-svn: 138257
2011-08-22 18:48:28 +00:00
Fariborz Jahanian
f36734dd2a
objc - minor comment fix up and cleanup.
...
llvm-svn: 138253
2011-08-22 18:34:22 +00:00
Fariborz Jahanian
4bf8262a43
objc - Simplify switing objc decl context by using
...
a context switching object.
llvm-svn: 138248
2011-08-22 17:59:19 +00:00
Nico Weber
715abaf213
Warn on missing [super dealloc] calls.
...
This matches gcc's logic. Half of PR10661.
llvm-svn: 138240
2011-08-22 17:25:57 +00:00
Chandler Carruth
41c6dcc734
Fix a crash-on-valid that has been here for a very long time:
...
const int &x = x;
This crashed by inifinetly recursing within the lvalue evaluation
routine. I've added a (somewhat) braindead way of preventing this
recursion. If folks have better suggestions for how to avoid it I'm all
ears.
That said, we have some work to do. This doesn't trigger a single
warning for uninitialized, self-initialized or otherwise completely
wrong code. In some senses, the crash was almost better.
llvm-svn: 138239
2011-08-22 17:24:56 +00:00
Fariborz Jahanian
899c365257
objc- checking for objc decl context range is unreliable and
...
subject to change. Check for equality instead.
llvm-svn: 138238
2011-08-22 17:13:51 +00:00
Argyrios Kyrtzidis
c7e50c5cbd
Fix a bug in objc @encoding of C++ classes.
...
llvm-svn: 138235
2011-08-22 16:03:14 +00:00
Fariborz Jahanian
8d382dc781
Restore patch I reversed in r138040. Known buildbot
...
failures are resolved.
llvm-svn: 138234
2011-08-22 15:54:49 +00:00
Zhongxing Xu
aec683afec
Fix typo.
...
llvm-svn: 138227
2011-08-22 02:05:13 +00:00
Argyrios Kyrtzidis
8d32f754b8
Fix gcc build.
...
llvm-svn: 138226
2011-08-21 23:49:52 +00:00
Argyrios Kyrtzidis
61ef3db222
Boost the efficiency of SourceManager::getMacroArgExpandedLocation.
...
Currently getMacroArgExpandedLocation is very inefficient and for the case
of a location pointing at the main file it will end up checking almost all of
the SLocEntries. Make it faster:
-Use a map of macro argument chunks to their expanded source location. The map
is for a single source file, it's stored in the file's ContentCache and lazily
computed, like the source lines cache.
-In SLocEntry's FileInfo add an 'unsigned NumCreatedFIDs' field that keeps track
of the number of FileIDs (files and macros) that were created during preprocessing
of that particular file SLocEntry. This is useful when computing the macro argument
map in skipping included files while scanning for macro arg FileIDs that lexed from
a specific source file. Due to padding, the new field does not increase the size
of SLocEntry.
llvm-svn: 138225
2011-08-21 23:33:04 +00:00
Jordy Rose
898a148d28
[analyzer] Migrate the aliasing effects of CFRetain and CFMakeCollectable from CFRefCount to RetainReleaseChecker. No intended functionality change.
...
llvm-svn: 138223
2011-08-21 21:58:18 +00:00
Jordy Rose
6582dde545
[analyzer] Remove FIXME; Ted reminded me that -init is not guaranteed to return its receiver and pretending that it does won't actually buy us anything. (Comment change only.)
...
llvm-svn: 138221
2011-08-21 21:04:38 +00:00
Jordy Rose
3f7f7568f2
[analyzer] Migrate return value handling from CFRefCount to ExprEngine. This seems to result in a minor performance hit, but I think that will go away again once we eliminate TransferFuncs from function calls entirely.
...
llvm-svn: 138220
2011-08-21 19:41:36 +00:00
Jordy Rose
82c673de33
[analyzer] Replace calls to getNameAsString() with StringRef equivalents.
...
llvm-svn: 138215
2011-08-21 05:25:15 +00:00
Benjamin Kramer
3cca223a2a
Fix compile on platforms that don't implicitly include stdarg.h here.
...
llvm-svn: 138214
2011-08-20 21:50:41 +00:00
Jordy Rose
a8f99ba749
[analyzer] RetainReleaseChecker always wants region change updates. There's no need for a flag, at least not right now.
...
llvm-svn: 138212
2011-08-20 21:17:59 +00:00
Jordy Rose
5c252ef7b1
Fix indentation.
...
llvm-svn: 138211
2011-08-20 21:16:58 +00:00
Jordy Rose
5a3c9ff3a3
[analyzer] Move handling of hardcoded noreturn ("panic") methods from CFRefCount to NoReturnFunctionChecker. No functionality change intended.
...
llvm-svn: 138210
2011-08-20 20:55:40 +00:00
NAKAMURA Takumi
fbd46b0736
test/lit.cfg: Enable "crash-recovery" tests on Win32 hosts. CrashRecoveryContext supports Win32 since r138199.
...
FIXME: Shall we eliminate the feature "crash-recovery"?
llvm-svn: 138201
2011-08-20 07:09:20 +00:00
Chad Rosier
aa9e24133f
Typo spotted by Ivan Krasin.
...
llvm-svn: 138200
2011-08-20 06:56:17 +00:00
Chandler Carruth
4e6bd3955f
Remove this test. It requires C++ standard library headers, which we'd
...
like to avoid within the Clang test suite, it doesn't verify the output
at all so it only servers as a test that Clang doesn't crash, and
finally all it does is declare a function that returns a vector and call
it. Probably the biggest thing being tested here is Clang's parsing of
the vector template, and we have lots of good template parsing tests. We
don't need another in codegen.
llvm-svn: 138197
2011-08-20 06:30:57 +00:00
Ted Kremenek
60d2ec5765
[analyzer] Handle reads of ObjCPropertyRefExprs implicitly in Environment. No need to bind an explicit value and create a new node.
...
llvm-svn: 138196
2011-08-20 06:23:25 +00:00
Ted Kremenek
876e34b7b5
[analyzer] Simplify ExprEngine::VisitBinaryOperator() by removing recursive visit to subexpressions (which is no longer needed).
...
llvm-svn: 138195
2011-08-20 06:16:31 +00:00
Ted Kremenek
a9ce612fa2
Start partitioning ExprEngine.cpp into separate .cpp files that handle different parts
...
of the analysis (e.g., analysis of C expressions, analysis of Objective-C expressions, and so on).
llvm-svn: 138194
2011-08-20 06:00:03 +00:00
Ted Kremenek
10e2503177
Rename CXXExprEngine.cpp to ExprEngineCXX.cpp.
...
llvm-svn: 138193
2011-08-20 05:59:58 +00:00
NAKAMURA Takumi
d0dc49e640
test/CodeGenCXX/2003-11-25-ReturningOpaqueByValue.cpp: Mark XFAIL: win32.
...
FIXME: Avoid using system headers. clang cannot handle MS <vector> yet.
llvm-svn: 138190
2011-08-20 05:38:29 +00:00
Douglas Gregor
b36fc536d2
Make the loading of multiple records for the same identifier (from
...
different modules) more robust. It already handled (simple) merges of
the set of declarations attached to that identifier, so add a test
case that shows us getting two different declarations for the same
identifier (one struct, one function) from different modules, and are
able to use both of them.
llvm-svn: 138189
2011-08-20 05:09:43 +00:00
Douglas Gregor
18221d8eae
Clean out some minor cruft in the AST reader; no functionality change.
...
llvm-svn: 138188
2011-08-20 04:58:43 +00:00
Douglas Gregor
ab443b9da5
Introduce a module visitation function that starts at the top-level
...
modules (those that no other module depends on) and performs a search
over all of the modules, visiting a new module only when all of the
modules that depend on it have already been visited. The visitor can
abort the search for all modules that a module depends on, which
allows us to minimize the number of lookups necessary when performing
a search.
Switch identifier lookup from a linear walk over the set of modules to
this module visitation operation. The behavior is the same for simple
PCH and chained PCH, but provides the proper search order for
modules. Verified with printf debugging, since we don't have enough in
place to actually test this.
llvm-svn: 138187
2011-08-20 04:39:52 +00:00
Anna Zaks
88255cc533
Static Analyzer Diagnostics: Move the responsibility for generating the endOfPath diagnostic piece from BugReport to BugReporterVisitor. Switch CFRefCount to use visitors in order to generate the endOfPath piece.
...
llvm-svn: 138184
2011-08-20 01:27:22 +00:00
Ted Kremenek
417d566775
Remove dead code.
...
llvm-svn: 138183
2011-08-20 01:15:28 +00:00
Eric Christopher
e480b1ef3d
Remove XFAIL/XTARGET since this is passing on the other bots.
...
llvm-svn: 138182
2011-08-20 01:08:46 +00:00
Eric Christopher
b4da65e631
Migrate, update and FileCheckize:
...
2010-02-01-utf16-with-null.m
2010-02-23-DbgInheritance.m
2010-03-17-StructRef.m
2011-03-08-IVarLookup.m
from llvm/test/FrontendObjC.
llvm-svn: 138180
2011-08-20 01:04:49 +00:00
Eric Christopher
19de6c75fd
Migrate, update and FileCheckize:
...
2008-11-25-Blocks.m
2009-01-26-WriteBarrier-2.m
2009-02-05-VolatileProp.m
2009-08-05-utf16.m
from llvm/test/FrontendObjC.
llvm-svn: 138175
2011-08-20 00:49:25 +00:00
Eric Christopher
fde9786b44
Migrate, FileCheckize and update:
...
2007-04-03-ObjcEH.m
2007-05-02-Strong.m
2007-10-18-ProDescriptor.m
2007-10-23-GC-WriteBarrier.m
2008-10-3-EhValue.m
2008-11-12-Metadata.m
2008-11-24-ConstCFStrings.m
from llvm/test/FrontendObjC.
llvm-svn: 138172
2011-08-20 00:37:56 +00:00
Eric Christopher
2be76cd1b3
Migrate and update:
...
2007-10-03-MetadataPointers.mm
2010-08-04-Template.mm
2010-08-06-X.Y-syntax.mm
from llvm/test/FrontendObjC++.
llvm-svn: 138167
2011-08-20 00:25:36 +00:00
Eric Christopher
50507663a6
Remove this file, it's not much of a test and string headers cause
...
problems on windows.
llvm-svn: 138166
2011-08-20 00:22:40 +00:00
Eric Christopher
aab7dffa12
Migrate, FileCheckize and update:
...
2003-11-02-WeakLinkage.cpp
2003-11-18-PtrMemConstantInitializer.cpp
2003-11-25-ReturningOpaqueByValue.cpp
2003-11-27-MultipleInheritanceThunk.cpp
2003-11-29-DuplicatedCleanupTest.cpp
2003-12-08-ArrayOfPtrToMemberFunc.cpp
2004-01-11-DynamicInitializedConstant.cpp
from llvm/test/FrontendC++.
llvm-svn: 138162
2011-08-20 00:17:18 +00:00
Eric Christopher
6672b33511
Migrate, FileCheckize and update:
...
2004-03-08-ReinterpretCastCopy.cpp
2004-03-09-UnmangledBuiltinMethods.cpp
2004-03-15-CleanupsAndGotos.cpp
2004-06-08-LateTemplateInstantiation.cpp
2004-09-27-CompilerCrash.cpp
2004-09-27-DidntEmitTemplate.cpp
2004-11-27-ExceptionCleanupAssertion.cpp
2004-11-27-FriendDefaultArgCrash.cpp
2005-01-03-StaticInitializers.cpp
from llvm/test/FrontendC++.
llvm-svn: 138157
2011-08-20 00:09:39 +00:00
Eric Christopher
19eb735e27
Modify the check line to be happier on windows.
...
llvm-svn: 138152
2011-08-19 23:46:18 +00:00
Eric Christopher
862f8ecf55
Remove dead file.
...
llvm-svn: 138150
2011-08-19 23:45:03 +00:00
Eric Christopher
3bf8310d42
Migrate, FileCheckize and update:
...
2005-02-11-AnonymousUnion.cpp
2005-02-13-BadDynamicInit.cpp
2005-02-14-BitFieldOffset.cpp
2005-02-19-BitfieldStructCrash.cpp
2005-02-19-UnnamedVirtualThunkArgument.cpp
2005-02-20-BrokenReferenceTest.cpp
2006-03-01-GimplifyCrash.cpp
2006-03-06-C++RecurseCrash.cpp
2006-09-12-OpaqueStructCrash.cpp
2006-10-30-ClassBitfield.cpp
2006-11-20-GlobalSymbols.cpp
2006-11-20-GlobalSymbols.ll
2006-11-30-ConstantExprCrash.cpp
from llvm/test/FrontendC++.
llvm-svn: 138148
2011-08-19 23:41:35 +00:00
Devang Patel
2de80d601a
Add new test.
...
Remove one outdated test.
llvm-svn: 138144
2011-08-19 23:26:54 +00:00
Anna Zaks
071a89c39f
Static Analyzer Diagnostics: Switch CFRefCount to using the new visitor API. BugReport no longer needs to inherit from BugReporterVisitor.
...
llvm-svn: 138142
2011-08-19 23:21:56 +00:00
Eric Christopher
925d593b60
Try removing xfail and xtarget to see if this brings back a couple of bots.
...
llvm-svn: 138139
2011-08-19 23:17:46 +00:00
Eric Christopher
a8cd70e21a
Migrate 2007-01-02-UnboundedArray.cpp from llvm/test/FrontendC++.
...
llvm-svn: 138138
2011-08-19 23:15:04 +00:00
Eric Christopher
17db038966
Migrate:
...
2007-01-06-PtrMethodInit.cpp
2007-04-05-PackedBitFields-1.cpp
2007-04-05-PackedBitFieldsOverlap-2.cpp
2007-04-05-PackedBitFieldsOverlap.cpp
2007-04-05-PackedBitFieldsSmall.cpp
2007-04-05-StructPackedFieldUnpacked.cpp
2007-04-10-PackedUnion.cpp
2007-04-14-FNoBuiltin.cpp
2007-05-03-VectorInit.cpp
2007-07-29-RestrictPtrArg.cpp
2007-07-29-RestrictRefArg.cpp
2007-09-10-RecursiveTypeResolution.cpp
from llvm/test/FrontendC++ and FileCheckize where appropriate.
llvm-svn: 138134
2011-08-19 23:08:33 +00:00
Argyrios Kyrtzidis
eeca36fe9a
For assigning SourceLocations to macro arg tokens, reserve a single SLocEntry
...
for tokens that are lexed consecutively from the same FileID, instead of creating
a SLocEntry for each token. e.g for
assert(foo == bar);
there will be a single SLocEntry for the "foo == bar" chunk and locations
for the 'foo', '==', 'bar' tokens will point inside that chunk.
For parsing SemaExpr.cpp, this reduced the number of SLocEntries by 25%.
llvm-svn: 138129
2011-08-19 22:34:17 +00:00
Argyrios Kyrtzidis
60617128e6
Rename TokenLexer::getMacroExpansionLocation -> getExpansionLocForMacroDefLoc, no functionality change.
...
llvm-svn: 138128
2011-08-19 22:34:14 +00:00
Argyrios Kyrtzidis
34d729d46d
Refactor common functionality into SourceManager::getFileIDSize, no functionality change.
...
llvm-svn: 138127
2011-08-19 22:34:01 +00:00
Anna Zaks
f86615ca5c
Static Analyzer Diagnostics: Kill the addVisitorCreator(callbackTy, void*) API in favor of addVisitor(BugReporterVisitor*).
...
1) Create a header file to expose the predefined visitors. And move the parent(BugReporterVisitor) there as well.
2) Remove the registerXXXVisitor functions - the Visitor constructors/getters can be used now to create the object. One exception is registerVarDeclsLastStore(), which registers more then one visitor, so make it static member of FindLastStoreBRVisitor.
3) Modify all the checkers to use the new API.
llvm-svn: 138126
2011-08-19 22:33:38 +00:00
Eric Christopher
7e88fdfecc
Remove 2008-10-29-WrongOffset.cpp since it requires a header file on all
...
platforms.
llvm-svn: 138118
2011-08-19 22:25:04 +00:00
Eric Christopher
5478583ac1
Migrate 2007-10-01-StructResize.cpp from llvm/test/FrontendC++.
...
llvm-svn: 138117
2011-08-19 22:25:02 +00:00
Eric Christopher
cae25b58fc
Migrate 2008-01-12-VecInit.cpp from llvm/test/FrontendC++.
...
llvm-svn: 138114
2011-08-19 22:16:30 +00:00
Eric Christopher
88279b7eb6
Migrate 2008-05-07-CrazyOffsetOf.cpp from llvm/test/FrontendC++.
...
llvm-svn: 138113
2011-08-19 22:16:28 +00:00
Eric Christopher
fd4d7156ea
Migrate 2008-10-29-WrongOffset.cpp from llvm/test/FrontendC++.
...
llvm-svn: 138112
2011-08-19 22:16:25 +00:00
Eric Christopher
a82c55ecf0
Migrate 2009-03-17-dbg.cpp from llvm/test/FrontendC++.
...
llvm-svn: 138111
2011-08-19 22:16:23 +00:00
Eric Christopher
20429e90d7
Migrate 2009-04-23-bool2.cpp from llvm/test/FrontendC++.
...
llvm-svn: 138110
2011-08-19 22:16:21 +00:00
Eric Christopher
b991a6ae87
Remove this test. It's failing and it's not that good of a test.
...
llvm-svn: 138106
2011-08-19 22:00:44 +00:00
Eric Christopher
b52ebc3e29
Migrate 2009-06-16-DebugInfoCrash.cpp from llvm/test/FrontendC++.
...
llvm-svn: 138099
2011-08-19 21:51:07 +00:00
Eric Christopher
0c5f2a3bf1
Migrate 2009-07-16-PrivateCopyConstructor.cpp from llvm/test/FrontendC++.
...
llvm-svn: 138098
2011-08-19 21:51:05 +00:00
Eric Christopher
69d6c3d31a
Migrate 2009-08-05-ZeroInitWidth.cpp from llvm/test/FrontendC++.
...
llvm-svn: 138097
2011-08-19 21:51:03 +00:00
Eric Christopher
336a2bf4dd
Migrate 2009-07-16-Using.cpp from llvm/test/FrontendC++.
...
llvm-svn: 138096
2011-08-19 21:51:01 +00:00
Eric Christopher
824e2e702f
Migrate 2009-08-11-VectorRetTy.cpp from llvm/test/FrontendC++.
...
llvm-svn: 138095
2011-08-19 21:50:59 +00:00
Eric Christopher
1c241f741e
Migrate 2009-09-09-packed-layout.cpp test from llvm/test/FrontendC++.
...
llvm-svn: 138090
2011-08-19 21:24:41 +00:00
Eric Christopher
65534ba4a4
Migrate 2009-10-27-crash.cpp from llvm/test/FrontendC++.
...
llvm-svn: 138089
2011-08-19 21:24:39 +00:00
Eric Christopher
16bfebc42c
Migrate 2009-12-23-MissingSext.cpp from test/FrontendC++ and modify
...
for sext -> and difference.
llvm-svn: 138088
2011-08-19 21:24:37 +00:00
Douglas Gregor
8c5af41b76
Remove another unused function from ModuleManager. We have no notion of a 'last' module any more
...
llvm-svn: 138081
2011-08-19 21:20:08 +00:00
Douglas Gregor
4ad83e69a0
Remove unused function ModuleManager::exportLookup()
...
llvm-svn: 138079
2011-08-19 21:12:29 +00:00
Nick Lewycky
d78cfd57eb
Do not depend on the standard library on the system. Replace the #include with
...
the relevant section of libcxx.
As an aside, I am not at all confident that this test is still testing that it's
supposed to.
llvm-svn: 138075
2011-08-19 20:43:24 +00:00
Matt Beaumont-Gay
335e653fe6
Improve the correctness and accuracy of the message for -Wdynamic-class-memaccess
...
llvm-svn: 138074
2011-08-19 20:40:18 +00:00