Zhongxing Xu
5d30c69813
Add skeleton for handling other kinds of CFGElements.
...
llvm-svn: 119135
2010-11-15 08:48:43 +00:00
Chandler Carruth
eb84200747
Clean up some names and fix the handling of default sysroots on Windows and
...
other platforms where the textual default of '/' isn't the system's root
directory. We should probably still make the textual default platform specific,
but this should avoid the particularly bad problem with the previous state: we
applied a sysroot of '/' to '/usr/local/google' which added
'//usr/local/include' to the windows header search path, a share on another
machine named 'usr'. Oops.
llvm-svn: 119131
2010-11-15 07:15:26 +00:00
Chandler Carruth
03ac1b09d1
Switch the sysroot logic to use the Path interface, resolving a FIXME and
...
making the code less gross.
llvm-svn: 119099
2010-11-15 00:48:13 +00:00
Chandler Carruth
c4d6fd5b03
Make sysroot only apply to baked in paths which start with a '/'.
...
llvm-svn: 119095
2010-11-15 00:05:18 +00:00
Ted Kremenek
0526f52a49
Revert r119045. It was failing on Windows.
...
llvm-svn: 119048
2010-11-14 17:53:34 +00:00
Ted Kremenek
ca817a3c0c
"Fix" some unintentional fallout from converting
...
the Stmt* visitation in CursorVisitor to be
data-recursive.
Since AnnotationTokensWorker explicitly calls
CursorVisitor::VisitChildren(), it essentially
transforms the data-recursive algorithm in
CursorVisitor back into a non-data recursive one.
This is particularly bad because the data-recursive
algorithm uses more stack space per stack frame,
which can cause us to blow the stack in some cases.
"Fix" this by making the stack that AnnotationTokensWorker
runs in really huge. The real fix is to modify
AnnotationTokensWorker not to do the explicit
recursive call.
llvm-svn: 119047
2010-11-14 17:47:35 +00:00
Ted Kremenek
96b329c428
Clean up initialization of LangOptions object by splitting part of it into a parent class
...
'LangOptionsBase' that default initializes all flags to 0. Now the ctor of LangOptions
only initializes the flags that might be non-zero (significantly simplifying things).
This also appeases Valgrind on Mac OS X, which no longer reports that one of the flags
may be uninitialized.
llvm-svn: 119045
2010-11-14 17:04:23 +00:00
Zhongxing Xu
fee455fcf5
Revert r118991.
...
Elidable CXXConstructExpr should inhibit calling destructor for temporary
that is copied, not the one created. This is because eliding copy constructor
means that the object that was to be copied will be constructed directly in
memory the copy would be constructed in.
llvm-svn: 119044
2010-11-14 15:23:50 +00:00
John McCall
83fe49d1e1
Always emit full loads from volatile complex l-values.
...
Return the result of a complex assignment with the original values,
not by performing a load from the l-value; this is the correct
semantics in C, although not in C++.
llvm-svn: 119037
2010-11-14 09:40:28 +00:00
John McCall
d764625448
Add a few more complex-related cast kinds that arise due to arbitrary
...
implicit conversions; the last batch was specific to promotions.
I think this is the full set we need. I do think dividing the cast
kinds into floating and integral is probably a good idea.
Annotate a *lot* more C casts with useful cast kinds.
llvm-svn: 119036
2010-11-14 08:17:51 +00:00
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