1290 Commits

Author SHA1 Message Date
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
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
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
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
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
Axel Naumann
700a647a2a Support new name of std::string in libc++. 2014-03-31 15:15:57 +02:00
Vassil Vassilev
96319aa30f Implement .U FileName. 2014-03-31 14:03:08 +02:00
Vassil Vassilev
33676c14a9 Implement dump of MacroDirectiveInfo. 2014-03-31 14:03:08 +02:00
Vassil Vassilev
3e7f2aa7aa If -verify specified don't apply any custom diagnostic mappings. 2014-03-31 14:03:07 +02:00
Vassil Vassilev
4b0b984d63 Use the proper arguments to remove items. 2014-03-31 14:03:06 +02:00
Vassil Vassilev
3dd8d2e900 The CompilerInvocation is the owner of the DiagnosticOptions, all the rest point to them.
It used some default diagnostic options, which are different from the ones that
come from the driver passing the invocation options.
2014-03-31 14:03:06 +02:00
Vassil Vassilev
4d53e0fd33 Access sema internals and revert the list of unused decls. 2014-03-31 14:03:05 +02:00
Vassil Vassilev
33ece80d2b Move renaming. 2014-03-31 14:03:04 +02:00
Vassil Vassilev
230638b648 Rename the class to smth more meaningful. 2014-03-31 14:03:04 +02:00
Vassil Vassilev
d87e58b4f5 Simplify. 2014-03-31 14:03:03 +02:00
Vassil Vassilev
5e6b8590be Do not leak the diagnostics engine. 2014-03-31 14:03:03 +02:00
Vassil Vassilev
1f25fe3a00 CXX consistency. 2014-03-31 14:03:03 +02:00
Vassil Vassilev
73113c2c4b Reduce includes. 2014-03-31 14:03:02 +02:00
Vassil Vassilev
d86e86086f Use better, more accurate include. 2014-03-31 14:03:02 +02:00
Vassil Vassilev
5e3a83bd3b Set the ignored diags before the driver does parse from args.
This allows the driver to override our custom diagnostics if the user wants any
special treatment.
2014-03-31 14:03:01 +02:00
Vassil Vassilev
59b980dd69 Don't recreate the diagnosic client, just set it to the tweaked instance. 2014-03-31 14:03:00 +02:00
Vassil Vassilev
d28bc43cd1 Suppress warnings coming from system headers. 2014-03-31 14:02:59 +02:00
Vassil Vassilev
d1a8efcd55 Implement soft reset of the diagnostics engine. 2014-03-31 14:02:59 +02:00
Axel Naumann
ba642a2869 Be more precise when comparing compilation and runtime libc++.
For instance XCode 5.1 braught a libc++ that was sufficiently different to cause havok
all over the place. Thus ABI_VERSION is clearly not enough.
2014-03-29 15:38:56 +01:00