Chris Lattner
2536851543
typo2
...
llvm-svn: 119035
2010-11-14 07:30:46 +00:00
Chris Lattner
11a8d05bea
fix typo
...
llvm-svn: 119034
2010-11-14 07:09:32 +00:00
Ted Kremenek
d57f43eb3a
CursorVisitor: make data-recursion algorithm the default except for the few remaining Exprs still
...
covered by the normal recursive visitation.
llvm-svn: 119030
2010-11-14 05:45:47 +00:00
Ted Kremenek
d34c65d8a2
Remove stale #include.
...
llvm-svn: 119028
2010-11-14 05:28:43 +00:00
Fariborz Jahanian
574940e16f
Removed unnecessary initialization of a flag which
...
somehow got several block tests fail with a linux built
compiler.
llvm-svn: 119027
2010-11-14 05:25:15 +00:00
NAKAMURA Takumi
d477fe544c
Makefile: Follow r118918, to add configuration "ENABLE_DOCS".
...
llvm-svn: 119025
2010-11-14 03:29:27 +00:00
NAKAMURA Takumi
e82858299c
test/CodeGenCXX/dyncast.cpp: Remove XFAIL:win32 with tweaking llvm/utils/FileCheck in r119023, due to DOSish crlf issue.
...
llvm-svn: 119024
2010-11-14 03:29:22 +00:00
Fariborz Jahanian
9ffe24f186
Initialize couple of fields.
...
llvm-svn: 119014
2010-11-13 23:48:30 +00:00
Fariborz Jahanian
9b4dc09746
Removing these test till redo them so they won't depend
...
on the built compiler.
llvm-svn: 119013
2010-11-13 23:04:46 +00:00
Fariborz Jahanian
e988bdac44
Block API patch to do copy ctor of copied-in cxx objects in
...
copy helper function and dtor of copied cxx objects
in dispose helper functions. __block variables
TBD next.
llvm-svn: 119011
2010-11-13 21:53:34 +00:00
Douglas Gregor
052caec1f3
When complaining about ambiguous overload resolution for a unary or
...
binary operator, provide the types.
llvm-svn: 119008
2010-11-13 20:06:38 +00:00
Douglas Gregor
72ebdabc5d
When we're type-checking the result of calling a conversion function
...
(while computing user conversion sequences), make sure that a result
of class type is a complete class type. Had we gone through
ActOnCallExpr, this would have happened when we built the CallExpr.
Fixes PR8425.
llvm-svn: 119005
2010-11-13 19:36:57 +00:00
Daniel Dunbar
fc8aefb0ba
Driver: Support -Oz as an alias for -Os.
...
llvm-svn: 119003
2010-11-13 18:17:11 +00:00
Chandler Carruth
456daba135
Switch to using %clang_cc1 properly rather than manually passing the -cc1 flag.
...
llvm-svn: 118996
2010-11-13 10:19:35 +00:00
John McCall
c5e62b47af
Introduce five new cast kinds for various conversions into and
...
between complex types.
llvm-svn: 118994
2010-11-13 09:02:35 +00:00
John McCall
d005ac937e
Bring UsualArithmeticConversionsType back into Sema and cast the
...
operands appropriately. There are a lot of missing complex-related
cast kinds.
llvm-svn: 118993
2010-11-13 08:17:45 +00:00
Zhongxing Xu
1b038fa00f
Do not add implicit dtors for CXXBindTemporaryExpr with elidable
...
CXXConstructExpr.
llvm-svn: 118991
2010-11-13 07:30:59 +00:00
Ted Kremenek
bc8b378848
Rewrite reverse iteration loop in a more natural countdown manner.
...
llvm-svn: 118990
2010-11-13 05:55:56 +00:00
Ted Kremenek
89bad8a6e7
CursorVisitor: migrate CXXNewExpr and CXXDefaultArgExpr over to data-recursive algorithm.
...
llvm-svn: 118989
2010-11-13 05:55:53 +00:00
John McCall
528729872e
Pre-compute all possible usual-arithmetic-conversions results for the
...
promoted arithmetic types for which builtin operator candidates are
emitted. A few of these need further analysis.
Removes all the uses of UsualArithmeticConversionsType except the
core function in SemaExpr.cpp.
llvm-svn: 118988
2010-11-13 05:51:15 +00:00
Ted Kremenek
fdc5237b5e
CursorVisitor: special-case CompoundStmt in data-recursion algorithm so we don't have to enqueue
...
its children and then reverse them.
llvm-svn: 118986
2010-11-13 05:38:03 +00:00
Ted Kremenek
f2819198d2
Refine IdempotentOperationChecker::PathWasCompletelyAnalyzed() to also check
...
BlockEdges, BlockEntrances, and BlockExits for the target block value.
llvm-svn: 118984
2010-11-13 05:12:26 +00:00
Ted Kremenek
cf9dbe9c20
Teach IdempotentOperations::PathWasCompletelyAnalyzed to also consider items remaining in the
...
worklist that could have impacted the evaluation of a block.
Fixes <rdar://problem/8663596>.
llvm-svn: 118983
2010-11-13 05:04:52 +00:00
Ted Kremenek
b02788dbee
Add GRWorkList::VisitItemsInWorkList() to allow a client to introspect the contents of a worklist.
...
This API required changing the BFS worklist to use a deque instead of a queue, but that is better
for performance reasons anyway.
llvm-svn: 118982
2010-11-13 05:04:49 +00:00
John McCall
988ffb7a11
Store the list of arithmetic types as a static array of member pointers
...
instead of copying them all out at the start. Not a significant
optimization.
llvm-svn: 118967
2010-11-13 02:01:09 +00:00
John McCall
e84af4e486
Introduce a null-to-pointer implicit cast kind.
...
llvm-svn: 118966
2010-11-13 01:35:44 +00:00
Ted Kremenek
809c6fc93c
CursorVisitor: Migrate BlockExpr, CXXTemporaryOBjectExpr, and ObjCEncodeExpr to data-recursive algorithm.
...
llvm-svn: 118964
2010-11-13 01:09:29 +00:00
Ted Kremenek
573411b539
CursorVisitor: Migrate DeclRefExpr over to data-recursion algorithm.
...
llvm-svn: 118961
2010-11-13 00:58:18 +00:00
Ted Kremenek
03b8602490
CursorVisitor: migrate GotoStmt to data-recursive algorithm.
...
llvm-svn: 118960
2010-11-13 00:58:15 +00:00
Ted Kremenek
072e637671
CursorVisitor: migrate DeclStmt over to data-recursive algorithm.
...
llvm-svn: 118957
2010-11-13 00:36:50 +00:00
Ted Kremenek
acff73c3bf
CursorVisitor: Convert logic for populating data-recursion worklist from a switch statement to a StmtVisitor. No functionality change.
...
llvm-svn: 118956
2010-11-13 00:36:47 +00:00
Nick Lewycky
214a0ad0c7
Use dyn_cast result instead of re-casting. Fixes -Werror build with:
...
/llvm/tools/clang/tools/libclang/CIndex.cpp:1823: error: unused variable 'E' [-Wunused-variable]
llvm-svn: 118947
2010-11-12 23:52:43 +00:00
Douglas Gregor
52773dcef6
Implement C++ [over.match.funcs]p4 as it concerns partial ordering of
...
function templates. Fixes PR8130.
llvm-svn: 118944
2010-11-12 23:44:13 +00:00
Ted Kremenek
e0f9382d64
CursorVisitor: Pull ObjCMessageExpr and explicit casts into data-recursion algorithm.
...
llvm-svn: 118934
2010-11-12 22:24:57 +00:00
Ted Kremenek
0d693a161c
CursorVisitor: migrate ObjCMessageExpr over to data-recursion algorithm.
...
llvm-svn: 118933
2010-11-12 22:24:55 +00:00
Ted Kremenek
cfbbeda7dc
CursorVisitor: migrate UnresolvedMemberExpr and UnresolvedLookupExpr over to data-recursion algorithm.
...
llvm-svn: 118929
2010-11-12 21:34:16 +00:00
Ted Kremenek
e12bcf5717
CursorVisitor: migrate CompoundLiteralExpr over to data-recursion algorithm.
...
llvm-svn: 118928
2010-11-12 21:34:12 +00:00
Ted Kremenek
6a5df579e6
CursorVisitor: add data-recursion support for InitListExprs.
...
llvm-svn: 118927
2010-11-12 21:34:09 +00:00
Benjamin Kramer
c78d86a2af
Reduce string thrashing.
...
llvm-svn: 118915
2010-11-12 18:45:23 +00:00
Ted Kremenek
cb035359e8
CursorVisitor: migrate 'DoStmt', 'ForStmt', and 'WhileStmt' over to data-recursion algorithm.
...
llvm-svn: 118912
2010-11-12 18:27:04 +00:00
Ted Kremenek
b50e311bad
CursorVisitor: use 'WLAddStmt' and 'WLAddDecl' for adding to data-recursion worklist.
...
llvm-svn: 118911
2010-11-12 18:27:01 +00:00
Ted Kremenek
3b19144e24
CursorVisitor: migrate 'IfStmt' over to data-recursive algorithm.
...
llvm-svn: 118910
2010-11-12 18:26:58 +00:00
Ted Kremenek
73227d792b
CursorVisitor: migrate handling of SwitchStmt and CaseStmt over to general data-recursion algorithm.
...
llvm-svn: 118909
2010-11-12 18:26:56 +00:00
Bob Wilson
e6aeebb9d8
Generalize ASTContext::areCompatibleVectorTypes to handle new Neon vector types.
...
llvm-svn: 118901
2010-11-12 17:24:54 +00:00
Bob Wilson
6a6aaa1917
Increase VectorTypeBitfields::VecKind field from 2 to 3 bits.
...
With the addition of 2 enum values for Neon vectors, this field must now
hold 6 different values and so requires 3 bits. Make the NumElements field
one bit smaller to compensate.
llvm-svn: 118900
2010-11-12 17:24:52 +00:00
Bob Wilson
f58e8a4db7
Use ASTContext::getTypeInfo to find the vector element size.
...
llvm-svn: 118899
2010-11-12 17:24:49 +00:00
Bob Wilson
8470b33762
Add a separate NeonPolyVector kind to distinguish polynomial vector types.
...
Add support for mangling those types according to ARM's ABI.
llvm-svn: 118898
2010-11-12 17:24:46 +00:00
Bob Wilson
c155521a96
Add special-case mangling for Neon vector types.
...
llvm-svn: 118897
2010-11-12 17:24:43 +00:00
Benjamin Kramer
8c173cc364
Use a twine.
...
llvm-svn: 118892
2010-11-12 15:42:18 +00:00
John McCall
31f82720d0
Replace one hack with a different hack: strip out the ObjectType
...
parameters to the Transform*Type functions and instead call out
the specific cases where an object type and the unqualified lookup
results are important. Fixes an assert and failed compile on
a testcase from PR7248.
llvm-svn: 118887
2010-11-12 08:19:04 +00:00
John McCall
d41071329d
API enhancements to TypeLocBuilder.
...
llvm-svn: 118886
2010-11-12 07:35:56 +00:00
Douglas Gregor
453b012513
Make sure to always check the result of
...
SourceManager::getPresumedLoc(), so that we don't try to make use of
an invalid presumed location. Doing so can cause crashes.
llvm-svn: 118885
2010-11-12 07:15:47 +00:00
Ted Kremenek
bb437a6999
Fix use of an uninitialized SourceLocation because DeclarationNameLoc failed to completely zero-initialize itself.
...
Now we explicitly memset all of its values.
This bug was uncovered by the 'Index/recursive-cxx-member-calls.cpp', which exhibited an assertion
on an i386 darwin build of clang. Adding this test case back since the assertion is now resolved.
llvm-svn: 118881
2010-11-12 04:25:07 +00:00
Douglas Gregor
cbd0710a12
When performing initialization of a copy of a temporary object, use
...
direct-initialization (rather than copy-initialization) to initialize
the temporary, allowing explicit constructors. Fixes PR8342.
llvm-svn: 118880
2010-11-12 03:34:06 +00:00
Rafael Espindola
9aa60e964e
Add support for -nostdlib in the linux toolchain.
...
llvm-svn: 118878
2010-11-12 03:00:39 +00:00
Ted Kremenek
7716cd62b3
Modify CursorVisitor to also walks CXXOperatorCallExprs using data-recursion. Fixes <rdar://problem/8659019>.
...
llvm-svn: 118853
2010-11-11 23:11:43 +00:00
Ted Kremenek
843c53828f
RegionStore/BasicStore: do not return UndefinedVal for accesses to concrete addresses; instead return UnknownVal. This
...
leads it up to checkers (e.g., DereferenceChecker) to guard against illegal accesses (e.g., null dereferences).
Fixes PR 5272 and <rdar://problem/6839683>.
llvm-svn: 118852
2010-11-11 23:10:10 +00:00
Douglas Gregor
ad3832e213
Teach debug-info generation that SourceManager::getPresumedLoc() can
...
produce an invalid location even when given a valid location, if the
file system has changed underneath us. Recovery more gracefully.
llvm-svn: 118834
2010-11-11 20:45:16 +00:00
Rafael Espindola
34d77dc49a
Add support for -s, -pthread and -pthreads. Thanks to Hans Wennborg and
...
Cosmin Truta for reporting it.
llvm-svn: 118826
2010-11-11 19:34:42 +00:00
Daniel Dunbar
aeed5fe6a2
Driver: Allow build system override of default non-fragile ABI version.
...
llvm-svn: 118786
2010-11-11 16:08:59 +00:00
Ted Kremenek
b76f2402b0
Temporarily remove this test. It is causing an assertion failure in the builtbot.
...
llvm-svn: 118785
2010-11-11 08:17:57 +00:00
Ted Kremenek
c7a5bae597
Annotate tokens in a separate thread to avoid blowing out stack space. While the CursorVisitor
...
is gradually becoming more data recursive, AnnotateTokensVisitor does its own recursive call
within the visitor that can still blow out the stack. This can potentially be reworked to avoid this,
but for now just do token annotation on a separate thread.
llvm-svn: 118783
2010-11-11 08:05:23 +00:00
Ted Kremenek
92209a45b9
Generalize data-recursive visitation in CursorVisitor to also handle MemberExprs
...
and CXXCallMemberExprs. This scheme is hopefully general enough to extend to the
rest of the visitor if necessary.
llvm-svn: 118782
2010-11-11 08:05:18 +00:00
John McCall
deebbcf20d
Undo a refactor-o and base the bitfield-truncation warning on the
...
uncoerced value. Also, whitelist bool bitfields, which aren't
really a truncation.
llvm-svn: 118778
2010-11-11 05:33:51 +00:00
NAKAMURA Takumi
78e3fdb8a7
test/CMakeLists.txt: Use ${LLVM_LIT_ARGS} and remove redundant arguments "-sv" and "--no-progress-bar".
...
llvm-svn: 118777
2010-11-11 04:09:51 +00:00
Francois Pichet
77399b8aad
Remove some unnecessary reinterpret_cast.
...
llvm-svn: 118775
2010-11-11 03:49:37 +00:00
John McCall
1f425648ca
Extend the bitfield-truncation warning to initializations.
...
rdar://problem/8652606
llvm-svn: 118773
2010-11-11 03:21:53 +00:00
Rafael Espindola
7ba97afc4d
Add -rdynamic to freebsd and openbsd. Patch by Ruben.
...
llvm-svn: 118771
2010-11-11 02:17:51 +00:00
Rafael Espindola
124798484a
Add support for Exherbo. Patch by Elias Pipping.
...
llvm-svn: 118769
2010-11-11 02:07:13 +00:00
John McCall
643169b280
Unnest; no functionality change.
...
llvm-svn: 118753
2010-11-11 00:46:36 +00:00
Douglas Gregor
44c6ee7729
Improve ASTUnit's capture of diagnostics so that the
...
diagnostic-capturing client lives as long as the ASTUnit itself
does. Otherwise, we can end up with crashes when we get a diagnostic
outside of parsing/code completion. The circumstances under which this
happen are really hard to reproduce, because a file needs to change
from under us.
llvm-svn: 118751
2010-11-11 00:39:14 +00:00
Fariborz Jahanian
2a5deb56a4
Adding couple of Block API, a bug fix and
...
a test change, all for blocks. wip.
llvm-svn: 118745
2010-11-11 00:11:38 +00:00
Chris Lattner
3bb7aab0b0
add a note about inline asm compatibility.
...
llvm-svn: 118740
2010-11-10 23:51:50 +00:00
John McCall
817d4af557
When -Wconversion computes the range of a type, it uses the (bit-)range
...
of the enumerators rather than the actual expressible range. This is
great when dealing with opaque *values* of that type, but when computing
the range of the type for purposes of converting *into* it, it produces
warnings in cases we don't care about (e.g. enum_t x = 500;). Divide
the logic into these two cases and use the more conservative range for
targets.
llvm-svn: 118735
2010-11-10 23:38:19 +00:00
Devang Patel
82abab0812
test case for r118726.
...
llvm-svn: 118727
2010-11-10 22:19:57 +00:00
Bob Wilson
aeb56444f9
Add a variant of GCC-style vector types for ARM NEON.
...
NEON vector types need to be mangled in a special way to comply with ARM's ABI,
similar to some of the AltiVec-specific vector types. This patch is mostly
just renaming a bunch of "AltiVecSpecific" things, since they will no longer
be specific to AltiVec. Besides that, it just adds the new "NeonVector" enum.
llvm-svn: 118724
2010-11-10 21:56:12 +00:00
Douglas Gregor
4640a18cf4
Document a language-compatibility issue with function parameter names in function prototypes in C++
...
llvm-svn: 118712
2010-11-10 20:24:21 +00:00
Douglas Gregor
869853eea1
Instantiate class member template partial specialization declarations
...
in the order they occur within the class template, delaying
out-of-line member template partial specializations until after the
class has been fully instantiated. This fixes a regression introduced
by r118454 (itself a fix for PR8001).
llvm-svn: 118704
2010-11-10 19:44:59 +00:00
Fariborz Jahanian
a0a9d85a5d
Check for duplicate declaration of a property in current and
...
other class extensions. // rdar://7629420
llvm-svn: 118689
2010-11-10 18:01:36 +00:00
John McCall
ad31b5f2cb
Propagate the deprecated and unavailable attributes from a
...
@property declaration to the autogenerated methods. I'm uncertain
whether this should apply to attributes in general, but these are
a reasonable core.
Implements rdar://problem/8617301
llvm-svn: 118676
2010-11-10 07:01:40 +00:00
Ted Kremenek
5eec2b0bd3
Region-allocate all AttributeList objects from a factory object instead of manually managing them
...
using new/delete and OwningPtrs. After memory profiling Clang, I witnessed periodic leaks of these
objects; digging deeper into the code, it was clear that our management of these objects was a mess. The ownership rules were murky at best, and not always followed. Worse, there are plenty of error paths where we could screw up.
This patch introduces AttributeList::Factory, which is a factory class that creates AttributeList
objects and then blows them away all at once. While conceptually simple, most of the changes in
this patch just have to do with migrating over to the new interface. Most of the changes have resulted in some nice simplifications.
This new strategy currently holds on to all AttributeList objects during the lifetime of the Parser
object. This is easily tunable. If we desire to have more bound the lifetime of AttributeList
objects more precisely, we can have the AttributeList::Factory object (in Parser) push/pop its
underlying allocator as we enter/leave key methods in the Parser. This means that we get
simple memory management while still having the ability to finely control memory use if necessary.
Note that because AttributeList objects are now BumpPtrAllocated, we may reduce malloc() traffic
in many large files with attributes.
This fixes the leak reported in: <rdar://problem/8650003>
llvm-svn: 118675
2010-11-10 05:59:39 +00:00
Argyrios Kyrtzidis
2703bebc58
Replace UsingDecl's SmallPtrSet of UsingShadowDecls with a linked list to avoid leaking memory.
...
Fixes rdar://8649963.
llvm-svn: 118674
2010-11-10 05:40:41 +00:00
Rafael Espindola
66b291a41b
Add support for Ubuntu Jaunty.
...
llvm-svn: 118673
2010-11-10 05:00:22 +00:00
John McCall
a8987a294d
Friend function declarations can overload with tag declarations.
...
Fixes PR7915.
llvm-svn: 118670
2010-11-10 03:01:53 +00:00
John McCall
9b72f89f0f
Diagnose attempst to template using declarations and using directives.
...
Recover from the latter and fail early for the former. Fixes PR8022.
llvm-svn: 118669
2010-11-10 02:40:36 +00:00
Chris Lattner
49609d56d7
make sure #pragma clang is treated the same way as #pragma gcc in -E mode,
...
unknown pragmas should just be passed through to the .i file.
llvm-svn: 118659
2010-11-10 01:00:49 +00:00
John McCall
fd81c52947
Tweak to bitfield-overflow warning: don't warn about storing
...
a positive value into a signed bitfield of the exact width of
the value.
llvm-svn: 118657
2010-11-10 00:26:50 +00:00
John McCall
0e6cfaf6c0
Typo.
...
llvm-svn: 118649
2010-11-09 23:36:43 +00:00
John McCall
d2a5312e14
Add a warning for implicit truncation of constant values due to
...
bitfield assignment.
Implements rdar://problem/7809123
llvm-svn: 118647
2010-11-09 23:24:47 +00:00
Daniel Dunbar
4b496bc35a
Add a compat note about how Clang doesn't zero-initialize __block local variables.
...
llvm-svn: 118641
2010-11-09 22:45:16 +00:00
John McCall
18a2c2c0b9
Split out -Wconversion warnings about constant precision into their
...
own subcategory, -Wconstant-conversion, which is on by default.
Tweak the constant folder to give better results in the invalid
case of a negative shift amount.
Implements rdar://problem/6792488
llvm-svn: 118636
2010-11-09 22:22:12 +00:00
Fariborz Jahanian
b332ba3a51
Test moved to its correct place.
...
llvm-svn: 118635
2010-11-09 21:40:30 +00:00
Fariborz Jahanian
d11da7e52a
Restore patch reversed in r118475. Fixes
...
// rdar://8632525
llvm-svn: 118634
2010-11-09 21:38:20 +00:00
Douglas Gregor
0124e9ba9a
Attempt to resolve overloaded functions in comma expressions and
...
conditional operators. Fixes PR7863.
llvm-svn: 118631
2010-11-09 21:07:58 +00:00
Fariborz Jahanian
dbee986290
Issues good diagnostic when @end is missing.
...
// rdar://8283484
llvm-svn: 118629
2010-11-09 20:38:00 +00:00
Chris Lattner
8ea6442f92
tidy up
...
llvm-svn: 118626
2010-11-09 20:15:55 +00:00
Chris Lattner
0786544ac5
fix PR8380, a crash on invalid due to an illogical DeclSpec SourceRange being constructed.
...
llvm-svn: 118625
2010-11-09 20:14:26 +00:00
Douglas Gregor
928479e727
Revert the fix for PR8013.
...
That bug concerned the well-formedness of code such as (&ovl)(a, b,
c). GCC rejects the code, while EDG accepts it. On further study of the
standard, I see no support for EDG's position: in particular, C++
[over.over] does not list this as a context where we can take the
address of an overloaded function, C++ [over.call.func] does not
reference the address-of operator at any point, and C++ [expr.call]
claims that the function argument in a call is either a function
lvalue or a pointer-to-function; (&ovl) is neither.
llvm-svn: 118620
2010-11-09 20:03:54 +00:00
Benjamin Kramer
f2e5a91ffb
Simplify code.
...
llvm-svn: 118619
2010-11-09 20:00:56 +00:00
Chris Lattner
e56c786f11
make the example a bit better, encouraging people to use "suggestions of what to use" in the message :)
...
llvm-svn: 118612
2010-11-09 19:43:35 +00:00