Commit Graph

21214 Commits

Author SHA1 Message Date
Anders Carlsson 0d0b588fb2 Get rid of the LayoutBaseNonVirtually; it was used to lay out a base either as a non-virtual base or a virtual base.
llvm-svn: 98198
2010-03-10 22:26:24 +00:00
Anders Carlsson 09ffa32b92 More shuffling.
llvm-svn: 98197
2010-03-10 22:21:28 +00:00
Anders Carlsson f08e681ba8 Cleanups, no functionality change yet.
llvm-svn: 98196
2010-03-10 22:16:06 +00:00
Chris Lattner 93f0a7dda1 add DESTDIR support for clang headers, PR6556.
Patch by Matthias Klose!

llvm-svn: 98192
2010-03-10 21:26:01 +00:00
Anders Carlsson 423406f335 Fix calculation of whether a member function needs a thunk in construction vtables.
llvm-svn: 98191
2010-03-10 21:25:37 +00:00
Fariborz Jahanian a4a925febb Change the 'super' messaging API in the rewriter.
Fixes radar 7738452.

llvm-svn: 98190
2010-03-10 21:17:41 +00:00
John McCall c9d4a84c2a Suppress the tag when printing an ElaboratedType if the language options
claim this is C.  We don't make ElaboratedTypes in C, but sometimes
the language options during pretty-print lie to us.

The rewriter should really be fixed to not rely on how types are pretty-printed,
though.

llvm-svn: 98189
2010-03-10 21:05:46 +00:00
Anders Carlsson 115b4756b5 We were mistakenly marking morally virtual bases as being uninteresting. Fix this.
llvm-svn: 98180
2010-03-10 19:39:11 +00:00
Anders Carlsson 703a08605f Ignore non-interesting bases when emitting construction vtables.
llvm-svn: 98177
2010-03-10 19:15:26 +00:00
Ted Kremenek 1794ec4a30 Simplify assertion.
llvm-svn: 98176
2010-03-10 19:09:37 +00:00
Ted Kremenek fe697ebaaf Remove '#if 0' code. Lazy compound values have proven their worth.
llvm-svn: 98175
2010-03-10 19:09:34 +00:00
Ted Kremenek 1a0c4d5900 Fix -Wsign-compare warnings reported by clang++.
llvm-svn: 98174
2010-03-10 19:09:31 +00:00
Ted Kremenek 4a26524050 Fix -Wsign-compare warning reported by clang++.
llvm-svn: 98170
2010-03-10 18:22:38 +00:00
Ted Kremenek 9e92d3f99d Remove the subregion map cache. It is no longer used.
llvm-svn: 98161
2010-03-10 16:38:44 +00:00
Ted Kremenek 2ce82b2323 Fix stale comment.
llvm-svn: 98160
2010-03-10 16:38:41 +00:00
Ted Kremenek ddce4a3d0f Really apply (unnoticed weird git-svn merge conflict in 98144): Refactor RegionStore::RemoveDeadBindings to use the same core cluster analysis algorithm as RegionStore::InvalidateRegions().
Beyond simplifying the algorithm significantly, we no longer
need to build subregion maps in RemoveDeadBindings().  This
and other changes cause a significant speedup: the time to
analyze sqlite3.c (single core) drops by 14%.

llvm-svn: 98159
2010-03-10 16:32:56 +00:00
Rafael Espindola e81620fb88 Move test and also test codegen.
llvm-svn: 98154
2010-03-10 14:01:14 +00:00
John McCall 85f9055955 When pretty-printing tag types, only print the tag if we're in C (and
therefore not creating ElaboratedTypes, which are still pretty-printed
with the written tag).

Most of these testcase changes were done by script, so don't feel too
sorry for my fingers.

llvm-svn: 98149
2010-03-10 11:27:22 +00:00
Ted Kremenek ba2e6c6b73 Refactor RegionStore::RemoveDeadBindings to use the same core
cluster analysis algorithm as RegionStore::InvalidateRegions().

Beyond simplifying the algorithm significantly, we no longer
need to build subregion maps in RemoveDeadBindings().  This
and other changes cause a significant speedup: the time to
analyze sqlite3.c (single core) drops by 14%.

llvm-svn: 98144
2010-03-10 07:20:03 +00:00
Ted Kremenek a2536b642c Refactor some of RegionStore's InvalidateRegionsWorker class
into a 'ClusterAnalysis' parent class.  The idea is
to potentially reuse this for reworking RemoveDeadBindings.

llvm-svn: 98143
2010-03-10 07:19:59 +00:00
Anders Carlsson 45be0e069d Add newline.
llvm-svn: 98140
2010-03-10 06:51:56 +00:00
Anders Carlsson 804cf51dcf Don't accidentally mark some functions in construction vtables as unused. Also land the test for a previous checkin, now that it's correct.
llvm-svn: 98139
2010-03-10 06:51:42 +00:00
John McCall 96f0b5f844 Allow the fast path through ASTContext::getTypeDeclType to be inlined.
llvm-svn: 98138
2010-03-10 06:48:02 +00:00
Zhongxing Xu 1bb6a1a593 Add use-after-free check to MallocChecker.
llvm-svn: 98136
2010-03-10 04:58:55 +00:00
Douglas Gregor 6cf3f3c75e Statement expressions can be used in global- or namespace-scoped blocks
llvm-svn: 98135
2010-03-10 04:54:39 +00:00
John McCall e78aac41de Create a new InjectedClassNameType to represent bare-word references to the
injected class name of a class template or class template partial specialization.
This is a non-canonical type;  the canonical type is still a template 
specialization type.  This becomes the TypeForDecl of the pattern declaration,
which cleans up some amount of code (and complicates some other parts, but
whatever).

