summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [TSan] fix a typo in CMakeListsAlexey Samsonov2012-09-131-1/+1
| | | | llvm-svn: 163796
* [TSan] Use interface attribute for weak functions that may be overriden by userAlexey Samsonov2012-09-132-0/+2
| | | | llvm-svn: 163795
* Create initial support for matching and binding NestedNameSpecifier(Loc)s.Daniel Jasper2012-09-137-61/+366
| | | | | Review: http://llvm-reviews.chandlerc.com/D39 llvm-svn: 163794
* Fix Doxygen misuse: refer to parameter names in paragraphs correctly (\arg isDmitri Gribenko2012-09-1326-105/+99
| | | | | | not what most people want -- it starts a new paragraph). llvm-svn: 163793
* Add missing accessor.Manuel Klimek2012-09-131-0/+1
| | | | llvm-svn: 163792
* Stack Coloring: We have code that checks that all of the uses of allocasNadav Rotem2012-09-132-5/+41
| | | | | | | | | | | | | are within the lifetime zone. Sometime legitimate usages of allocas are hoisted outside of the lifetime zone. For example, GEPS may calculate the address of a member of an allocated struct. This commit makes sure that we only check (abort regions or assert) for instructions that read and write memory using stack frames directly. Notice that by allowing legitimate usages outside the lifetime zone we also stop checking for instructions which use derivatives of allocas. We will catch less bugs in user code and in the compiler itself. llvm-svn: 163791
* Fix Doxygen issues:Dmitri Gribenko2012-09-1317-221/+222
| | | | | | | | * wrap code blocks in \code ... \endcode; * refer to parameter names in paragraphs correctly (\arg is not what most people want -- it starts a new paragraph). llvm-svn: 163790
* [TSan] Add initial support for buidling ThreadSanitizer runtime library with ↵Alexey Samsonov2012-09-133-6/+72
| | | | | | CMake (currently the only supported platfrom is 64-bit Linux). This patch makes 'clang++ -fthread-sanitizer' work for both clang in the build tree and installed clang llvm-svn: 163789
* [TSan] fix a bunch of warnings reported by pedantic gccAlexey Samsonov2012-09-1312-17/+21
| | | | llvm-svn: 163788
* Fix a doxygen issue: these examples are supposed to be displayed preformatted.Dmitri Gribenko2012-09-131-43/+66
| | | | llvm-svn: 163787
* [Sanitizer] don't use -Werror as default compile flag for sanitizer runtimes ↵Alexey Samsonov2012-09-131-1/+0
| | | | | | - people may use too many distinct/old host compilers llvm-svn: 163784
* Fix function name in comment.Craig Topper2012-09-131-1/+1
| | | | llvm-svn: 163783
* Fix typo in comment.Nick Lewycky2012-09-131-1/+1
| | | | llvm-svn: 163782
* Conditionally parse documentation comments in system headers byTed Kremenek2012-09-136-0/+14
| | | | | | | | | | passing -fretain-comments-from-system-headers. By default, the compiler no longer parses such documentation comments, as they can result in a noticeable compile time/PCH slowdown. Fixes <rdar://problem/11860820>. llvm-svn: 163778
* Properly link libpthread_p when using profiling on OpenBSD.Eric Christopher2012-09-132-7/+18
| | | | | | Patch by Brad Smith. llvm-svn: 163777
* InitHeaderSearch.cpp: [mingw] Handle DOSish paths only on Win32 hosts.NAKAMURA Takumi2012-09-131-0/+4
| | | | llvm-svn: 163776
* clang/lib/Analysis/ObjCNoReturn.cpp: Fix [-Wnewline-eof]NAKAMURA Takumi2012-09-131-1/+1
| | | | llvm-svn: 163775
* Add a new compression type to ModRM table that detects when the memory modRM ↵Craig Topper2012-09-133-2/+24
| | | | | | byte represent 8 instructions and the reg modRM byte represents up to 64 instructions. Reduces modRM table from 43k entreis to 25k entries. Based on a patch from Manman Ren. llvm-svn: 163774
* Modified the command template to include best practices.Greg Clayton2012-09-131-17/+24
| | | | llvm-svn: 163773
* Format strings: offer a fixit for Darwin's %D/%U/%O to ISO %d/%u/%o.Jordan Rose2012-09-135-39/+88
| | | | | | <rdar://problem/12061922> llvm-svn: 163772
* Format strings: %D, %U, and %O are valid on Darwin (same as %d, %u, %o).Jordan Rose2012-09-137-10/+150
| | | | | | | | | These will warn under -Wformat-non-iso, and will still be rejected outright on other platforms. <rdar://problem/12061922> llvm-svn: 163771
* MCJIT: relocation addends encoded in the target aren't quite so easy.Jim Grosbach2012-09-131-1/+6
| | | | | | | | | | The assumption that the target address for the relocation will always be sizeof(intptr_t) and will always contain an addend for the relocation value is very wrong. Default to no addend for now. rdar://12157052 llvm-svn: 163765
* MCJIT: Make sure to mask off non-type-field bits.Jim Grosbach2012-09-131-1/+1
| | | | | | | When comparing to the macho relocation type enum value, make sure we're only comparing against the bits in the RelType that correspond. llvm-svn: 163764
* MCJIT: Pass the i386 MachO relocation type properly.Jim Grosbach2012-09-131-1/+1
| | | | llvm-svn: 163763
* [analyzer] Don't reimplement an existing function.Anna Zaks2012-09-132-19/+3
| | | | | | Thanks Jordan. llvm-svn: 163762
* Don't fold indexed loads into TCRETURNmi64.Jakob Stoklund Olesen2012-09-134-2/+74
| | | | | | | | | | | | | We don't have enough GR64_TC registers when calling a varargs function with 6 arguments. Since %al holds the number of vector registers used, only %r11 is available as a scratch register. This means that addressing modes using both base and index registers can't be folded into TCRETURNmi64. <rdar://problem/12282281> llvm-svn: 163761
* Teach -Wuninitialized to recognize common "noreturn" idioms inTed Kremenek2012-09-132-4/+45
| | | | | | | | | | | | | Objective-C related to NSException. Fixes <rdar://problem/12287498> I debated whether or not this logic should be sunk into the CFG itself. It's not clear if we should, as different analyses may wish to have different policies. We can re-evaluate this in the future. llvm-svn: 163760
* Refactor logic in ExprEngine for detecting 'noreturn' methodsTed Kremenek2012-09-136-66/+129
| | | | | | | | | | in NSException to a helper object in libAnalysis that can also be used by Sema. Not sure if the predicate name 'isImplicitNoReturn' is the best one, but we can massage that later. No functionality change. llvm-svn: 163759
* Add a few FIXMEs.Chad Rosier2012-09-131-0/+3
| | | | llvm-svn: 163758
* Introduce the __llvm_gcov_flush function.Bill Wendling2012-09-131-6/+56
| | | | | | | | | | This function writes out the current values of the counters and then resets them. This can be used similarly to the __gcov_flush function to sync the counters when need be. For instance, in a situation where the application doesn't exit. <rdar://problem/12185886> llvm-svn: 163757
* [ms-inline asm] Handle the enumeration of input and output expressions in aChad Rosier2012-09-132-35/+118
| | | | | | | | | | | | more robust way to address a few FIXMEs. The initial implementation, r163342, built the IR asm string and then tried to patch things on the fly without enough context. Specifically, it didn't skip mnemonics nor did it track with assembly instruction an expression was related to. The new implementation patches the operands and then builds the final IR string. llvm-svn: 163756
* Reapply:Eric Christopher2012-09-123-7/+19
| | | | | | | | | | | Make clang emit a flag for DW_AT_object_pointer for the artificial args where it should (implicit first arguments). FileCheck-ize a test as well and update tests to take into account the object pointer flag. rdar://9797999 llvm-svn: 163755
* Recommit, with fixes:Eric Christopher2012-09-127-2/+140
| | | | | | | | | | | Add some support for dealing with an object pointer on arguments. Part of rdar://9797999 which now supports adding the object pointer attribute to the subprogram as it should. llvm-svn: 163754
* Misc.Akira Hatanaka2012-09-121-3/+6
| | | | | | | | | 1. Remove RA from list of allocatable registers 2. Enable d,y,r constraint inline assembly instructions Patch by Reed Kotler. llvm-svn: 163753
* Add two new functions to Qualifiers.Richard Trieu2012-09-121-1/+56
| | | | | | | | | | | | | static Qualifiers removeCommonQualifiers(Qualifiers &L, Qualifiers &R) Removes the common qualifiers from L and R and returns them in a new Qualifier. This will be used in template diffing. void removeQualifiers(Qualifiers Q) Removes the qualifiers in Q from the current qualifier. This replaces the current underlying implementation of operator- and operator -= which only performed bit masking. llvm-svn: 163752
* Whitespace.Chad Rosier2012-09-121-1/+1
| | | | llvm-svn: 163751
* [analyzer] Do not report use of undef on "return foo();" when the return ↵Anna Zaks2012-09-124-0/+39
| | | | | | | | type is void. Fixes a false positive found by analyzing LLVM code base. llvm-svn: 163750
* [analyzer] Fix another false positive in malloc realloc logic.Anna Zaks2012-09-122-13/+42
| | | | llvm-svn: 163749
* [analyzer] Teach UndefOrNullArgVisitor to track parent regions.Anna Zaks2012-09-124-426/+1183
| | | | llvm-svn: 163748
* [analyzer] Fix another use of the address of a temporary, like r163402.Jordan Rose2012-09-121-1/+2
| | | | | | | | | Again, GCC is more aggressive about reusing temporary space than we are, leading to Release build crashes for this undefined behavior. PR13710 (though it may not be the only problem there) llvm-svn: 163747
* [analyzer] Re-add reinterpret_cast virtual call test case from r163644.Jordan Rose2012-09-121-0/+16
| | | | | | | We mostly just don't want to crash analyzing this test case; it's likely the code found here will actually crash if compiled and run. llvm-svn: 163746
* [analyzer] Handle when the dynamic type is worse than the static type.Jordan Rose2012-09-121-1/+8
| | | | | | | | | | | | | | | Currently we don't update the dynamic type of a C++ object when it is cast. This can cause the situation above, where the static type of the region is now known to be a subclass of the dynamic type. Once we start updating DynamicTypeInfo in response to the various kinds of casts in C++, we can re-add this assert to make sure we don't miss any cases. This work is tracked by <rdar://problem/12287087>. In -Asserts builds, we will simply not return any runtime definition when our DynamicTypeInfo is known to be incorrect like this. llvm-svn: 163745
* Revert "[analyzer] Use the static type for a virtual call if the dynamic ↵Jordan Rose2012-09-122-26/+3
| | | | | | | | | | | | type is worse." Using the static type may be inconsistent with later calls. We should just report that there is no inlining definition available if the static type is better than the dynamic type. See next commit. This reverts r163644 / 19d5886d1704e24282c86217b09d5c6d35ba604d. llvm-svn: 163744
* Fix PR11985Michael Liao2012-09-1215-35/+86
| | | | | | | | | | | - BlockAddress has no support of BA + offset form and there is no way to propagate that offset into machine operand; - Add BA + offset support and a new interface 'getTargetBlockAddress' to simplify target block address forming; - All targets are modified to use new interface and X86 backend is enhanced to support BA + offset addressing. llvm-svn: 163743
* Fixing a potential crasher related to running regular expressions against a ↵Enrico Granata2012-09-121-1/+4
| | | | | | NULL pointer llvm-svn: 163742
* objective-C++ test for my previous patch.Fariborz Jahanian2012-09-121-0/+11
| | | | | | // rdar://12280826 llvm-svn: 163741
* Rename isA to isSameOrDerivedFrom.Daniel Jasper2012-09-122-5/+8
| | | | | | | | | | | There are two evils we can choose from: - Name overlap between isA-matcher and llvm::isa<>() - Bad name for what the isA-matcher currently does After some discussion we have agreed to go with the latter evil. Review: http://llvm-reviews.chandlerc.com/D40 llvm-svn: 163740
* Detect overflow in the path count computation. rdar://12277446.Dan Gohman2012-09-122-0/+342
| | | | llvm-svn: 163739
* objective-C arc: don't issue no explicit ownership warning whenFariborz Jahanian2012-09-122-7/+20
| | | | | | | __autoreleasing is explicitely added to param type. // rdar://12280826 llvm-svn: 163738
* Fix test case for Release builds.Chad Rosier2012-09-121-1/+1
| | | | llvm-svn: 163737
OpenPOWER on IntegriCloud