Commit Graph

2023 Commits

Author SHA1 Message Date
kai
aa20673c72 Fix indentation (TAB -> SPACE in 2 cases). 2011-11-21 20:47:38 +01:00
kai
1ecd536f45 Replace deprecated LLVM functions.
Several functions regarding file handling are deprecated. This commit replaces these functions with the new one from llvm::sys::fs and llvm::sys::path. It also removes some warnings about signed/unsigned mismatches.
2011-11-16 19:05:23 +01:00
Alexey Prokhin
7431d58702 Rewritten initialization of global variables. 2011-10-25 15:43:49 +04:00
Alexey Prokhin
66a30803f3 Fixed an assert in DtoNewClass when initializing an inner-class outer reference 2011-10-25 15:43:49 +04:00
Alexey Prokhin
bf463d61da Readded 'relocation-model' and 'code-model' options 2011-10-25 15:43:49 +04:00
Alexey Prokhin
45426ca60d Implemented atomic intrinsics for llvm 3.0
Unline older versions, llvm 3.0 provides atomic instructions, not intrinsics.
The patch wraps the instructions into intrinsics, so they will be accessible
from d code.
2011-10-25 15:43:49 +04:00
Alexey Prokhin
81426b8cc8 Fix DelegateExp::toElem return type 2011-10-25 15:43:49 +04:00
Alexey Prokhin
0b159f635d Fix an assert in IrStruct::getClassInfoInterfaces() due to mismatched types 2011-10-25 15:43:49 +04:00
Alexey Prokhin
b97b32759e Use LLVM Machine Code (MC) to emit object files. Finilize debug info 2011-10-25 15:43:49 +04:00
Alexey Prokhin
aee896f85b Port exceptions to llvm 3.0 2011-10-25 15:43:49 +04:00
Alexey Prokhin
629f13929e WIP: port to llvm 3.0 2011-10-25 15:43:39 +04:00
Alexey Prokhin
423076dd82 CMakeLists: look for host target in llvm's config.h 2011-09-15 16:23:26 +04:00
Alexey Prokhin
2dd73874ac Fixed druntime and phobos paths in CMakeLists 2011-09-15 14:45:40 +04:00
Alexey Prokhin
9f37747789 Update submodules 2011-09-15 14:23:04 +04:00
Alexey Prokhin
fb77c05dfd DMD Issue 3632 - modify float is float to do a bitwise compare 2011-09-15 13:56:22 +04:00
Alexey Prokhin
3a0e3635a6 Added druntime and phobos as submodules 2011-09-14 09:27:18 +04:00
Alexey Prokhin
c09aa779ea Fixed a crash inside TraitsExp::semantic when compiling typecons.d with unittests 2011-09-13 21:01:39 +04:00
Alexey Prokhin
a75b08bc00 Fixed accessing struct members via alias this 2011-09-13 21:01:39 +04:00
Alexey Prokhin
4879a8bc17 Fixed initialization of nested structs 2011-09-13 21:01:39 +04:00
Alexey Prokhin
a0e4737c2e Treat warnings as errors like dmd does 2011-09-13 21:01:39 +04:00
Alexey Prokhin
93eeccaf81 ldmd2: always pass --singleobj option 2011-09-13 21:01:38 +04:00
Alexey Prokhin
9a9999854f Named Return Value Optimization 2011-09-13 21:01:38 +04:00
Alexey Prokhin
0e754b5acd Merge dmd v2.055 2011-09-13 21:01:32 +04:00
Alexey Prokhin
8f4a15c868 Fix ldc1 regressions 2011-09-10 13:24:29 +04:00
Alexey Prokhin
f3c901af9d Use _d_arraycatT to append an element to an array instead of reallocating the array 2011-09-10 13:23:47 +04:00
Alexey Prokhin
0caba6672d Call postblit on a struct when appending it to an array. Use _d_arraycatnT to concatenate multiple arrays.
Before, _d_arraycatT was used to concatenate multiple arrays. That caused an issue when postblit
was called on a struct multiple times. The next code asserted due to the issue:

void main()
{
    static struct S
    {
        int x;
        int pad;
        this(this)
        {
            ++x;
        }
    }

    auto sarr = new S[1];
    auto sarr2 = sarr ~ sarr ~ sarr;
    assert(sarr2[0].x == 1);
    assert(sarr2[1].x == 1);
    assert(sarr2[2].x == 1);
    assert(sarr[0].x == 0);
}
2011-09-10 13:22:05 +04:00
David Nadlinger
9864129fb8 Merge branch 'master' into merge-2.054
Conflicts:
	gen/statements.cpp (returning void from main() was fixed on both branches)
