Commit Graph

81893 Commits

Author SHA1 Message Date
Ted Kremenek ea4a5abf61 Add static analyzer check for calls to 'pthread_once()' where the control-flow has
automatic storage.  This matches the corresponding check for 'dispatch_once()'.

llvm-svn: 100803
2010-04-08 19:53:31 +00:00
Ted Kremenek 7ffb294c5b Update CMake build.
llvm-svn: 100802
2010-04-08 18:52:18 +00:00
Ted Kremenek a0859f1e7d Update test case.
llvm-svn: 100801
2010-04-08 18:51:47 +00:00
Ted Kremenek afed24b472 Remove micro-optimization for not issueing CFG-based warnings for 'static inline' functions
unless they are used.  I discussed this with Daniel Dunbar, and we agreed that this
provides an inconsistent warnings experience for the user and that there were
genuine cases where we wouldn't want to do this optimization.

llvm-svn: 100800
2010-04-08 18:51:44 +00:00
Ted Kremenek d87bd77586 Fix -Wsign-compare warning (issued by clang++).
llvm-svn: 100799
2010-04-08 18:49:30 +00:00
Dan Gohman 98bc4371c7 Add a -lint pass which checks for common sources of undefined or likely
unintended behavior.

llvm-svn: 100798
2010-04-08 18:47:09 +00:00
Devang Patel 359b013129 Rename a function.
llvm-svn: 100797
2010-04-08 18:43:56 +00:00
Chris Lattner 294a90d87a implicit defs get added to the end of machine instrs sometimes. Scan the whole instruction for the metadata operand instead of assuming it will be at the end of the instruction.
llvm-svn: 100792
2010-04-08 18:20:52 +00:00
Douglas Gregor 01e09d9d91 Introduce an egregious hack to work around a bug in libstdc++ 4.2.x's
<tr1/hashtable> header, where a friend class template
std::tr1::__detail::_Map_base is declared with the wrong template
parameters. GCC doesn't catch the problem, so Clang does a little
back-flip to avoid diagnosing just this one instance of the problem.

llvm-svn: 100790
2010-04-08 18:16:15 +00:00
Dan Gohman cb45bd9cb3 Pointers to zero-sized objects don't point to overlapping objects.
llvm-svn: 100789
2010-04-08 18:11:50 +00:00
Fariborz Jahanian 590c3524ac Fix a misuse of iterators when iterating through block's
parameters list for encoding.

llvm-svn: 100788
2010-04-08 18:06:22 +00:00
Dan Gohman 386e01e879 Print empty structs as {} rather than { }.
llvm-svn: 100787
2010-04-08 18:03:05 +00:00
Ted Kremenek a1de6fc575 Include all warnings under '-Wunused' in '-Wmost' and '-Wall'.
llvm-svn: 100786
2010-04-08 17:54:28 +00:00
Ted Kremenek 9f6bcf7b45 Sort entries in diagnostic group "Most".
llvm-svn: 100785
2010-04-08 17:54:24 +00:00
John McCall cf75c1e4ed Maybe we should store template arguments in the position we allocated for them
instead of scribbling over random memory.  Maybe.

Hopefully this fixes the -vg buildbot.

llvm-svn: 100784
2010-04-08 17:47:15 +00:00
Dan Gohman b6c29c27da Fix a comment.
llvm-svn: 100783
2010-04-08 17:41:04 +00:00
Jeffrey Yasskin 96f8a4a82f Touch configure so it regenerates Disassemblers.def to include ARM so
people stop seeing a broken build in EDDisassembler.cpp

llvm-svn: 100782
2010-04-08 17:19:20 +00:00
Devang Patel 3ebd8931fb One instruction may start (or end) multiple lexical scopes.
There is no need to remember labels identifying regions marked by such instructions in each scope.

llvm-svn: 100781
2010-04-08 16:50:29 +00:00
Gabor Greif 64d8d1a022 clean up algorithm and remove operand order assumptions
llvm-svn: 100780
2010-04-08 16:46:24 +00:00
Jeffrey Yasskin c76498d409 Make CXXScopeSpec invalid when incomplete, and propagate that into any
Declarator that depends on it.  This fixes several redundant errors and bad
recoveries.

llvm-svn: 100779
2010-04-08 16:38:48 +00:00
Anders Carlsson af2a317e05 Rename CGVtable files to CGVTables.
llvm-svn: 100778
2010-04-08 16:30:25 +00:00
Anders Carlsson ae9e9a63bd Clarify an assert.
llvm-svn: 100776
2010-04-08 16:18:36 +00:00
Douglas Gregor bc6a434773 Unbreak the build
llvm-svn: 100775
2010-04-08 16:07:47 +00:00
Dan Gohman bc048307f3 Fix a comment.
llvm-svn: 100774
2010-04-08 15:57:10 +00:00
Benjamin Kramer 31160e8469 CIndex: move extractUSRSuffix out of extern "C" and simplify it.
llvm-svn: 100773
2010-04-08 15:54:07 +00:00
Douglas Gregor eadd3cace9 Eliminate excessive PCH deserialization caused by the search for
__cxxabiv1::__fundamental_type_info in every translation
unit. Previously, we would perform name lookup for
__cxxabiv1::__fundamental_type_info at the end of IRGen for a each
translation unit, to determine whether it was present. If so, we we
produce type information for all of the fundamental types. However,
this name lookup causes PCH deserialization of a significant part of the
translation unit, which has a woeful impact on performance.

