llvm-project/llvm/unittests/ADT
Serguei Katkov 3a46eb4442 [AsmWriter/APFloat] FP constant printing: Avoid usage of locale dependent snprinf
This should fix the bug https://bugs.llvm.org/show_bug.cgi?id=12906

To print the FP constant AsmWriter does the following:

  1) convert FP value to String (actually using snprintf function which is locale dependent).
  2) Convert String back to FP Value
  3) Compare original and got FP values. If they are not equal just dump as hex.

The problem happens on the 2nd step when APFloat does not expect group delimiter or
fraction delimiter other than period symbol and so on, which can be produced on the
first step if LLVM library is used in an environment with corresponding locale set.

To fix this issue the locale independent APFloat:toString function is used.
However it prints FP values slightly differently than snprintf does. Specifically
it suppress trailing zeros in significant, use capital E and so on.
It results in 117 test failures during make check.
To avoid this I've also updated APFloat.toString a bit to pass make check at least.

Reviewers: sberg, bogner, majnemer, sanjoy, timshen, rnk

Reviewed By: timshen, rnk

Subscribers: rnk, llvm-commits

Differential Revision: https://reviews.llvm.org/D32276

llvm-svn: 300943
2017-04-21 02:52:17 +00:00
..
APFloatTest.cpp [AsmWriter/APFloat] FP constant printing: Avoid usage of locale dependent snprinf 2017-04-21 02:52:17 +00:00
APIntTest.cpp [APInt] Add isSubsetOf method that can check if one APInt is a subset of another without creating temporary APInts 2017-04-20 16:17:13 +00:00
APSIntTest.cpp
ArrayRefTest.cpp Add some searching functions for ArrayRef<T>. 2016-11-22 23:22:19 +00:00
BitVectorTest.cpp Resubmit "[BitVector] Add operator<<= and operator>>=." 2017-04-20 16:56:54 +00:00
BitmaskEnumTest.cpp [ADT] Add LLVM_MARK_AS_BITMASK_ENUM, used to enable bitwise operations on enums without static_cast. 2016-07-13 18:23:16 +00:00
BreadthFirstIteratorTest.cpp [ADT] Add a generic breadth-first-search graph iterator. 2017-04-06 17:03:04 +00:00
BumpPtrListTest.cpp ADT: Add AllocatorList, and use it for yaml::Token 2016-09-11 22:40:40 +00:00
CMakeLists.txt [ADT] Add a generic breadth-first-search graph iterator. 2017-04-06 17:03:04 +00:00
DAGDeltaAlgorithmTest.cpp
DeltaAlgorithmTest.cpp
DenseMapTest.cpp Add support for DenseMap/DenseSet count and find using const pointers 2017-03-10 00:25:26 +00:00
DenseSetTest.cpp Add support for DenseMap/DenseSet count and find using const pointers 2017-03-10 00:25:26 +00:00
DepthFirstIteratorTest.cpp Modify df_iterator to support post-order actions 2016-10-05 21:36:16 +00:00
FoldingSet.cpp PR30711: Fix incorrect profiling of 'long long' in FoldingSet, then use it to 2016-10-16 17:49:09 +00:00
FunctionRefTest.cpp
HashingTest.cpp
IListBaseTest.cpp ADT: Add sentinel tracking and custom tags to ilists 2016-09-11 16:20:53 +00:00
IListIteratorTest.cpp Fix some missing negations in the traits checking from r294349 2017-02-07 21:31:03 +00:00
IListNodeBaseTest.cpp ADT: Add sentinel tracking and custom tags to ilists 2016-09-11 16:20:53 +00:00
IListNodeTest.cpp ADT: Add sentinel tracking and custom tags to ilists 2016-09-11 16:20:53 +00:00
IListSentinelTest.cpp Turn LLVM_ENABLE_ABI_BREAKING_CHECKS into a 0/1 definition like 2016-09-30 19:52:27 +00:00
IListTest.cpp ADT: Never allocate nodes in iplist<> and ilist<> 2016-09-11 23:43:43 +00:00
ImmutableMapTest.cpp
ImmutableSetTest.cpp Fix warnings in ImmutableSetTest and SequenceTest. 2016-07-17 18:10:30 +00:00
IntEqClassesTest.cpp
IntervalMapTest.cpp [ADT] IntervalMap: fix setStart and setStop 2016-11-03 19:14:46 +00:00
IntrusiveRefCntPtrTest.cpp [ADT] Attempt to fix GCC warning in IntrusiveRefCntPtrTest. 2017-01-04 22:49:55 +00:00
IteratorTest.cpp ADT: Add range helpers for pointer_ and pointee_iterator 2017-03-27 12:56:12 +00:00
MakeUniqueTest.cpp
MapVectorTest.cpp [ADT] Let MapVector handle non-copyable values. 2016-10-10 16:25:59 +00:00
OptionalTest.cpp [ADT] Add relation operators for Optional 2016-08-11 20:10:15 +00:00
PackedVectorTest.cpp
PointerEmbeddedIntTest.cpp
PointerIntPairTest.cpp
PointerSumTypeTest.cpp
PointerUnionTest.cpp
PostOrderIteratorTest.cpp [ADT] Change PostOrderIterator to use NodeRef. NFC. 2016-08-15 21:52:54 +00:00
PriorityWorklistTest.cpp [ADT] Speculative attempt to fix build bot issues with r290952. 2017-01-04 11:40:18 +00:00
RangeAdapterTest.cpp Reapply "ADT: Remove references in has_rbegin for reverse()" 2016-08-18 17:15:25 +00:00
ReverseIterationTest.cpp [ADT] Fix for compilation error when operator++(int) (post-increment function) of SmallPtrSetIterator is used. 2016-12-30 12:34:36 +00:00
SCCIteratorTest.cpp [ADT] Actually mutate the iterator VisitStack.back().second, not its copy. 2016-08-22 21:59:26 +00:00
STLExtrasTest.cpp Fix sign compare warning in unit test by using an explicit unsigned literal suffix 2017-03-13 21:46:12 +00:00
ScopeExitTest.cpp [ADT] Add make_scope_exit(). 2016-08-10 17:52:09 +00:00
SequenceTest.cpp Fix warnings in ImmutableSetTest and SequenceTest. 2016-07-17 18:10:30 +00:00
SetVectorTest.cpp
SimpleIListTest.cpp [ilist_node] Add a getReverseIterator() method and a unittest for it. 2016-11-02 00:59:58 +00:00
SmallPtrSetTest.cpp ADT: Fix SmallPtrSet iterators in reverse mode 2017-03-07 21:56:32 +00:00
SmallStringTest.cpp
SmallVectorTest.cpp
SparseBitVectorTest.cpp [ADT] Add SparseBitVector::find_last(). 2017-01-17 23:09:21 +00:00
SparseMultiSetTest.cpp
SparseSetTest.cpp
StringExtrasTest.cpp Add llvm::join_items to StringExtras. 2016-09-27 16:37:30 +00:00
StringMapTest.cpp Spelling mistakes in comments. NFCI. 2017-03-31 10:59:37 +00:00
StringRefTest.cpp Add more test cases for StringRef::edit_distance 2017-04-14 08:34:32 +00:00
StringSwitchTest.cpp [Support] Add case-insensitive versions of StringSwitch members. 2016-10-04 19:33:13 +00:00
TestGraph.h s/static inline/static/ for headers I have changed in r279475. NFC. 2016-08-31 16:48:13 +00:00
TinyPtrVectorTest.cpp Remove uses of deprecated std::random_shuffle in the LLVM code base. Reviewed as https://reviews.llvm.org/D29780. 2017-02-16 14:37:03 +00:00
TripleTest.cpp Set default CPU for OpenBSD/arm to Cortex-A8 2017-02-28 17:28:35 +00:00
TwineTest.cpp Fix compilation. 2016-12-17 01:31:46 +00:00
VariadicFunctionTest.cpp