Commit Graph
1432 Commits
Author SHA1 Message Date
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 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
Alexey Prokhin 4cc10019ee Fixed an assertion in DtoType() 2011-07-19 19:58:38 +04:00
Alexey Prokhin edd1ed5b09 DMD issue 693 & 5946 - Allow using 'this' for alias template parameter 2011-07-19 19:43:05 +04:00
Alexey Prokhin ce799e9974 Fixed postblit call 2011-07-19 19:20:43 +04:00
Alexey Prokhin 2cc34c4005 Call desctructors on temporary variables 2011-07-19 19:20:42 +04:00
Alexey Prokhin 2220dd0559 'even' opcode on x86_64 2011-07-19 19:20:40 +04:00
Alexey Prokhin c470a715a0 DMD issue 1570 - Wrong return for address operator 2011-07-19 19:20:39 +04:00
Alexey Prokhin 7a31b599cc Updated to dmdfe 2.054 2011-07-19 19:20:38 +04:00
Alexey Prokhin 99f5a73125 Allow nonconstants in associative array initializers 2011-07-19 10:14:15 +04:00
Alexey Prokhin bb2676dbe3 Fix unresolved symbol in the runnable/mixin2 test 2011-07-19 10:14:14 +04:00
Alexey Prokhin 596aad3738 DMD issue 3086 - TypeInfo opEquals returns incorrect results 2011-07-19 10:14:13 +04:00
Alexey Prokhin aef7e0ee36 Fix array append with dollar op 2011-07-19 10:14:12 +04:00
Alexey Prokhin 4210f4285a Fixed a few interpret regressions 2011-07-19 10:14:11 +04:00
Alexey Prokhin 462cdda4ae Merge dmdfe 2.053beta 2011-07-19 10:14:04 +04:00
Alexey Prokhin f3bf9fd277 Improve _d_arrayappendT call 2011-05-11 21:13:43 +04:00
Kelly Wilson 5d0f918e9e Fix cmpxchg16b instruction for asm blocks. Thanks to wolfwood from the Xomb project for this fix. 2011-05-05 20:56:46 -06:00
David Nadlinger 882e81ec1c Explicitly add %st as second argument to fucomip.
It should really be assumed implicitly, but the GNU as shipping with Mac OS X 10.6 (Apple Inc version cctools-800~26, GNU assembler version 1.38) chokes on the instruction otherwise.
2011-05-01 01:16:36 +02:00
Alexey Prokhin 3a0dfac597 Fix file paths in debug info 2011-04-30 17:35:40 +04:00
Alexey Prokhin 6548ce2e79 Fix a crash in OrOrExp::toElem 2011-04-30 15:30:58 +04:00
Alexey Prokhin 8da0d673cf Rework vaarg support on X86_64 2011-04-30 15:30:57 +04:00
Alexey Prokhin 805fb5cfc1 D2: pass static arrays into functions by value 2011-04-30 15:30:57 +04:00
Alexey Prokhin 069f0a6262 Merged changes in TypeDArray::builtinTypeInfo() from dmdfe. 2011-04-30 15:30:57 +04:00
Alexey Prokhin 6bc2431b6b Skip unittests in imported modules 2011-04-30 15:30:57 +04:00
Alexey Prokhin 73e498ace1 Do not use internal linkage for a function nested in a small function that can be inlined from other modules 2011-04-30 15:30:57 +04:00
David Nadlinger 7a24e12736 Cleanup: Remove unused code in backend, silence some warnings.
This removed quite some clutter that has presumably piled up because LDC is seldom built with a lot of warnings enabled due to DMDFE.
2011-04-24 12:21:33 +02:00
David Nadlinger 8f5f93057c Changed DtoResolveNestedContext() return type to void – it didn't even have a return statement! 2011-04-24 11:39:53 +02:00
David Nadlinger 3e28eecfea Quick workaround for a LLVM 2.9 crash with higher optimization levels.
createFunctionAttrsPass() is a LLVM pass and the crash is deep in LLVM code, maybe something is wrong with the pass manager state.
2011-04-20 20:44:49 +02:00
David Nadlinger 8d545a18c1 Fix crash when declaration is coming without Loc from the front-end. 2011-04-20 19:30:43 +02:00
Kelly Wilson 72ea043124 Recommit klickverbot's patch for LLVM-2.9. 2011-04-20 09:28:37 -06:00
Kelly Wilson 7c81278b9c Backed out changeset 5253bfbb3890 2011-04-20 00:28:23 -06:00
Kelly Wilson b26b0f4196 Upgrade to LLVM-2.9. Thanks to David Nadlinger for the patch. 2011-04-19 21:57:15 -06:00
Moritz Warning dbd267cc95 merge 2011-04-07 01:12:27 +02:00
Alexey Prokhin 7f0ecdf7b9 More X86_64 ABI 2011-03-26 19:30:17 +03:00
Alexey Prokhin 375dcb095c Fix array comparison 2011-03-26 17:58:08 +03:00
Alexey Prokhin 3a2aedc9ac Fix building of the runtime as a shared library 2011-03-26 17:58:05 +03:00
Moritz Warning fbb32c24cb another merge 2011-02-27 20:11:13 +01:00
Alexey Prokhin a684dd2df9 ldc1 compiles again 2011-02-27 21:00:01 +03:00
Alexey Prokhin 063020fae6 Don't run postblit on references 2011-02-27 12:27:38 +03:00
Alexey Prokhin 70aee84c70 Fix passing of a padded struct to a function 2011-02-26 20:16:01 +03:00
Alexey Prokhin 20e6c65200 To follow D ABI, swap real and imaginary parts of a complex return value on X86_64
TODO: should we disable this transformation for ldc1 in order to keep its ABI unchanged?
2011-02-26 13:04:09 +03:00
Alexey Prokhin 1653abbbc9 Use StdCall calling convention on X86_64 2011-02-25 22:29:40 +03:00
Alexey Prokhin e21fbc26e8 Fix imul and mul asm opcodes on X86_64 2011-02-25 22:29:34 +03:00