kai
fcd3ac6a11
Do not add a second underscore to naked functions on Windows.
...
This leads to missing symbols during linking on Windows x64. If
this changes breaks other Windows platforms then we have to analyze
the triple instead of global.params.os.
2012-07-14 18:25:27 +02:00
David Nadlinger
f7e5245e03
Fix #138 – in precondition of methods broken in D1.
...
Not sure why the code was special-cased for D2 in the first place –
are there any cases where we expect a »full« context struct in the
contracts for D1. At least, they don't occur in DStress/Tango/….
As a general note, this is one of many bugs which would have not gone
unnoticed if we didn't use so many bitcasts.
2012-07-13 11:38:56 +02:00
David Nadlinger
c630ab56ff
Fix #136 - return static arrays as sret parameters on non-x86.
...
This should eventually be done on x86 and x86_64 as well, but as
discussed in GitHub issue #110/pull request #120 , the ABI there needs a
closer look: at least on x86_64, we need to treat static arrays exactly
like if they were a struct containing T.length members of the same type
to be compatible with DMD (as soon as the ABI is correctly implemented
there, that is).
While for this reason I want to avoid a ABI change which could silently
break some code only to change the x86 ABI again shortly after, this
commit only touches the "default" ABI for unknown targets and thus
should be safe (as we give absoultely no ABI guarantees there anyway).
2012-07-07 23:53:46 +02:00
David Nadlinger
cef19fb225
Fix #125 – Nested class context pointer invalid (D1).
...
Patch originally by Alexey Prokhin, thanks.
2012-06-24 16:18:47 +02:00
David Nadlinger
67f12fe8b5
Fixed DSource #330 – Many-at-a-time nested context crash (D1).
2012-06-24 11:30:32 +02:00
David Nadlinger
61e61e47f0
Fix #125 - fix generation of nested context chains.
...
Just declaring the type of the parent is obviously not enoguh, we need to have run this very code for determining level and context type (if the parent is also nested, that is).
2012-06-23 17:05:59 +02:00
David Nadlinger
6f236518b5
Fixes #123 – Linking of pre/post-condition in interface fails when interface implemented in separate module.
2012-06-19 22:37:46 +02:00
David Nadlinger
62bfda0259
Fix #113 - promotion of small static array arguments to registers.
2012-06-06 22:55:59 +02:00
David Nadlinger
ba9fb721ed
Removed trailing whitespace.
2012-06-06 20:41:46 +02:00
David Nadlinger
d5084d9051
Factored out x86 ABI code to separate file.
2012-06-06 20:39:38 +02:00
David Nadlinger
260faae6ec
Remove inreg attribute from static arrays when enregistering them.
2012-06-06 15:44:54 +02:00
Dan Sanduleac
2748cdaa88
Fix #49 : Static arrays that don't fit in a register should be passed using byval
2012-06-05 02:52:25 +01:00
David Nadlinger
d24592b3e7
Fix #77 - LDC1 fails to compile tango.io.vfs.ZipFolder.
...
I think the same rewrite for contract this should be valid in D1 - if I missed something crucial, feel free to revert.
2012-06-02 19:21:36 +02:00
kai
48f8ffeb0b
Further changes to compile using MSVC.
2012-05-23 17:36:26 +02:00
Alexey Prokhin
8c5cf40bb5
Fixed compilation of ldc1
2012-04-22 12:26:25 +04:00
Alexey Prokhin
f4d8021e5a
Merge branch 'master' of github.com:ldc-developers/ldc
2012-04-22 12:17:01 +04:00
Alexey Prokhin
67df422667
Fixed a segfault when using opDollar for struct and class indexing operations
2012-04-22 12:11:02 +04:00
Alexey Prokhin
07bf68afa3
DMD Issue 5590 - Regression(2.036) ICE(e2ir.c): when using .values on enum which is associative array
2012-04-21 22:37:36 +04:00
Alexey Prokhin
d739588d4a
Fix dmd bug 7504: Cannot assign an object of type 'typeof(null)' to an array
2012-04-21 22:37:36 +04:00
Alexey Prokhin
8364ad4675
Fixed a crash when calling a function by an alias
2012-04-21 22:37:36 +04:00
Alexey Prokhin
1bd4e725e8
Fixed appending function literals to an array
2012-04-21 22:37:36 +04:00
Alexey Prokhin
2f60c4dcda
Codegen the try block before the catches and finally
2012-04-21 22:37:32 +04:00
Alexey Prokhin
bca73ec8b9
Merged dmd 2.059beta
2012-04-05 15:30:00 +04:00
Eldar Insafutdinov
a8398d64e8
Moved configfile to the driver
2012-04-03 21:18:16 +01:00
Eldar Insafutdinov
feefad412c
Move cl_options out of LDCShared
2012-04-02 14:53:52 +01:00
Eldar Insafutdinov
71044056e4
split toobj.cpp and moved writeModule outside of LDCShared
2012-04-02 00:11:30 +01:00
Eldar Insafutdinov
0b411b873c
Separated compiler from the driver into the shared library
2012-04-01 22:06:08 +01:00
Alexey Prokhin
f6111f23f2
Fixed #85 — ICE with a non-POD local struct literal in a class method
2012-03-06 10:47:24 +04:00
Alexey Prokhin
120bf4429c
Partially reverted fix for #66 .
...
ldc still supports -soname switch but does not set soname by default as
suggested in issue #66 .
2012-03-06 10:29:37 +04:00
Alexey Prokhin
d69d2a835c
Fixed #83 — ldc claim a main block when trying to build as shared lib
2012-03-06 10:29:31 +04:00
kai
53f9964b95
Fix LDC1 compile error.
2012-02-18 18:08:26 +01:00
Alexey Prokhin
ae7f0ca7e7
Preliminary vector support
2012-02-16 14:42:23 +04:00
Alexey Prokhin
8282153738
Removed special treatment of -property switch
2012-02-15 13:23:23 +04:00
Alexey Prokhin
6687a6624b
Fixed #66 — -shared do not set a SONAME
2012-02-15 13:23:23 +04:00
Alexey Prokhin
fb5618e336
Fixed #65 — Renaming shared lib
2012-02-15 13:23:23 +04:00
Alexey Prokhin
8df15e7b64
Fixed #75 — "unhandled repainting of return value" with static array of consts
2012-02-15 13:23:23 +04:00
Alexey Prokhin
bb0d51fb98
Don't resolve template instances that were instantiated inside static if or statis assert
2012-02-15 13:23:23 +04:00
Alexey Prokhin
adebe4c732
DMD Issue 4269 - Regression(2.031): invalid type accepted if evaluated while errors are gagged
2012-02-15 13:23:23 +04:00
Alexey Prokhin
52c5c03495
Fixed segfault when compiling a non-constant case expression
2012-02-15 13:23:23 +04:00
Alexey Prokhin
9ace3fae3e
DMD Issue 796 - Asserting a null object reference throws AssertError Failure internal\invariant.d(14) or Access Violation
2012-02-15 13:23:23 +04:00
Alexey Prokhin
fa361ed598
DMD Issue 4523 - [tdpl] .remove method for Associative Arrays returns void in all cases
2012-02-15 13:23:23 +04:00
Alexey Prokhin
b3ed8724b7
Fixed codegen of SwitchErrorStatement
2012-02-15 13:23:23 +04:00
Alexey Prokhin
eba8aac824
Fixed lambda inference
2012-02-15 13:23:22 +04:00
Alexey Prokhin
925303e334
New compact layout of ModuleInfo objects
2012-02-15 13:23:22 +04:00
Alexey Prokhin
e74e55df89
Merge 2.058beta
2012-02-15 13:23:16 +04:00
Alexey Prokhin
f2ed2e96b0
Use optimized array operators implemented in druntime
2012-02-15 13:16:34 +04:00
Alexey Prokhin
e0dc95052b
Check count of arguments passed to ldc specific intrinsics
2012-02-15 13:16:34 +04:00
Alexey Prokhin
f237d85af0
Implemented bt/btc/btr/bts intrinsics
2012-02-15 13:16:34 +04:00
Alexey Prokhin
4d3ba3594c
Refactoring: moved ldc specific code from dmd/attrib.c and dmd2/attrib.c into gen/pragma.cpp
2012-02-15 13:16:06 +04:00
David Nadlinger
72d510cb5e
Emit floating-point integer quad word instructions with ll suffix.
...
The LLVM MC backend doesn't recognize the q suffix, which was previously used.
See llvm.org/bugs/show_bug.cgi?id=11935.
If this turns out to be a speed problem, it could be done using char[3].
2012-02-09 00:53:28 +01:00