2011-08-17 16:09:28 +02:00
David Nadlinger
3f448afa37 Another nested context crash fix.
The test case that would previously crash:

a.d
---
module a;

@property bool empty(T)(in T[] a) {
  return !a.length;
}

void find(alias pred,R1)(R1 haystack) {
  simpleMindedFind!pred(haystack);
}

void simpleMindedFind(alias pred, R1)(R1 haystack) {
  bool haystackTooShort() {
    return haystack.empty;
  }
}
---

b.d
---
module b;

import c;

void getTimeZone() {
  indexOf();
}
---

c.d
---
module c;

import a;

void indexOf()() {
  find!({})("");
}
---
2011-08-17 02:33:33 +02:00
David Nadlinger
11f19eec5a D1: Don't crash when returning a void expression from void main(). 2011-08-12 20:14:55 +02:00
David Nadlinger
5fdbce2de4 Merge pull request #3 from bioinfornatics/master
Bash autocompletion improvements.
2011-08-12 02:40:57 -07:00
Jonathan MERCIER
ad2eaa9ea1 enhance autocompletion 2011-08-12 11:30:05 +02:00
David Nadlinger
777c1e3530 Merge pull request #2 from bioinfornatics/master
add autocompletion for ldc2 with bash-completion
2011-08-09 15:53:39 -07:00
Jonathan MERCIER
775736bfb0 add bash script for autocompletion 2011-08-10 00:46:14 +02:00
David Nadlinger
e63044ecc8 Merge pull request #1 from klickverbot/remove-phobos1
Removed Phobos 1 from LDC tree.
2011-08-08 12:07:30 -07:00
David Nadlinger
3c95ddd3b5 Removed Phobos 1 from LDC tree.
If anyone wanted to ever resurrect LDC1/Phobos (lphobos/README.txt had an »unmaintained« notice for more than three years now), this should be done in an external repository.
2011-08-08 21:00:42 +02:00
David Nadlinger
1cfc243c34 Removed druntime.patch and phobos.patch – we are maintaining our own GitHub forks. 2011-08-08 19:24:58 +02:00
David Nadlinger
21a05aa971 Merge branch 'default' into 'merge'. 2011-07-29 00:37:30 +02:00
David Nadlinger
618051022f Fixed crash in DtoCreateNestedContextType().
In some cases, like the following, DtoDeclareFunction() hasn't already been called when DtoCreateNestedContextType() is invoked. This seems to have been anticipated when the function was originally written, but DtoDeclareFunction() was previously called after the ir func was already accessed in fd->ir.irFunc->nestedContextCreated.

---
void main() {
  mixin({
    string foo() {
      return "";
    }

    string bar()() {
      return foo();
    }

    return bar();
  }());
}
---
2011-07-28 23:17:20 +02:00
David Nadlinger
e397b29722 Fixed #448 for D2 and restored opOpAssign expression cache for D1.
When clearing the lvalue cache, the added-then-backed-out-then-added-back-for-D2-only code by Alexey permanently removed all casts from e1 (e1 is a member variable!), instead of only skipping them for the cachedLvalue assignment.
2011-07-28 23:10:22 +02:00
David Nadlinger
15c5316e26 Prevent two function with same mangled name but different types from being declared.
Previously, LDC would crash in the backend due to the fact that the IR is typed in such cases (we recently had such an instance with Tango, where an extern( C ) function was declared once with int and once with size_t).
2011-07-27 23:01:22 +02:00
Alexey Prokhin
71a0a968ef Fixed #6 2011-07-26 09:48:10 +04:00
Alexey Prokhin
a41b822420 Fixed ldc1 compilation 2011-07-26 09:30:36 +04:00
Alexey Prokhin
46c241009d Fixed a segfault when compiling fail_compilation/fail105.d 2011-07-23 14:06:59 +04:00
Alexey Prokhin
457f4dffbe ICE involving pointers 2011-07-23 13:19:51 +04:00
Alexey Prokhin
213524bc61 CTFE: fixed calling of invariant from a constructor 2011-07-22 22:22:06 +04:00
Alexey Prokhin
ed84a21462 Fixed try/finally statements inside another finally 2011-07-22 19:44:16 +04:00
Alexey Prokhin
ac2e7b033b Fixed compilation of lifetime.d 2011-07-22 12:51:23 +04:00
Alexey Prokhin
79edefdc37 Fixed compilation of functions that does not have return statement but contain inline asm 2011-07-19 22:22:49 +04:00
Alexey Prokhin
06baaacdc0 Fixed an undefined reference if a postblit is annotated with @disabled 2011-07-19 20:20:00 +04:00
Alexey Prokhin
6576b68dfd Added empty ImportStatement::toIR(). That fixes import from a function 2011-07-19 20:02:39 +04:00