Commit Graph

21192 Commits

Author SHA1 Message Date
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
Ted Kremenek ff9021b675 Implement clang_isUnexposed(), a predicate function to simplify filtering out
unexposed AST elements.

llvm-svn: 97985
2010-03-08 21:17:29 +00:00
Chris Lattner e18aaf2c4b add a codegen hack to work around an AST bug, allowing us to compile the
code in PR6537.  This should be reverted when the ast bug is fixed.

llvm-svn: 97981
2010-03-08 21:08:07 +00:00
Ted Kremenek c3015a914f Allocate ASTRecordLayout objects using the allocator associated with ASTContext.
This allows them to be allocated using a BumpPtrAllocated
in the common case.

llvm-svn: 97978
2010-03-08 20:56:29 +00:00
Devang Patel d3cbaa1ddf Avoid using DIDescriptor.isNull().
llvm-svn: 97976
2010-03-08 20:53:17 +00:00
John McCall 2c7c0424b2 Revert r97727 at ddunbar's request; we want to solve this some other way.
llvm-svn: 97971
2010-03-08 20:01:09 +00:00
John McCall 0fbf039db9 Rename -Wbad-literal to -Wliteral-range.
llvm-svn: 97968
2010-03-08 19:34:43 +00:00
Devang Patel 9cf2705a5d Revert r97949.
llvm-svn: 97964
2010-03-08 19:20:58 +00:00
Ted Kremenek adccbca23f Don't enable static analysis support for C++ by default. Users are
accidentally using it without realizing that it is nowhere close
to being generally usable and are reporting crashes that we
already know about.

llvm-svn: 97960
2010-03-08 19:06:44 +00:00
Douglas Gregor 8a16769b61 Improve XML output for C++ classes, from Olaf Krzikalla!
llvm-svn: 97954
2010-03-08 18:51:03 +00:00
Kovarththanan Rajaratnam 4bc61181f9 Mark variable as const
llvm-svn: 97951
2010-03-08 18:33:04 +00:00
Devang Patel 4ce8ebb087 Avoid DIDescriptor.isNull() checks.
llvm-svn: 97949
2010-03-08 18:26:57 +00:00
Douglas Gregor de4827dd34 Extend ObjCMessageExpr for class method sends with the source location
of the class name.

llvm-svn: 97943
2010-03-08 16:40:19 +00:00
Douglas Gregor 12852d9521 Keep track of type source information in the return type of an
Objective-C method declaration, e.g., for 

  - (Foo *)myMethod;

we now have TypeSourceInfo for the Foo*.

llvm-svn: 97942
2010-03-08 14:59:44 +00:00
Duncan Sands 7a9ba76825 Remove unused headers.
llvm-svn: 97941
2010-03-08 11:29:03 +00:00
Douglas Gregor b1489c67f0 Remove redundant semicolon
llvm-svn: 97930
2010-03-08 02:49:35 +00:00
Douglas Gregor 0aad774232 Make a note for the C++0x future, when we'll have to revisit the jump-diagnostics handling for variables without initializers
llvm-svn: 97929
2010-03-08 02:49:08 +00:00
Douglas Gregor 589973b097 In C++98/03, an uninitialized variable that has POD class type will be
uninitialized. This seems not to be the case in C++0x, where we still
call the (trivial) default constructor for a POD class
(!). Previously, we had implemented only the C++0x rules; now we
implement both. Fixes PR6536.

llvm-svn: 97928
2010-03-08 02:45:10 +00:00
Douglas Gregor 104ee00181 Downgrade errors when trying to catch a pointer or reference to
incomplete type to warnings; GCC (and EDG in GCC compatibility mode)
permit such handles. Fixes PR6527.

(For real this time)

llvm-svn: 97927
2010-03-08 01:47:36 +00:00
Chandler Carruth 3681e58d8b Revert r97925, it only contained the test updates not the actual fix.
llvm-svn: 97926
2010-03-08 00:41:19 +00:00
Douglas Gregor 254bba4095 Downgrade errors when trying to catch a pointer or reference to
incomplete type to warnings; GCC (and EDG in GCC compatibility mode)
permit such handles. Fixes PR6527.

llvm-svn: 97925
2010-03-07 23:28:27 +00:00
Douglas Gregor 281c486e1b Robustify callers that rebuild typename type nodes again NULL return
types. Fixes PR6463.

llvm-svn: 97924
2010-03-07 23:26:22 +00:00
Douglas Gregor c934bc840c Perform overload resolution when static_cast'ing from a
pointer-to-member-to-derived to a pointer-to-member-to-base. Fixes
PR6072.

llvm-svn: 97923
2010-03-07 23:24:59 +00:00