summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* clang-cl: Pass -debug to the linker when using -fsanitize=addressHans Wennborg2013-08-282-0/+2
| | | | llvm-svn: 189496
* PR16995: DebugInfo: Don't overwrite existing member lists when adding ↵David Blaikie2013-08-281-1/+18
| | | | | | | | | template arguments With the added debug assertions this fix is covered by existing Clang tests. (& found some other issues, also fixed) llvm-svn: 189495
* PR16995: Failing to associate static members with their enclosing classDavid Blaikie2013-08-281-8/+5
| | | | | | | | | | | | | In the transition from declaration (with some members) to definition, we were overwriting the list of members with the empty list when attaching template parameters. The fix is in llvm::DICompositeType::addMember (along with asserts that cause this bug to be covered by existing Clang test cases), including adding some asserts to catch this sort of issue which found issues fixed in this commit. llvm-svn: 189494
* clang-replace: Afford applying replacements in memoryEdwin Vane2013-08-283-14/+42
| | | | | | | | | For users of libclangReplace, this patch affords the ability to apply replacements in memory instead of writing to disk. Differential Revision: http://llvm-reviews.chandlerc.com/D1519 llvm-svn: 189493
* [analyzer] Add support for testing the presence of weak functions.Jordan Rose2013-08-286-67/+174
| | | | | | | | | | | | | | | | | | | | | | | | When casting the address of a FunctionTextRegion to bool, or when adding constraints to such an address, use a stand-in symbol to represent the presence or absence of the function if the function is weakly linked. This is groundwork for possible simple availability testing checks, and can already catch mistakes involving inverted null checks for weakly-linked functions. Currently, the implementation reuses the "extent" symbols, originally created for tracking the size of a malloc region. Since FunctionTextRegions cannot be dereferenced, the extent symbol will never be used for anything else. Still, this probably deserves a refactoring in the future. This patch does not attempt to support testing the presence of weak /variables/ (global variables), which would likely require much more of a change and a generalization of "region structure metadata", like the current "extents", vs. "region contents metadata", like CStringChecker's "string length". Patch by Richard <tarka.t.otter@googlemail.com>! llvm-svn: 189492
* cmake: Prevent semicolon separated lists in llvm-config (PR17020)Hans Wennborg2013-08-281-1/+2
| | | | llvm-svn: 189491
* [ARMv8]Joey Gouly2013-08-284-14/+50
| | | | | | | | | | | Fix a few things in one swoop. # Add some negative tests. # Fix some formatting issues. # Add some missing IsThumb / ARMv8 # Fix some outs / ins mistakes. llvm-svn: 189490
* Add a minimal implementation of ranlib.Rafael Espindola2013-08-284-13/+65
| | | | | | | | | | | | This is just enough to get "llvm-ranlib foo.a" working and tested. Making llvm-ranlib a symbolic link to llvm-ar doesn't work so well with llvm's option parsing, but ar's option parsing is mostly custom anyway. This patch also removes the -X32_64 option. Looks like it was just added in r10297 as part of implementing the current command line parsing. I can add it back (with a test) if someone really has AIX portability problems without it. llvm-svn: 189489
* cmake: Add /Oy- (don't omit frame pointer) to compile flagsHans Wennborg2013-08-281-0/+1
| | | | llvm-svn: 189488
* Add missing "sys/stat.h" includeDaniel Malea2013-08-281-0/+2
| | | | | | - should help with FreeBSD buildbot llvm-svn: 189487
* sanitizer_common: Use PYTHON_EXECUTABLE to choose appropriate python.Will Dietz2013-08-283-2/+6
| | | | | | Fixes build on systems where 'python' is not python2. llvm-svn: 189486
* Clear 'packet_str' before putting new packet.Hafiz Abid Qadeer2013-08-281-0/+2
| | | | llvm-svn: 189484
* ARM: Use "dmb sy" for barriers on M-class CPUsTim Northover2013-08-282-2/+5
| | | | | | | | The usual default of "dmb ish" (inner-shareable) isn't even a valid instruction on v6M or v7M (well, it does the same thing but software is strongly discouraged from using it) so we should emit a full-system barrier there. llvm-svn: 189483
* [ARMv8] Add a missing IsThumb to t2LDAEXD.Joey Gouly2013-08-281-1/+1
| | | | llvm-svn: 189482
* ARM: remove unused v(add|sub)hn and vqdml[as]l intrinsics.Tim Northover2013-08-285-158/+6
| | | | | | | Clang is now generating cleaner IR, so this removes the old variants which should be completely unused. llvm-svn: 189481
* ARM: add patterns for vqdmlal with separate vqdmull and vqaddsTim Northover2013-08-282-0/+128
| | | | | | | | | The vqdmlal and vqdmlls instructions are really just a fused pair consisting of a vqdmull.sN and a vqadd.sN. This adds patterns to LLVM so that we can switch Clang's CodeGen over to generating these instead of the special vqdmlal intrinsics. llvm-svn: 189480
* Make lint checker script more robustAlexey Samsonov2013-08-282-4/+6
| | | | llvm-svn: 189479
* [mips][msa] Added bnz.df, bnz.v, bz.df, and bz.vDaniel Sanders2013-08-289-2/+383
| | | | | | | | | | | | | These intrinsics are legalized to V(ALL|ANY)_(NON)?ZERO nodes, are matched as SN?Z_[BHWDV]_PSEUDO pseudo's, and emitted as a branch/mov sequence to evaluate to 0 or 1. Note: The resulting code is sub-optimal since it doesnt seem to be possible to feed the result of an intrinsic directly into a brcond. At the moment it uses (SETCC (VALL_ZERO $ws), 0, SETEQ) and similar which unnecessarily evaluates the boolean twice. llvm-svn: 189478
* Cleanup/rearrange includes:Virgile Bello2013-08-2824-18/+19
| | | | | | | - factorize unistd.h and stdbool.h in lldb-types.h. - Add <functional> and <string> where required. llvm-svn: 189477
* [mips][msa] Added load/store intrinsics.Daniel Sanders2013-08-2811-21/+532
| | | | llvm-svn: 189476
* Check code style in check-sanitizer commandAlexey Samsonov2013-08-284-9/+4050
| | | | llvm-svn: 189475
* [sanitizer] fix code styleAlexey Samsonov2013-08-285-17/+19
| | | | llvm-svn: 189474
* 80 colsAlexey Samsonov2013-08-281-3/+4
| | | | llvm-svn: 189473
* AVX-512: added SQRT, VRSQRT14, VCOMISS, VUCOMISS, VRCP14, VPABSElena Demikhovsky2013-08-285-23/+618
| | | | llvm-svn: 189472
* [mips][msa] Added move.vDaniel Sanders2013-08-284-0/+55
| | | | llvm-svn: 189471
* Handle run-length-encoding.Hafiz Abid Qadeer2013-08-281-2/+25
| | | | | | The change was taken from a patch by Virgile Bello. llvm-svn: 189470
* [SystemZ] Add support for TMHH, TMHL, TMLH and TMLLRichard Sandiford2013-08-2811-12/+490
| | | | | | | | | For now just handles simple comparisons of an ANDed value with zero. The CC value provides enough information to do any comparison for a 2-bit mask, and some nonzero comparisons with more populated masks, but that's all future work. llvm-svn: 189469
* [mips][msa] Added cfcmsa, and ctcmsaDaniel Sanders2013-08-289-0/+279
| | | | | | | | The MSA control registers have been added as reserved registers, and are only used via ISD::Copy(To|From)Reg. The intrinsics are lowered into these nodes. llvm-svn: 189468
* [mips][msa] Added f[cs]af, f[cs]or, f[cs]ueq, f[cs]ul[et], f[cs]une, fsun, ↵Daniel Sanders2013-08-286-14/+1442
| | | | | | ftrunc_[su], hadd_[su], hsub_[su], sr[al]r, sr[al]ri llvm-svn: 189467
* clang-format: Improve token breaking behavior.Daniel Jasper2013-08-283-9/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | Two changes: * Don't add an extra penalty on breaking the same token multiple times. Generally, we should prefer not to break, but once we break, the normal line breaking penalties apply. * Slightly increase the penalty for breaking comments. In general, the author has put some thought into how to break the comment and we should not overwrite this unnecessarily. With a 40-column column limit, formatting aaaaaa("aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa"); Leads to: Before: aaaaaa( "aaaaaaaaaaaaaaaa aaaaaaaaaaaaaaaa " "aaaaaaaaaaaaaaaa"); After: aaaaaa("aaaaaaaaaaaaaaaa " "aaaaaaaaaaaaaaaa " "aaaaaaaaaaaaaaaa"); llvm-svn: 189466
* [mips][msa] Summarize testsDaniel Sanders2013-08-2840-4/+114
| | | | | | Adds a comment to the start of each test summarizing the area the test covers. llvm-svn: 189465
* ARM: comment on why vmull intrinsic has to exist for now.Tim Northover2013-08-281-0/+5
| | | | llvm-svn: 189464
* ARM: Emit normal IR for vaddhn/vsubhn NEON intrinsicsTim Northover2013-08-281-6/+36
| | | | | | | | | | | | | These operations "vector add high-half narrow" actually correspond to the sequence: %sum = add <4 x i32> %lhs, %rhs %high = lshr <4 x i32> %sum, <i32 16, i32 16, i32 16, i32 16> %res = trunc <4 x i32> %high to <4 x i16> Now that LLVM can spot this, Clang should emit the corresponding LLVM IR. llvm-svn: 189463
* ARM: use vqdmull and vqadds/vqsubs to implement vqdmlal/vqdmlslTim Northover2013-08-281-6/+22
| | | | | | | | | | | The NEON intrinsics vqdmlal and vqdmlsl are really just combinations of a saturating-doubling-multiply (vqdmull) and a saturating add/sub, so now that LLVM can spot those patterns Clang should emit them instead of specialised intrinsics. Feature already tested by existing ARM NEON intrinsics tests. llvm-svn: 189462
* [msan] Remove extra backup/restore calls.Evgeniy Stepanov2013-08-281-4/+0
| | | | llvm-svn: 189461
* clang-format: Fix segfault in 'incomplete' macros.Daniel Jasper2013-08-282-3/+7
| | | | | | | | | The code leading to a segfault was: #pragma omp threadprivate(y)), // long comment leading to a line break This fixes llvm.org/PR16513. llvm-svn: 189460
* clang-format: Fix infinite loop in macro special case.Daniel Jasper2013-08-282-11/+9
| | | | | | | | | | | | | | If escaped newlines are aligned right (FormatStyle.AlignEscapedNewlinesLeft == false), and a line contained too many characters to fit into the column limit, this would result in a (virtually) endless loop creating a negative number of spaces. Instead, allow the escaped newlines to be pushed past the column limit in this case. This fixes llvm.org/PR16515. llvm-svn: 189459
* [SystemZ] Extend memcmp support to all constant lengthsRichard Sandiford2013-08-284-30/+188
| | | | | | This uses the infrastructure added for memcpy and memmove in r189331. llvm-svn: 189458
* [asan]: fix a CHECK failure in use-after-return mode; enable and fix ↵Kostya Serebryany2013-08-283-11/+26
| | | | | | stack-use-after-return.cc; add a test for UAR mode in asan_noinst_test llvm-svn: 189457
* Fix use of uninitialized value added in r189400 (found by MemorySanitizer)Alexey Samsonov2013-08-281-4/+3
| | | | llvm-svn: 189456
* clang-format: Don't insert space in __has_includeDaniel Jasper2013-08-282-1/+5
| | | | | | | | | | | | | | | | Before: #if __has_include( <strstream>) #include <strstream> #endif After: #if __has_include(<strstream>) #include <strstream> #endif This fixes llvm.org/PR16516. llvm-svn: 189455
* Generate list of symbols exported from sanitizer runtimes only on 64-bit UnixAlexey Samsonov2013-08-283-13/+20
| | | | llvm-svn: 189454
* clang-format: Fix corner case in ObjC interface definitions.Daniel Jasper2013-08-282-1/+11
| | | | | | | | | | | | | | | In @implementation ObjcClass - (void)method; { } @end the ObjC compiler seems to accept the superfluous comma after "method", but clang-format used to assert on the subsequent "{". This fixes llvm.org/PR16604. llvm-svn: 189453
* [analyzer] Assume new returns non-null even under -fno-exceptionsPavel Labath2013-08-283-130/+51
| | | | | | | | | | | | | | | | | | Summary: -fno-exceptions does not implicitly attach a nothrow specifier to every operator new. Even in this mode, non-nothrow new must not return a null pointer. Failure to allocate memory can be signalled by other means, or just by killing the program. This behaviour is consistent with the compiler - even with -fno-exceptions, the generated code never tests for null (and would segfault if the opeator actually happened to return null). Reviewers: jordan_rose CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D1528 llvm-svn: 189452
* clang-format: Improve braced init list detection:Daniel Jasper2013-08-282-1/+8
| | | | | | | | | | | | | | | | Before: std::this_thread::sleep_for(std::chrono::nanoseconds{ std::chrono::seconds { 1 } } / 5); After: std::this_thread::sleep_for( std::chrono::nanoseconds{ std::chrono::seconds{ 1 } } / 5); This fixes llvm.org/PR16554. llvm-svn: 189451
* clang-format: Fix corner case in overloaded operator definitions.Daniel Jasper2013-08-282-1/+6
| | | | | | | | | | | | | | | | | | Before: SomeLoooooooooooooooooooooooooogType operator> >(const SomeLooooooooooooooooooooooooogType &other); SomeLoooooooooooooooooooooooooogType // break operator>>(const SomeLooooooooooooooooooooooooogType &other); After: SomeLoooooooooooooooooooooooooogType operator>>(const SomeLooooooooooooooooooooooooogType &other); SomeLoooooooooooooooooooooooooogType // break operator>>(const SomeLooooooooooooooooooooooooogType &other); This fixes llvm.org/PR16328. llvm-svn: 189450
* clang-format: Fix space in decltype-constexprs.Daniel Jasper2013-08-282-1/+3
| | | | | | | | | | Before: static constexpr bool Bar = decltype(bar()) ::value; After: static constexpr bool Bar = decltype(bar())::value; llvm-svn: 189449
* Add missing includeCraig Topper2013-08-281-0/+1
| | | | llvm-svn: 189448
* Revert r189442 "Change default # of digits for APFloat::toString"Ted Kremenek2013-08-282-13/+9
| | | | | | This is breaking numerous Clang tests on the buildbot. llvm-svn: 189447
* Remove comment on the availability of boxed expressions. They have been ↵Ted Kremenek2013-08-281-6/+0
| | | | | | available for a while. llvm-svn: 189446
OpenPOWER on IntegriCloud