summaryrefslogtreecommitdiffstats
path: root/llvm/unittests/Support
Commit message (Collapse)AuthorAgeFilesLines
* BumpPtrAllocator: use uintptr_t when aligning addresses to avoid undefined ↵Hans Wennborg2014-09-021-1/+1
| | | | | | | | | behaviour In theory, alignPtr() could push a pointer beyond the end of the current slab, making comparisons with that pointer undefined behaviour. Use an integer type to avoid this. llvm-svn: 216973
* unique_ptrify the result of SpecialCaseList::createDavid Blaikie2014-09-021-17/+18
| | | | llvm-svn: 216925
* Cleaning up static initializers in TimeValue.Chris Bieneman2014-08-291-6/+6
| | | | | | Code reviewed by Chandlerc llvm-svn: 216703
* Convert a few more cases of direct intialization of unique_ptrs from ↵David Blaikie2014-08-272-10/+10
| | | | | | | | MemoryBuffer::getMemBuffer to move initialization now that it returns by unique_ptr instead of raw pointer. Cleanup/improvements following r216583. llvm-svn: 216605
* Return a std::unique_ptr when creating a new MemoryBuffer.Rafael Espindola2014-08-273-11/+11
| | | | llvm-svn: 216583
* yaml::Stream doesn't need to take ownership of the buffer.Rafael Espindola2014-08-271-1/+1
| | | | | | In fact, most users were already using the StringRef version. llvm-svn: 216575
* Simplify creation of a bunch of ArrayRefs by using None, makeArrayRef or ↵Craig Topper2014-08-272-16/+16
| | | | | | just letting them be implicitly created. llvm-svn: 216525
* Fix Path unittests on Windows after raw_fd_ostream changesReid Kleckner2014-08-261-7/+7
| | | | llvm-svn: 216422
* Modernize raw_fd_ostream's constructor a bit.Rafael Espindola2014-08-251-6/+6
| | | | | | | | | | Take a StringRef instead of a "const char *". Take a "std::error_code &" instead of a "std::string &" for error. A create static method would be even better, but this patch is already a bit too big. llvm-svn: 216393
* Fix PR17239 by changing the semantics of the RemainingArgsClass Option kindReid Kleckner2014-08-221-3/+3
| | | | | | | | | | | | | | | | | | | | | | | This patch contains the LLVM side of the fix of PR17239. This bug that happens because the /link (clang-cl.exe argument) is marked as "consume all remaining arguments". However, when inside a response file, /link should only consume all remaining arguments inside the response file where it is located, not the entire command line after expansion. My patch will change the semantics of the RemainingArgsClass kind to always consume only until the end of the response file when the option originally came from a response file. There are only two options in this class: dash dash (--) and /link. Reviewed By: rnk Differential Revision: http://reviews.llvm.org/D4899 Patch by Rafael Auler! llvm-svn: 216280
* [Support] Fix the overflow bug in ULEB128 decoding.Alex Lorenz2014-08-221-0/+1
| | | | | | Differential Revision: http://reviews.llvm.org/D5029 llvm-svn: 216268
* Explicitly pass ownership of the MemoryBuffer to AddNewSourceBuffer using ↵David Blaikie2014-08-211-2/+3
| | | | | | std::unique_ptr llvm-svn: 216223
* BumpPtrAllocator: don't accept 0 for the alignment parameterHans Wennborg2014-08-191-14/+14
| | | | | | | | It seems unnecessary to have to use an extra branch to check for this special case. http://reviews.llvm.org/D4945 llvm-svn: 216036
* Convert an ownership comment with std::uinque_ptr.Rafael Espindola2014-08-171-2/+3
| | | | llvm-svn: 215855
* BumpPtrAllocator: remove 'no slabs allocated yet' checkHans Wennborg2014-08-171-1/+1
| | | | | | | | | | We already handle the no-slabs case when checking whether the current slab is large enough: if no slabs have been allocated, CurPtr and End are both 0. alignPtr(0), will still be 0, and so "if (Ptr + Size <= End)" fails. Differential Revision: http://reviews.llvm.org/D4943 llvm-svn: 215841
* Revert "[Support] Promote cl::StringSaver to a separate utility"Sean Silva2014-08-151-2/+9
| | | | | | | | | This reverts commit r215784 / 3f8a26f6fe16cc76c98ab21db2c600bd7defbbaa. LLD has 3 StringSaver's, one of which takes a lock when saving the string... Need to investigate more closely. llvm-svn: 215790
* [Support] Promote cl::StringSaver to a separate utilitySean Silva2014-08-151-9/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This class is generally useful. In breaking it out, the primary change is that it has been made non-virtual. It seems like being abstract led to there being 3 different (2 in llvm + 1 in clang) concrete implementations which disagreed about the ownership of the saved strings (see the manual call to free() in the unittest StrDupSaver; yes this is different from the CommandLine.cpp StrDupSaver which owns the stored strings; which is different from Clang's StringSetSaver which just holds a reference to a std::set<std::string> which owns the strings). I've identified 2 other places in the codebase that are open-coding this pattern: memcpy(Alloc.Allocate<char>(strlen(S)+1), S, strlen(S)+1) I'll be switching them over. They are * llvm::sys::Process::GetArgumentVector * The StringAllocator member of YAMLIO's Input class This also will allow simplifying Clang's driver.cpp quite a bit. Let me know if there are any other places that could benefit from StringSaver. I'm also thinking of adding a saveStringRef member for getting a stable StringRef. llvm-svn: 215784
* Test commit, remove trailing whitespaceBenjamin Foster2014-08-131-1/+1
| | | | llvm-svn: 215556
* Asserting that the call to chdir succeeds in this test. Fixes some ↵Aaron Ballman2014-08-131-2/+2
| | | | | | -Wunused-result warnings. llvm-svn: 215539
* Fix expected windows result.Rafael Espindola2014-08-091-1/+1
| | | | llvm-svn: 215267
* Remove dead code. Fixes pr20544.Rafael Espindola2014-08-081-6/+6
| | | | llvm-svn: 215243
* Fix bug 20125 - clang-format segfaults on bad config.Rafael Espindola2014-08-081-0/+7
| | | | | | | The problem was in unchecked dyn_cast inside of Input::createHNodes. Patch by Roman Kashitsyn! llvm-svn: 215205
* Path: Stop claiming path::const_iterator is bidirectionalJustin Bogner2014-08-041-3/+3
| | | | | | | | | | | | | | | | | | | | | | path::const_iterator claims that it's a bidirectional iterator, but it doesn't satisfy all of the contracts for a bidirectional iterator. For example, n3376 24.2.5 p6 says "If a and b are both dereferenceable, then a == b if and only if *a and *b are bound to the same object", but this doesn't work with how we stash and recreate Components. This means that our use of reverse_iterator on this type is invalid and leads to many of the valgrind errors we're hitting, as explained by Tilmann Scheller here: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20140728/228654.html Instead, we admit that path::const_iterator is only an input_iterator, and implement a second input_iterator for path::reverse_iterator (by changing const_iterator::operator-- to reverse_iterator::operator++). All of the uses of this just traverse once over the path in one direction or the other anyway. llvm-svn: 214737
* unittests: Actually test reverse iterators in Path testsJustin Bogner2014-07-161-5/+5
| | | | | | | | | | | | | | | | | | | | This re-enables some #if 0'd code (since 2010) in the Path unittests and makes at least a weak effort at testing sys::path's rbegin/rend. This change was inspired by some test failures near uses of rbegin and rend here: http://lab.llvm.org:8011/builders/clang-x86_64-linux-vg/builds/3209 The "valgrind was whining" comment looked promising in terms of a simpler to debug case of the same errors. However, it appears that the valgrind complaints the comment was referring to are distinct from the ones in the frontend, since this updated test isn't complaining for me under valgrind. In any case, the disabled tests weren't helping anybody. llvm-svn: 213125
* Support: Fix option handling when using cl::Required with aliasoptJustin Bogner2014-07-141-0/+19
| | | | | | | | | | | | | | | | Until now, attempting to create an alias of a required option would complain if the user supplied the alias, because the required option didn't have a value. Similarly, if you said the alias was required, then using the base option would complain that the alias wasn't supplied. Lastly, if you put required on both, *neither* option would work. By changning alias to overload addOccurrence and setting cl::Required on the original option, we can get this to behave in a more useful way. I've also added a test and updated a user that was getting this wrong. llvm-svn: 212986
* Decouple llvm::SpecialCaseList text representation and its LLVM IR semantics.Alexey Samsonov2014-07-092-0/+127
| | | | | | | | | | | | | | | | Turn llvm::SpecialCaseList into a simple class that parses text files in a specified format and knows nothing about LLVM IR. Move this class into LLVMSupport library. Implement two users of this class: * DFSanABIList in DFSan instrumentation pass. * SanitizerBlacklist in Clang CodeGen library. The latter will be modified to use actual source-level information from frontend (source file names) instead of unstable LLVM IR things (LLVM Module identifier). Remove dependency edge from ClangCodeGen/ClangDriver to LLVMTransformUtils. No functionality change. llvm-svn: 212643
* These should be EXPECT_TRUE, not EXPECT_FALSE. Amends r212415.Aaron Ballman2014-07-061-2/+2
| | | | llvm-svn: 212419
* Fixing compile errors related to changes with MemoryBuffer::getFile.Aaron Ballman2014-07-061-6/+6
| | | | llvm-svn: 212415
* Update the MemoryBuffer API to use ErrorOr.Rafael Espindola2014-07-061-7/+8
| | | | llvm-svn: 212405
* Remove unused typedef. GCC warns about this.Benjamin Kramer2014-07-011-3/+0
| | | | llvm-svn: 212105
* Re-apply r211287: Remove support for LLVM runtime multi-threading.Chandler Carruth2014-06-271-2/+0
| | | | | | | I'll fix the problems in libclang and other projects in ways that don't require <mutex> until we sort out the cygwin situation. llvm-svn: 211900
* Revert r211287, "Remove support for LLVM runtime multi-threading."NAKAMURA Takumi2014-06-241-0/+2
| | | | | | libclang still requires it on cygming, lack of incomplete <mutex>. llvm-svn: 211592
* Support: Return ScaledNumbers::MaxScale from getQuotient()Duncan P. N. Exon Smith2014-06-241-4/+4
| | | | | | Return MaxScale now that it's available. llvm-svn: 211559
* Support: Extract ScaledNumbers::getSum() and getDifference()Duncan P. N. Exon Smith2014-06-231-0/+150
| | | | llvm-svn: 211553
* Support: Return scale from ScaledNumbers::matchScales()Duncan P. N. Exon Smith2014-06-231-1/+1
| | | | | | This will be convenient when extracting `ScaledNumbers::getSum()`. llvm-svn: 211552
* Support: Extract ScaledNumbers::matchScale()Duncan P. N. Exon Smith2014-06-231-0/+64
| | | | llvm-svn: 211531
* Cleanup r211507Duncan P. N. Exon Smith2014-06-231-1/+1
| | | | llvm-svn: 211521
* Support: Extract ScaledNumbers::compare()Duncan P. N. Exon Smith2014-06-231-0/+37
| | | | llvm-svn: 211507
* Support: ScaledNumber: Fix inconsistent test namesDuncan P. N. Exon Smith2014-06-201-6/+6
| | | | llvm-svn: 211414
* Support: Write ScaledNumbers::getLg{,Floor,Ceiling}()Duncan P. N. Exon Smith2014-06-201-0/+94
| | | | llvm-svn: 211413
* Support: Write ScaledNumber::getQuotient() and getProduct()Duncan P. N. Exon Smith2014-06-201-0/+112
| | | | llvm-svn: 211409
* Support: Mark end of namespacesDuncan P. N. Exon Smith2014-06-201-1/+2
| | | | | | This convinces clang-format to leave a newline. llvm-svn: 211406
* Support: Clean up getRounded() testsDuncan P. N. Exon Smith2014-06-201-14/+12
| | | | llvm-svn: 211337
* Support: Write ScaledNumbers::getAdjusted()Duncan P. N. Exon Smith2014-06-201-0/+23
| | | | llvm-svn: 211336
* Support: Write ScaledNumbers::getRounded()Duncan P. N. Exon Smith2014-06-202-0/+61
| | | | | | | | | | | Start extracting helper functions out of -block-freq's `UnsignedFloat` into `Support/ScaledNumber.h` with the eventual goal of moving and renaming the class to `ScaledNumber`. The bike shed about names is still being painted, but I'm going with this for now. llvm-svn: 211333
* Remove support for LLVM runtime multi-threading.Zachary Turner2014-06-191-2/+0
| | | | | | | | | | | | | After a number of previous small iterations, the functions llvm_start_multithreaded() and llvm_stop_multithreaded() have been reduced essentially to no-ops. This change removes them entirely. Reviewed by: rnk, dblaikie Differential Revision: http://reviews.llvm.org/D4216 llvm-svn: 211287
* PR10140 - StringPool's PooledStringPtr has non-const operator== causing bad ↵Nikola Smiljanic2014-06-192-0/+32
| | | | | | | | OR-result. Mark conversion operator explicit and const qualify comparison operators. llvm-svn: 211244
* ConvertUTF tests: remove uses of initializer lists to restore compatibilityDmitri Gribenko2014-06-171-695/+1108
| | | | | | with MSVC llvm-svn: 211093
* Revert r211066, 211067, 211068, 211069, 211070.Zachary Turner2014-06-161-0/+2
| | | | | | | These were committed accidentally from the wrong branch before having a review sign-off. llvm-svn: 211072
* Remove some more code out into a separate CL.Zachary Turner2014-06-161-2/+0
| | | | llvm-svn: 211067
OpenPOWER on IntegriCloud