summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [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
* Remove an overly-aggressive assertion. The code following this assertion ↵Owen Anderson2012-09-121-2/+0
| | | | | | already knows how to handle the case where DstRC was NULL, so it's not actually protecting us from anything, and this pattern can come up when using unknown_class operands in the SelectionDAG. llvm-svn: 163736
* Delete dead code.Jakob Stoklund Olesen2012-09-122-47/+0
| | | | llvm-svn: 163735
* Revert "Add some support for dealing with an object pointer on arguments."Eric Christopher2012-09-127-130/+1
| | | | | | This should be done on the subprogram, not the variable itself. llvm-svn: 163734
* Revert "Make clang emit a flag for DW_AT_object_pointer for the artificial"Eric Christopher2012-09-123-19/+7
| | | | | | this should be done on the subprogram, not the variable. llvm-svn: 163733
* [ms-inline asm] Add a test case.Chad Rosier2012-09-121-0/+6
| | | | llvm-svn: 163731
* [ms-inline asm] Test case for r163729.Chad Rosier2012-09-121-0/+6
| | | | llvm-svn: 163730
* [ms-inline asm] Make the operand size directives case insensitive.Chad Rosier2012-09-121-8/+9
| | | | llvm-svn: 163729
* [ms-inline asm] If we have a single asm operand that maps to multipleChad Rosier2012-09-122-55/+65
| | | | | | | | | | | MCOperands then iterate over all of then when computing clobbers, inputs and outputs. On x86 the 1-to-many mapping is a memory operand that includes a BaseReg(reg), MemScale(imm), MemIndexReg(reg), an Expr(MCExpr or imm) and a MemSegReg(reg). Invalid register (Op.getReg() == 0) are not considered when computing clobber. llvm-svn: 163728
* TableGen: Convert an assert() to a proper diagnostic.Jim Grosbach2012-09-121-1/+3
| | | | llvm-svn: 163726
* Patches to make our llvm revision more C++11 friendly.Filipe Cabecinhas2012-09-121-0/+117
| | | | llvm-svn: 163725
* PGO: preserve branch-weight metadata when removing a case which jumpsManman Ren2012-09-122-1/+55
| | | | | | to the default target. llvm-svn: 163724
* Comment parsing: recognize more Doxygen commandsDmitri Gribenko2012-09-121-4/+17
| | | | llvm-svn: 163723
* Fix a couple of Doxygen issues pointed out by -Wdocumentation.Dmitri Gribenko2012-09-124-6/+6
| | | | llvm-svn: 163722
* Fix a couple of Doxygen comment issues pointed out by -Wdocumentation.Dmitri Gribenko2012-09-126-57/+58
| | | | llvm-svn: 163721
* Revert "objective-C: warn under a flag if missing argument"Ted Kremenek2012-09-123-42/+3
| | | | | | | We plan on discussing this more, but we shouldn't have it in the compiler in an incomplete state. llvm-svn: 163720
* Revert "objective-C: warn if selector has nothing but bare"Ted Kremenek2012-09-123-19/+4
| | | | | | We plan on discussing this more. llvm-svn: 163719
* Fix typo in a comment in lit.cfgDavid Blaikie2012-09-121-1/+1
| | | | | | | | Matches the same typo fix in clang's lit.cfg that this was copy/pasted from. (original fix to clang's lit.cfg in r163696) llvm-svn: 163718
* Pass -std=c99 when compiling mach_override.cAlexander Potapenko2012-09-121-1/+6
| | | | llvm-svn: 163717
* Give more accurate malloc statistics to malloc_zone_statistics().Alexander Potapenko2012-09-125-6/+50
| | | | | | Fix a warning in macros instantiation. llvm-svn: 163716
* Enable exceptions handling on PPC64 now that cr misaligned spillingRoman Divacky2012-09-121-2/+1
| | | | | | was fixed in r163713. llvm-svn: 163715
* Suppress the warnings about unused parameters in changeColor()Alexander Potapenko2012-09-121-0/+3
| | | | llvm-svn: 163714
* This patch corrects logic in PPCFrameLowering for save and restore of ↵Roman Divacky2012-09-125-74/+326
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | nonvolatile condition register fields across calls under the SVR4 ABIs. * With the 64-bit ABI, the save location is at a fixed offset of 8 from the stack pointer. The frame pointer cannot be used to access this portion of the stack frame since the distance from the frame pointer may change with alloca calls. * With the 32-bit ABI, the save location is just below the general register save area, and is accessed via the frame pointer like the rest of the save areas. This is an optional slot, so it must only be created if any of CR2, CR3, and CR4 were modified. * For both ABIs, save/restore logic is generated only if one of the nonvolatile CR fields were modified. I also took this opportunity to clean up an extra FIXME in PPCFrameLowering.h. Save area offsets for 32-bit GPRs are meaningless for the 64-bit ABI, so I removed them for correctness and efficiency. Fixes PR13708 and partially also PR13623. It lets us enable exception handling on PPC64. Patch by William J. Schmidt! llvm-svn: 163713
* Make TestAddDsymCommand not fail since bundles were accepted as add-dsym ↵Filipe Cabecinhas2012-09-121-4/+24
| | | | | | arguments. llvm-svn: 163712
* Add support for AMD Geode.Roman Divacky2012-09-122-0/+2
| | | | llvm-svn: 163710
* clang/test: [PR13820] Suppress LLP64-incompatible tests for ObjC with +Asserts.NAKAMURA Takumi2012-09-123-0/+9
| | | | llvm-svn: 163709
* clang/test/CodeGen/2008-01-25-ZeroSizedAggregate.c: [PR8833] Add REQUIRES: ↵NAKAMURA Takumi2012-09-121-0/+1
| | | | | | LP64. It fails with +Asserts for Win64. llvm-svn: 163708
* Fix compiler warnings: remove __attribute__((visibility)) for static ↵Alexander Potapenko2012-09-121-10/+10
| | | | | | functions, use unsigned char instead of char. llvm-svn: 163707
* [ASan] more macro/casting magic to suppress warningsAlexey Samsonov2012-09-123-4/+4
| | | | llvm-svn: 163706
* Claim --param ssp-buffer-size, even if the stack protector is notJoerg Sonnenberger2012-09-121-6/+8
| | | | | | active. llvm-svn: 163705
* [ASan] fix compiler warnings for unit test on AndroidAlexey Samsonov2012-09-122-13/+17
| | | | llvm-svn: 163704
* Fix constant folding through bitcasts by no longer relying on undefined ↵Kristof Beyls2012-09-122-2/+12
| | | | | | | | | | | | behaviour (converting NaN values between float and double). SelectionDAG::getConstantFP(double Val, EVT VT, bool isTarget); should not be used when Val is not a simple constant (as the comment in SelectionDAG.h indicates). This patch avoids using this function when folding an unknown constant through a bitcast, where it cannot be guaranteed that Val will be a simple constant. llvm-svn: 163703
* Add a flag to disable the code that looks for allocas which escaped the ↵Nadav Rotem2012-09-121-6/+18
| | | | | | lifetime regions. This is useful for debugging. No testcase because without this check we fail on assertions when finding escaped allocas. llvm-svn: 163702
* clang/test/CodeGenObjC: [PR13820] Suppress LLP64-incompatible tests.NAKAMURA Takumi2012-09-124-0/+12
| | | | llvm-svn: 163701
* clang/test/SemaCXX/dcl_ambig_res.cpp: [PR13819] It requires LP64 for now due ↵NAKAMURA Takumi2012-09-121-0/+3
| | | | | | to __SIZE_TYPE__. llvm-svn: 163700
* clang/test: [PR8833] Introduce the feature "LP64" to suppress ↵NAKAMURA Takumi2012-09-1213-0/+18
| | | | | | | | LLP64-incompatible tests. I think some of them could be rewritten to fit also LLP64. llvm-svn: 163699
* [Sanitizer] Fix compiler warnings (including void* arithmetic) in mach_overrideAlexey Samsonov2012-09-121-3/+3
| | | | llvm-svn: 163698
* clang/test/PCH/missing-file.cpp: Try to suppress accidental false on Windows.NAKAMURA Takumi2012-09-121-1/+4
| | | | | | %t.h might be touched by scanners as a hot file on Windows, to fail to remove %.h with single run. llvm-svn: 163697
* clang/test/lit.cfg: Fix a typo in comment.NAKAMURA Takumi2012-09-121-1/+1
| | | | llvm-svn: 163696
OpenPOWER on IntegriCloud