940 Commits

Author SHA1 Message Date
Vassil Vassilev
63f1ce5082 Outline method. 2013-08-02 17:34:55 +02:00
Vassil Vassilev
f841f0bc8d Add extra assert enforcing integrity. 2013-08-02 17:34:55 +02:00
Vassil Vassilev
5db0612527 Remove unused code. 2013-08-02 17:34:55 +02:00
Vassil Vassilev
e628be3746 There can be duplicates coming from HandleVTable interface.
It is possible to have duplicate calls to HandleVTable with the same
declaration, because each time Sema believes a vtable is used it emits
that callback.
For reference (clang::CodeGen::CodeGenModule::EmitVTable).
2013-08-02 17:34:54 +02:00
Vassil Vassilev
48984bc835 Simplify commitTransaction by moving the running of inits in the caller.
Temporarily we create a nested transaction instead of delegating that to the
caller to decide. This should be fixed soon.
2013-08-02 17:34:54 +02:00
Vassil Vassilev
c61a2f5695 Make use of the new NDEBUG define. Offload the extra work only when in debug mode. 2013-08-02 17:34:54 +02:00
Vassil Vassilev
32f1010977 Make if-checks asserts, because those cases are not expected anymore. 2013-08-02 17:34:54 +02:00
Vassil Vassilev
059b031f4d Simplify the code and enforce stricter rules. 2013-08-02 17:34:54 +02:00
Bertrand Bellenot
ef5b723bef Allow to build out of source on cygwin/gcc 2013-08-02 12:09:56 +02:00
Vassil Vassilev
285dcca31a Try fix cling on fedora. 2013-08-02 09:09:54 +02:00
Vassil Vassilev
9e735eb8b0 Be even more precise - c++ reference guide says that getchar is in cstdio. 2013-08-01 22:58:52 +02:00
Vassil Vassilev
469daffc65 Use some tricks to adjust the source location of the diagnostic. 2013-08-01 22:47:58 +02:00
Baozeng Ding
9189379bbf Use isatty first, before getchar() 2013-08-01 22:47:58 +02:00
Baozeng Ding
02735d3dcf Add source location to the null deref warning. Place the asterisks next to the type as in the rest of cling. 2013-08-01 22:47:58 +02:00
Vassil Vassilev
6910f4ed36 Fix typo. 2013-07-27 20:43:03 +02:00
Baozeng Ding
8e17b5e93e Report the null deref warning through diagnostic engine. 2013-07-27 20:43:03 +02:00
Vassil Vassilev
6b26c3a415 Add the new diagnostic as a patch. 2013-07-27 20:43:00 +02:00
Philippe Canal
eef395f046 Add missing re-attach nested transaction to parent after a reset in beginTransaction.
This fix the assert failure:
   endTransaction(cling::Transaction*) const: Assertion `T->getState() == Transaction::kCollecting' failed.
2013-07-27 02:01:03 +02:00
Vassil Vassilev
5b2655d120 Add testcases. 2013-07-21 15:16:57 +02:00
Baozeng Ding
9ee3398603 Implement the callback that warns the user on null ptr deref. 2013-07-21 15:16:57 +02:00
Philippe Canal
80d57d9c93 80 columns. 2013-07-18 10:36:45 +02:00
Axel Naumann
7849f4e7f1 Fix assert 2013-07-17 09:03:49 +02:00
Philippe Canal
871f2df4a1 Improve the input line validator handling of quoted strings.
For example those are now properly accepted (because the content
of the string is now ignored):

TFile *_file0 = TFile::Open("http://root.cern.ch/files/atlasFlushed.root");
n.SetName(" ( ");
2013-07-17 00:04:55 +02:00
Vassil Vassilev
fc7d1879da Replace Decl** with the more accurate Transaction**.
Add output Transaction parameter to Interpreter::parse.
2013-07-15 12:58:54 +02:00
Vassil Vassilev
3c101956d8 Add proper initialization. 2013-07-15 08:46:51 +02:00
Baozeng Ding
8d657b2b71 It wasn't Baozeng's fault I committed the old instead of the newest patch. 2013-07-15 08:15:53 +02:00
Vassil Vassilev
dd06cb6fca Spelling. 2013-07-14 23:00:52 +02:00
Vassil Vassilev
bc6a51340b Fix the wrong include filename. 2013-07-14 22:40:51 +02:00
Baozeng Ding
e02eb39090 Add null deref ptr transformer, which instruments the llvm::IR to protect user code at the prompt accidentally dereferencing a null ptr.
Tests coming soon.
2013-07-14 22:27:52 +02:00
Vassil Vassilev
a11bd8bd49 Add useful comment. 2013-07-10 14:20:08 +02:00
Vassil Vassilev
90203e1d43 Alphabetic order. 2013-07-10 14:20:08 +02:00
Axel Naumann
1459fc6235 Disable asserts until whetever triggers them gets fixed. 2013-06-28 14:07:13 +02:00
Axel Naumann
0c74a310d8 Rebase to master/HEAD; split commitTransaction(); select needed parts in emitAllDecls(). 2013-06-28 00:33:17 +02:00
Axel Naumann
07ee17e09b Use new interface 2013-06-28 00:33:17 +02:00
Axel Naumann
a2bb0b2b46 codegen() really does emitAllDecls(); use new IncrementalParser interfaces. 2013-06-28 00:33:17 +02:00
Axel Naumann
0e6302f92c Split CodeGen and UsedAttr from commitTransaction into separate functionw. 2013-06-28 00:33:16 +02:00
Axel Naumann
e87cf60d9e Set UsedAttr instead of LangOpt.EmtiAllDecls (temporary implementation) 2013-06-28 00:33:16 +02:00
Baozeng Ding
1c2f34afd1 Baozeng Ding - Split the transformers into two kinds: AST and IR
The AST transformers should be run *before* codegen, whereas the IR transformers
should be run *after*
2013-06-26 20:57:05 +02:00
Vassil Vassilev
cc609ad618 Add missing protection. 2013-06-26 16:18:26 +02:00
Vassil Vassilev
dbdb2d09c6 Typo. 2013-06-26 16:18:26 +02:00
Vassil Vassilev
b00e66a0c2 Add missing separator. 2013-06-26 16:18:25 +02:00
Vassil Vassilev
65ce06c373 NDEBUG stands for NO DEBUG... 2013-06-26 16:18:25 +02:00
Vassil Vassilev
cb3f3c3bae Remove the lazy (fishy) initialization of the cling's execution context. 2013-06-25 09:30:36 +02:00
Vassil Vassilev
0ff9231adc Don't set the module in Interpreter::codegen. This is leftover from the cherrypick. 2013-06-25 09:30:35 +02:00
Vassil Vassilev
7e5846924a Do not make the new transaction coming from the static initializer nested. If the transaction was nested make the current active the parent on commit. 2013-06-25 09:30:35 +02:00
Vassil Vassilev
2f3cdedfde Use the std::deque to implement the first and last transaction accessors. 2013-06-25 09:30:35 +02:00
Vassil Vassilev
f54ad7450e Move the late creation of the container up. Implement sanity check for decl uniqueness when in debug mode. 2013-06-25 09:30:35 +02:00
Vassil Vassilev
777a44ad37 Define operator== and operator!= for DelayCallInfo. 2013-06-25 09:30:35 +02:00
Vassil Vassilev
49321363f7 Define NDEBUG for consistency with llvm and clang, when building ROOT in debug mode. 2013-06-25 09:30:35 +02:00
Vassil Vassilev
ef0c731ecb Add method removing nested transactions. Move reset implementation in the cpp file. 2013-06-25 09:30:34 +02:00