415ae042c9
Suppress an annoying "unused variable" warning caused by bug 17897.
...
Clang says that "flow" is unused when building LLD. This patch suppresses it.
Differential Revision: http://llvm-reviews.chandlerc.com/D2573
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199922 91177308-0d34-0410-b5e6-96231b3b80d8
2014-01-23 19:01:25 +00:00
9fd7416b3b
YAML I/O add support for validate()
...
MappingTrait template specializations can now have a validate() method which
performs semantic checking. For details, see <http://llvm.org/docs/YamlIO.html >.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195286 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-21 00:28:07 +00:00
25f01786ea
revert r194655
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195285 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-21 00:20:10 +00:00
da1ad53f6a
YAML I/O - Added default trait support for std:string. Making another attempt at this, this time doing a clean build on Linux, and running the LLVM, clang, and extra tests, to try to make sure there's no problems.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195134 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-19 17:28:21 +00:00
354362524a
[weak vtables] Remove a bunch of weak vtables
...
This patch removes most of the trivial cases of weak vtables by pinning them to
a single object file. The memory leaks in this version have been fixed. Thanks
Alexey for pointing them out.
Differential Revision: http://llvm-reviews.chandlerc.com/D2068
Reviewed by Andy
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195064 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-19 00:57:56 +00:00
6919bec07f
Recover gracefully when deserializing invalid YAML input.
...
Fixes http://llvm.org/PR16221 , http://llvm.org/PR15927
Phabricator: http://llvm-reviews.chandlerc.com/D1236
Patch by Andrew Tulloch!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@195016 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-18 15:50:04 +00:00
b21ab43cfc
Revert r194865 and r194874.
...
This change is incorrect. If you delete virtual destructor of both a base class
and a subclass, then the following code:
Base *foo = new Child();
delete foo;
will not cause the destructor for members of Child class. As a result, I observe
plently of memory leaks. Notable examples I investigated are:
ObjectBuffer and ObjectBufferStream, AttributeImpl and StringSAttributeImpl.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194997 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-18 09:31:53 +00:00
5a364c5561
[weak vtables] Remove a bunch of weak vtables
...
This patch removes most of the trivial cases of weak vtables by pinning them to
a single object file.
Differential Revision: http://llvm-reviews.chandlerc.com/D2068
Reviewed by Andy
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194865 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-15 22:34:48 +00:00
04fca67d6f
Add dyn_cast<> support to YAML I/O's IO class
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194655 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-14 02:38:07 +00:00
4e7c22a90b
Add simple support for tags in YAML I/O
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194644 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-14 00:59:59 +00:00
c47adf8db2
Revert "Remove unused variable."
...
This reverts commit r194485.
The variable is unused in some macro instantiations, but not others. We should
probably fix clang to not warn on this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194486 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-12 16:37:31 +00:00
67a404dc26
Remove unused variable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194485 91177308-0d34-0410-b5e6-96231b3b80d8
2013-11-12 16:31:59 +00:00
96b4005548
Reverting my r193344 checkin due to build breakage.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193350 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-24 14:52:56 +00:00
43752f2d4f
Added std::string as a built-in type for mapping.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193344 91177308-0d34-0410-b5e6-96231b3b80d8
2013-10-24 13:36:58 +00:00
d5f33aa33f
Tighten up the yamilizer so it stops eliding empty sequences if the embedded empty sequence is the first key/value in a map which is itself in a sequence.
...
Patch with help from Nick Kledzik.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@188508 91177308-0d34-0410-b5e6-96231b3b80d8
2013-08-15 23:17:53 +00:00
9e8eafa0f0
YAMLTraits.h: replace DenseMap that used a bad implementation of DenseMapInfo
...
for StringRef with a StringMap
The bug is that the empty key compares equal to the tombstone key.
Also added an assertion to DenseMap to catch similar bugs in future.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187866 91177308-0d34-0410-b5e6-96231b3b80d8
2013-08-07 05:51:27 +00:00
6afede522e
Revert r185852.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185861 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-08 20:27:34 +00:00
f856249d49
StringRef: add DenseMapInfo for StringRef.
...
Remove the implementation in include/llvm/Support/YAMLTraits.h.
Added a DenseMap type DITypeHashMap in DebugInfo.h:
DenseMap<std::pair<StringRef, unsigned>, MDNode*>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185852 91177308-0d34-0410-b5e6-96231b3b80d8
2013-07-08 19:17:48 +00:00
96f498bd9f
Remove redundant 'llvm::' qualifications
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172358 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-13 16:01:15 +00:00
674be02d52
Fix include guards so they exactly match file names.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172025 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-10 00:45:19 +00:00
02fa38344c
Fix memory leak in YAML I/O.
...
Stop using BumpPtrAllocator for HNodes because
they have fields (vector, map) which require HNode
destructors to be run.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171896 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-08 21:04:44 +00:00
50c3042740
Fix how YAML I/O detects flow sequences.
...
Update test case to verify flow sequence is
written as a flow sequence.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171514 91177308-0d34-0410-b5e6-96231b3b80d8
2013-01-04 19:32:00 +00:00
9679a04da6
Fix some undefined behavior when parsing YAML input: don't try to compare an
...
uninitialized value against a default value. Found by -fsanitize=enum.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170970 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-22 00:31:54 +00:00
fbc8a73e0c
Use different trait techniques to be compatible with g++
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170355 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-17 19:02:05 +00:00
ae3ce26f99
YAMLIO: Remove all of the template instantiation hacks, I don't see why they're necessary and it breaks linking of the unit tests.
...
Also comes with a clang-format run on the cpp file, it had major style violations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170036 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-12 22:40:02 +00:00
df2f74fa41
AlignedCharArrayUnion is erroring with non-clang compilers
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170031 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-12 22:03:57 +00:00
8ceb8b764f
Initial implementation of a utility for converting native data
...
structures to and from YAML using traits. The first client will
be the test suite of lld. The documentation will show up at:
http://llvm.org/docs/YamlIO.html
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170019 91177308-0d34-0410-b5e6-96231b3b80d8
2012-12-12 20:46:15 +00:00