Fixes PR6326 and probably a few others, primarily by re-establishing a few
invariants about TypeLoc sizes.     

llvm-svn: 98134
2010-03-10 03:28:59 +00:00
Anders Carlsson 02b99d6b7c When building construction vtables, we need to check if a primary virtual base is actually a primary virtual base in the layout class.
llvm-svn: 98131
2010-03-10 03:02:01 +00:00
Rafael Espindola 69902a0a0d add missing test
llvm-svn: 98129
2010-03-10 02:43:01 +00:00
Anders Carlsson ca82a4fdba Improve vcall offset handling in construction vtables. With this we layout the construction vtables from the ABI examples correctly.
llvm-svn: 98127
2010-03-10 02:33:41 +00:00
Rafael Espindola e7113ca907 Delay codegen of vtables when handling implicit instantiations.
This fixes PR6474.

llvm-svn: 98123
2010-03-10 02:19:29 +00:00
Eric Christopher 1dca62055a Add insert/extract_ps and related random macros.
llvm-svn: 98114
2010-03-10 00:50:58 +00:00
Devang Patel 05c37d2800 Use SmallString instead of alloca.
llvm-svn: 98112
2010-03-10 00:19:43 +00:00
Ted Kremenek 575398e29b When computing in AnalysisContext the variables referenced
by a block, also look at the contained blocks.

llvm-svn: 98111
2010-03-10 00:18:11 +00:00
Ted Kremenek 7de5f32479 Enhance basic store to also lazily symbolicate VarRegions
with an 'unknown' memory space.

llvm-svn: 98110
2010-03-10 00:18:08 +00:00
Devang Patel 93f274c161 Fix file reference for derived and composite types. Now, dwarf writer uses strict verifier that ignores debug info for such types if their file info is unknown.
llvm-svn: 98096
2010-03-09 22:49:11 +00:00
John McCall 7242868e71 Value-initialize the written-builtin-specifiers field of DeclSpec, which
wasn't being initialized properly along the implicit-definition path.
Found by the valgrind buildbot.

llvm-svn: 98093
2010-03-09 22:39:49 +00:00
Fariborz Jahanian eb1690d2bd Fix the test some more.
llvm-svn: 98090
2010-03-09 22:17:52 +00:00
Fariborz Jahanian 9d227a1d5e See if this test makes it though buildbot.
llvm-svn: 98087
2010-03-09 21:50:08 +00:00
Devang Patel 4f26205ba8 More then one anonymous aggregates on one line creates chaos when MDNode uniquness is combined with RAUW operation. Right solution is to avoid using RAUW.
This fixes PR 6554.

llvm-svn: 98083
2010-03-09 21:32:27 +00:00
Fariborz Jahanian 86048dc2e5 Reverse the code gen. enabled part of test until I can figure out
how to check the code pattern no matter how clang is built.

llvm-svn: 98079
2010-03-09 21:26:24 +00:00
Douglas Gregor 791c08734a Improve Objective-C token-annotation test
llvm-svn: 98078
2010-03-09 20:57:01 +00:00
Fariborz Jahanian 525f34133d Code gen test for a previous patch for
radar 7709015

llvm-svn: 98073
2010-03-09 19:15:10 +00:00
Devang Patel f2aa707895 Use getLast() instead of getBasename().
llvm-svn: 98072
2010-03-09 19:14:07 +00:00
Fariborz Jahanian c4813e8d02 Don't error when a block pointer is passed to a
vararg functions/methods. Fixes radar 7725203.

llvm-svn: 98070
2010-03-09 18:34:52 +00:00
Douglas Gregor 490075a7dd Add an Objective-C test for token annotation
llvm-svn: 98056
2010-03-09 13:06:04 +00:00
Benjamin Kramer bbf5c262ab Replace copy loops with memcpy.
llvm-svn: 98055
2010-03-09 12:53:38 +00:00
Devang Patel 408dcf60aa Start using DIFile. Corresponding llvm patch is r98020.
llvm-svn: 98021
2010-03-09 00:44:50 +00:00
Ted Kremenek 8590544ea8 Add test cases for r98003 and r98006.
llvm-svn: 98008
2010-03-08 23:38:27 +00:00
Ted Kremenek 0a4a8326c1 Add preprocessor guards to the definitions of size_t and wchar_t, and #undef NULL before defining it.
This addresses potential issues with system headers reported in <rdar://problem/7727159>.

llvm-svn: 98006
2010-03-08 23:23:45 +00:00
Ted Kremenek 4c9862ca1d Place the definition of 'va_list' within a preprocessor guard. This matches the behavior of GCC, and avoids potential conflicts with system headers (e.g., stdio.h). Fixes <rdar://problem/7727145>.
llvm-svn: 98003
2010-03-08 23:13:05 +00:00