Commit Graph

1690 Commits

Author SHA1 Message Date
Vassil Vassilev
6bb29c9130 Consistent argument names. 2014-04-14 09:09:00 +02:00
Vassil Vassilev
ebad01a510 Simplify and extend the dynamic library manager.
Now it provides an interface which can lookup library names. It can unload a
library and the implementation of loading and resolving a library name is much
simpler.

The extensions are greatly used by the unloading facilities in cling its users.
2014-04-14 09:09:00 +02:00
Vassil Vassilev
5b49009ec8 Use the canonical paths to the files/libraries to unload. 2014-04-14 09:09:00 +02:00
Vassil Vassilev
0abad4f1ff Implement an interface for file/librarly lookup, given the interpreter and system inc paths. 2014-04-14 09:09:00 +02:00
Vassil Vassilev
e9b2e010a6 Style. 2014-04-14 09:08:59 +02:00
Vassil Vassilev
c44b4a3803 Move the restore point before the actual unload, i.e exclusive restore point.
Thus we can handle the cases where libraries are loaded. That case is tricky
because during library's static initialization, header parsing might occur (resulting
in more decls that need to be unloaded). With the exclusive restore point, we
will undo everything up to it, which implicitly will unload the library and
it's friends.
2014-04-14 09:08:59 +02:00
Vassil Vassilev
0ebd74dcfc Don't unload decls came from vtable emission. 2014-04-14 09:08:59 +02:00
Timur Pocheptsov
035f23752b Clean up. 2014-04-14 09:08:59 +02:00
Timur Pocheptsov
cc6ae43942 .namespace command. 2014-04-14 08:55:03 +02:00
Axel Naumann
628618f2b9 Add test for copy ctor and dtor in Value for array-of-structs. 2014-04-11 09:00:01 +02:00
Axel Naumann
1b9910ea28 Fix destruction of array-of-structs.
Iterate over the elements, calling the dtor on each.
Requires two more fields in the AllocatedValue to track the array size and
element offset.
Note that this is only implemented for constant size arrays; all others are expected to not be returned (and thus not stored) by value.
2014-04-11 09:00:01 +02:00
Axel Naumann
895e8eaf51 Init member (thanks, valgrind). 2014-04-11 09:00:00 +02:00
Vassil Vassilev
76f9617076 Doxygen. 2014-04-09 18:36:04 +02:00
Pere Mato
b4baf22be7 Fix for ROOT-6194 - ROOT6 build for LHCb seems to have hardcoded dependencies on AFS 2014-04-09 18:19:03 +02:00
Axel Naumann
83722a7084 Include etc/cling headers in PCH; improve dependencies. 2014-04-09 12:08:10 +02:00
Vassil Vassilev
05c66f769b Style. 2014-04-09 11:19:00 +02:00
Vassil Vassilev
0314a15148 Shorten the unnecessary long interface name. 2014-04-09 11:19:00 +02:00
Vassil Vassilev
522b254345 Move the typedef definition before private section. 2014-04-09 11:19:00 +02:00
Vassil Vassilev
d4da070504 Improve doc style. 2014-04-09 11:18:59 +02:00
Vassil Vassilev
d4299217d4 Improve encapsulation. 2014-04-09 11:18:59 +02:00
Vassil Vassilev
da8237fb86 Use comparison not assignment. 2014-04-09 11:18:59 +02:00
Vassil Vassilev
40b3940666 Adapt to the new (non-const) interface. 2014-04-09 09:27:09 +02:00
Vassil Vassilev
e740840388 Skip removing the system function _Unwind_Resume, needed by the JIT. 2014-04-09 09:27:09 +02:00
Vassil Vassilev
d49c03b10c Files that are .x-ed must be unloadable too. Simplify. 2014-04-09 09:27:08 +02:00
Vassil Vassilev
a85e45178e Unload all kinds of decls that came in. 2014-04-04 17:31:57 +02:00
Vassil Vassilev
198e89d305 Run caching before using the cached vars. 2014-04-04 15:22:00 +02:00
Vassil Vassilev
d1a416ddc0 When variadic return stmt doesn't have a return value, invalidate the calculation of the last expr for evaluation.
In the same cases we still need to synthesize the setValueNoAlloc, to initialize
the cling::Value to void.
2014-04-04 09:42:07 +02:00
Vassil Vassilev
529088b816 There might be returns without return values. 2014-04-03 13:56:59 +02:00
Vassil Vassilev
1c237c2844 In order to run the void expression we need to put it inside a binary operator.
This is the shorthand of syntesizing two statements, which will dramatically
increase the complexity of the implementation.
Now we use setValueToVoid, runExpression
2014-04-02 16:56:58 +02:00
Vassil Vassilev
c868ddfd49 In cases of cling::Value reuse we need to update its settings even if we evaluated void expression. 2014-04-02 16:56:58 +02:00
Vassil Vassilev
76c4024d1d Polish the implementation. Each pragma equivalent must use different source location. 2014-04-02 15:29:58 +02:00
Axel Naumann
26d409e472 Work around pointer/function cast warning. 2014-04-02 15:29:58 +02:00
Axel Naumann
d80be78891 No vector for time-critical i'faces; use SmallVectorImpl in libCling i'faces.
The use of vector forces an allocation for each call, something we don't need to
impose.