With this change, we now look at each record type after we've
generated its vtable to see if it is
__cxxabiv1::__fundamental_type_info. If so, we generate type info for
all of the fundamental types. This works because
__cxxabiv1::__fundamental_type_info should always have a key function
(typically the virtual destructor), that will be defined once in the
support library. The fundamental type information will end up there.

Fixes <rdar://problem/7840011>.

llvm-svn: 100772
2010-04-08 15:52:03 +00:00
Devang Patel 2abed283e5 Remove dead code.
llvm-svn: 100771
2010-04-08 15:48:02 +00:00
Benjamin Kramer f41ccef5eb Remove caseless switch.
llvm-svn: 100770
2010-04-08 15:44:22 +00:00
Devang Patel adfd4df12c Delete out of date comment.
llvm-svn: 100769
2010-04-08 15:41:13 +00:00
Devang Patel f1d5a1e994 Refactor.
llvm-svn: 100768
2010-04-08 15:37:09 +00:00
Benjamin Kramer 53dd088b58 Various MSVC warning fixes about truncated 64 bit shifts and const pointers passed to free.
llvm-svn: 100767
2010-04-08 15:25:57 +00:00
Benjamin Kramer a1eafb9afd Provide operator delete for BumpPtrAllocator and RecyclingAllocator. They will
never be called but msvc complains that they're missing.

llvm-svn: 100766
2010-04-08 15:22:35 +00:00
Gabor Greif c6a6d39289 use abstract interface in two more places
llvm-svn: 100762
2010-04-08 13:50:42 +00:00
Gabor Greif 1c73242012 fix compile
llvm-svn: 100760
2010-04-08 13:08:11 +00:00
Gabor Greif 11e7b32e4e use abstract interface
llvm-svn: 100758
2010-04-08 12:52:19 +00:00
Benjamin Kramer a6769269f3 Use twines to simplify calls to report_fatal_error. For code size and readability.
llvm-svn: 100756
2010-04-08 10:44:28 +00:00
Benjamin Kramer 634d9ff7c0 Use errs instead of fprintf.
llvm-svn: 100754
2010-04-08 09:42:29 +00:00
John McCall b9c7848ba7 Implement dependent friend function template specializations.
llvm-svn: 100753
2010-04-08 09:05:18 +00:00
Evan Cheng ebe47c872f Avoid using f64 to lower memcpy from constant string. It's cheaper to use i32 store of immediates.
llvm-svn: 100751
2010-04-08 07:37:57 +00:00
Ted Kremenek fc58c37b8c Removed unused object.
llvm-svn: 100750
2010-04-08 07:30:50 +00:00
Dan Gohman 883105485b Revert this change from a while ago; ScalarEvolution shouldn't analyze
undef as 0, since it can't force other analyses to intepret the undef
in the same way.

llvm-svn: 100749
2010-04-08 05:58:24 +00:00
Dan Gohman 4506539d84 When expanding expressions which are using post-inc mode for multiple loops,
ensure that the expansion is dominated by the increments of those loops.

llvm-svn: 100748
2010-04-08 05:57:57 +00:00
Daniel Dunbar 8ee6760971 Fronted: Kill overly specialized RecordLayoutDumper, just make -dump-record-layouts a bit that Sema honors.
llvm-svn: 100747
2010-04-08 02:59:56 +00:00
Daniel Dunbar aa423afffc AST: Move C++ record layout dumping to ASTContext::DumpRecordLayout.
llvm-svn: 100746
2010-04-08 02:59:49 +00:00
Daniel Dunbar c75c8bd757 IRgen: Move the bit-field access type into CGBitFieldInfo, and change bit-field LValues to just store the base address of object containing the bit-field.
llvm-svn: 100745
2010-04-08 02:59:45 +00:00
Evan Cheng 058b9f04e8 Make post regalloc machine licm functional. It now passes all of MultiSource.
llvm-svn: 100742
2010-04-08 01:03:47 +00:00
Chris Lattner 685db9d59e typo
llvm-svn: 100738
2010-04-08 00:54:34 +00:00
Chris Lattner bd4ca62c80 document isvolatile etc.
llvm-svn: 100737
2010-04-08 00:53:57 +00:00
Eric Christopher c0f63cf7a9 mpsadbw is not commutative.
Fixes PR3440.

llvm-svn: 100736
2010-04-08 00:52:02 +00:00
Sean Callanan 03549ee5af Added support for ARM disassembly to edis.
I also added a rule to the ARM target's Makefile to
build the ARM-specific instruction information table
for the enhanced disassembler.

I will add the test harness for all this stuff in
a separate commit.

llvm-svn: 100735
2010-04-08 00:48:21 +00:00