Commit Graph

691 Commits

Author SHA1 Message Date
Vassil Vassilev
b600182114 Typo. 2013-11-14 15:24:03 +01:00
Vassil Vassilev
7a4fcf39ed Make sure we call the dtor for the state object. 2013-11-14 15:24:02 +01:00
Philippe Canal
388271f9e9 Add cling::LookupHelper::findFunctionTemplate
Given a context and a name (and a constness), return the corresponding
function template decl.
2013-11-13 19:46:00 +01:00
Philippe Canal
e0e2df65e5 Allow findAnyFunction to discover a template instance without any argument hints
This allows to find an existing function template instance even based on only
the template name (of course, in this case, no instantiation is done, only already
existing ones can be returned).

This allows add there same features to TListOfFunctions::FindObject and
TViewAllPublicFunctions::FindObject.
2013-11-13 19:45:59 +01:00
Vassil Vassilev
77c8f50434 Add parenthesis. 2013-11-13 11:56:00 +01:00
Bertrand Bellenot
c5ef063462 Another attempt to fix a buffer overflow error on ubuntu (optimized mode only, making it hard to debug...) 2013-11-12 17:38:55 +01:00
Vassil Vassilev
53cea811f6 Assert only on valid decls. 2013-11-12 11:15:55 +01:00
Bertrand Bellenot
3c9b31be34 Use set_size so make sure the llvm::SmallString is not empty 2013-11-12 09:58:56 +01:00
Bertrand Bellenot
0f9145a1ae Revert previous changes and make sure the llvm::SmallString is not empty 2013-11-12 09:13:00 +01:00
Bertrand Bellenot
031f8be452 Use a llvm::SmallString instead of a char[] to avoid corrupting the stack (thanks Axel) 2013-11-11 20:40:10 +01:00
Vassil Vassilev
3230cbf347 Reset the diagnostics in the decl reverter. 2013-11-11 17:27:57 +01:00
Vassil Vassilev
8760a8e7c7 Simplify and disable assert until the issue is clear. 2013-11-11 17:27:57 +01:00
Vassil Vassilev
988ce2c9a8 Fix valgrind failure. Don't try to remove a decl twice. 2013-11-11 17:27:57 +01:00
Bertrand Bellenot
738d8cb72c Fix compiler warning
Fix compiler warning: ignoring return value of ‘char* realpath(const char*, char*)’, declared with attribute warn_unused_result
And issue a warning if the canonical path cannot be obtained
2013-11-11 16:11:00 +01:00
Bertrand Bellenot
6e5d2f5a50 Fix compiler warning: unused variable ‘res’ 2013-11-11 15:15:59 +01:00
Bertrand Bellenot
d9f80eb51b Use canonicalized absolute pathname
This should fix Jira #ROOT-5636 Be more precise on whether a shared library was loaded
2013-11-11 12:19:59 +01:00
Axel Naumann
30d28d311d Remove misplaced and duplicate comment. 2013-11-08 17:26:55 +01:00
Axel Naumann
5d5c0cf0f0 Fix doc. 2013-11-07 11:28:58 +01:00
Philippe Canal
baebf42627 Add comment clarifying ROOT-4602 2013-11-06 21:39:56 +01:00
Philippe Canal
1b8795f0c3 In findFunction*, add template instantiation if needed.
Update the test accordingly.
2013-11-04 14:35:07 +01:00
Philippe Canal
66d3abc12c Add instantiation (if needed) to findAnyFunction 2013-11-04 14:35:06 +01:00
Philippe Canal
0adde75bd2 In findAnyFunction, properly handle the template case.
As the other findFunction*, findAnyFunction does not
(yet?) instantiate the function template if has not
yet been instantiated.

Also add test for findAnyFunction.
2013-11-04 14:35:06 +01:00
Philippe Canal
6f87119b4b Add LookupHelper::findAnyFunction 2013-11-02 13:55:02 +01:00
Philippe Canal
abdb935f70 typo 2013-11-02 13:55:01 +01:00
Axel Naumann
869ba659a1 If __cxa_atexit does not exist in teh module then add it. 2013-11-01 18:39:55 +01:00
Axel Naumann
bd3c03cc17 80cols. 2013-10-31 14:43:56 +01:00
Vassil Vassilev
e6b54ae93a Remap only if not in -fsyntax-only. 2013-10-31 14:43:56 +01:00
Vassil Vassilev
4294b35b0c Remap the cxa_at_exit earlier.
The problem was that the remapping happened on the first executeFunction, which
was fine. Now that we have the Transaction's empty wrapper functions removed it's
not enough.