SmallVectorImpl doesn't expose the static alloc size; and our interfaces don't
care. Only the actual storage definition needs to define the size, no subsequent
reference.
2014-04-01 18:31:59 +02:00
Axel Naumann
fd71458a5f Implement cheap move ctor/op=. Member-init order. 2014-04-01 18:31:58 +02:00
Axel Naumann
d00d9e8d54 Simplify; adapt to new Value. 2014-04-01 18:31:58 +02:00
Axel Naumann
93970e8c35 Replace StoredValueRef by Value. 2014-04-01 18:31:58 +02:00
Axel Naumann
de2b4ed039 A "usually" allocation-free cling::Value (ROOT-6075). 2014-04-01 18:31:57 +02:00
Vassil Vassilev
234bfb7770 Simplify some of the changes due to the new diag mapping. 2014-04-01 17:09:58 +02:00
Vassil Vassilev
ffc9fe50b5 Disable useless warnings only for the wrapper functions.
We simulate programatically:
void __cling_Unique {
  #pragma push
  #pragma ... ignore ...
  {code}
  #pragma pop
}
2014-04-01 17:09:58 +02:00
Vassil Vassilev
f9f6c937d3 Remove from the last to the first from the DeclContext 2014-04-01 17:09:58 +02:00
Vassil Vassilev
ab9dad6917 Soft reset the diagnostics in the LH, too. 2014-04-01 10:57:58 +02:00
Vassil Vassilev
1b6c52abf0 Implement removal of ClassTemplatePartialSpecializationDecls. Disable an assert, which doesn't seem to exist in clang.git. 2014-04-01 10:57:58 +02:00
Vassil Vassilev
b303728d76 Add to cmake. 2014-03-31 16:53:55 +02:00
Vassil Vassilev
ab58d03cba Add known failures section. 2014-03-31 16:53:55 +02:00
Vassil Vassilev
8b485436fb Preprocess the file before looking for expected-error substrings. This helps in tests which have multiple RUN lines and define a macro in them. 2014-03-31 16:53:55 +02:00
Axel Naumann
bbf4a3588f Update to XCode 5.1; e.g. ignore type of std::string::c_str(). 2014-03-31 15:15:57 +02:00
Axel Naumann
700a647a2a Support new name of std::string in libc++. 2014-03-31 15:15:57 +02:00
Vassil Vassilev
68221520fc Silence a warning. 2014-03-31 14:03:09 +02:00
Vassil Vassilev
14dc0c1c99 Silence a warning. 2014-03-31 14:03:09 +02:00
Vassil Vassilev
666437108e Replace .U with .undo 2014-03-31 14:03:09 +02:00