NOTE: that any decls coming within the RuntimeUniverse.h which need 'managed'
storage will still trigger the same problem.
2013-10-31 14:43:56 +01:00
Vassil Vassilev
ceb7eaf1fc Remove useless code. 2013-10-31 14:43:56 +01:00
Vassil Vassilev
8d43ef4572 Be more verbose. 2013-10-31 14:43:55 +01:00
Axel Naumann
4ec5d9380f Report if an absolute filename cannot be found. 2013-10-31 11:30:54 +01:00
Axel Naumann
0196465ea7 Silence unused var warning. 2013-10-31 11:02:56 +01:00
Vassil Vassilev
91b1c8e53d Remove the duplicate file. I didn't see it was checked in already. 2013-10-30 16:20:58 +01:00
Vassil Vassilev
ba1a1619f0 Update the cmake listes. 2013-10-30 16:04:57 +01:00
Pere Mato
0cae18eb62 Added missing new file 2013-10-30 15:35:59 +01:00
Vassil Vassilev
8ea52103a0 Implement sanity check, that ensures no lookup entries were left over. 2013-10-30 04:39:59 +01:00
Vassil Vassilev
688d82d64f Rebuild properly the redeclaration chains.
When we removed the head of the redeclaration chain we didn't rebuild the whole
list, which resulted in not updated pointer of the most recent decl.
2013-10-30 04:39:59 +01:00
Vassil Vassilev
795c51c6f1 Remove unused variable. 2013-10-30 04:39:59 +01:00
Vassil Vassilev
3acc2f6716 Predecrement instead of postdecrement. 2013-10-29 22:18:58 +01:00
Vassil Vassilev
7bafd3c45e Set the transaction state to unloaded in the unloader not outside. 2013-10-29 22:18:58 +01:00
Vassil Vassilev
f9b132160d Allow unloaded/rolledback transactions to be returned even not empty in the pool. 2013-10-29 21:19:55 +01:00
Vassil Vassilev
0f6901e8b8 The transaction may not contain a wrapper. This may be due to the fact that if the wrapper was empty it is removed. Of course this should be asserted properly in future. 2013-10-29 20:19:27 +01:00
Vassil Vassilev
7d8654d4e4 Delete the transactions when the pool is full. 2013-10-29 20:19:27 +01:00
Vassil Vassilev
f2761f407c Move the removal of the wrapper first, because the iterator gets invalidated. 2013-10-29 20:19:27 +01:00
Vassil Vassilev
2b757093b6 Release the unloaded transaction. 2013-10-29 20:19:27 +01:00
Vassil Vassilev
91c54bda2e Add more handy interface that takes a number of transactions to be rolled back. 2013-10-29 20:19:25 +01:00
Vassil Vassilev
5209ba0d7f Add future wanna-track property. 2013-10-29 20:19:25 +01:00
Vassil Vassilev
c33a583d16 Dealloc the memory of the removed decl. 2013-10-29 20:19:24 +01:00
Vassil Vassilev
a08152d576 Enhance the support for removing global values from the module with JIT lock.
When the machine code was generated the JIT retains a lock to the global values
so they don't go out of sync. In the cases of circular references like:
int g();
int f() {g();}
int g() {f();}
we cannot count on the removal order to get rid of the uses. We need to use the
replaceAllUsesWith. This is however tricky because the JIT already generated the
code for f and g and it doesn't make sense to replace anything with anything else.

Thus in order to support that we need to hack one of the JIT callbacks which
prevents the replace of values of already emitted code.
2013-10-29 20:19:24 +01:00
Vassil Vassilev
67a37e719f Make ((llvm::JIT*)m_EEngine possible in gdb. 2013-10-29 20:19:24 +01:00