Christian Kamm
5d4fe64ac2
Get rid of old phobos-based tests.
2009-05-28 22:00:08 +02:00
Christian Kamm
e03a897bad
Make sure complex -> integral casts are not used when casting to bool.
...
Error instead of assert on unimplemented cast.
2009-05-28 21:45:14 +02:00
Christian Kamm
803156b035
Allow complex -> integral casts.
2009-05-28 20:26:26 +02:00
Frits van Bommel
b06fa1f05e
I ran into another issue like the one fixed by r1318, so update all of
...
`tests/mini/norun_debug*` to hopefully keep crashing using the same trick.
2009-05-28 02:28:30 +02:00
Frits van Bommel
a24a2201f1
Teach -dgc2stack to preserve the call graph. This should allow for more
...
efficient execution by the pass manager.
2009-05-28 02:14:01 +02:00
Frits van Bommel
6619190ba5
* Add -functionattrs to default pass list so -dgc2stack is more effective
...
when callees aren't inlined. This should also improve various standard LLVM
optimizations.
* Comment out some verbose logging.
2009-05-28 00:07:21 +02:00
Kelly Wilson
1ec75f0536
merging
2009-05-27 12:42:28 -06:00
Kelly Wilson
cab7aeb843
just a simple change to cmake for mingw
2009-05-27 12:41:41 -06:00
Christian Kamm
30aa3fa00b
Added tag 0.9.1 for changeset a6dfd3cb5b99
2009-05-27 19:52:47 +02:00
Christian Kamm
7fd43e8bf7
Error instead of assert on delegate literals as constant expressions.
...
Make function literal linkage internal inside functions and external otherwise.
2009-05-27 19:20:18 +02:00
Frits van Bommel
e7b3f5415f
Make "aa[key]" use the same runtime call as "key in aa". The runtime calls
...
these were using were different, but with equivalent definitions.
With `ldc -O3`, the following functions now all compile to the exact same code:
{{{
int[int] y;
void foo(int x) {
if (x in y) {
auto z = x in y;
sink(*z);
}
}
void bar(int x) {
if (x in y) {
sink(y[x]);
}
}
void baz(int x) {
if (auto p = x in y) {
sink(*p);
}
}
}}}
2009-05-25 12:50:40 +02:00
Frits van Bommel
c8665ddc88
Revert ldmd back to use bash instead of sh to unbreak it on Ubuntu.
2009-05-23 23:18:47 +02:00
Kelly Wilson
a178d9563d
Fix for mingw32 segfault
2009-05-23 14:59:04 -06:00
Frits van Bommel
1791d7b8b4
Fix a behavioral change accidentally introduced by the move to the LLVM
...
commandline system: `-output-(bc|ll|s)` used to disable generation of an object
file unless explicitly requested with `-output-o`. Now they do so again.
2009-05-23 20:57:22 +02:00
Christian Kamm
52329f071e
Fix regression dstress.nocompile.finally_07. The EnclosingTryFinally handler
...
should not be set when emitting the landing pad's finally code.
2009-05-23 09:02:36 +02:00
Christian Kamm
2665fc4f3c
Add test from #308 to minitests.
2009-05-23 00:26:38 +02:00
Christian Kamm
5b799deeb4
Fix #308 by giving finally code emitted by EnclosingTryFinally a different landing pad.
2009-05-23 00:23:39 +02:00
Frits van Bommel
adfc5b3ee9
Fix scope(exit) foreach (ref v; arr) foo(v);
2009-05-22 21:38:01 +02:00
Frits van Bommel
59f9b35cea
Count the sret register as well when keeping track of how many integer registers
...
are available for extern(C) functions on x86-64.
Interestingly, llvm-g++ seems to have a very similar bug: http://llvm.org/pr4242
(So this breaks ABI-compatibility with llvm-gcc for this corner case, but gains
it with gcc...)
To clarify, this is about code like this:
{{{
struct S { void*[3] data; }
struct T { void*[2] data; }
// The T should be passed in memory, and p in the last int register.
extern(C) S fail(int, int, int, int, T t, void* p) {
S s;
s.data[0] = t.data[0];
s.data[1] = t.data[1];
s.data[2] = p;
return s;
}
}}}
which should generate code functionally equivalent to this:
{{{
extern(C) S* succeed(S* s, int, int, int, int, T t, void* p) {
s.data[0] = t.data[0];
s.data[1] = t.data[1];
s.data[2] = p;
return s;
}
}}}
(with the same definitions for S and T)
2009-05-22 13:17:06 +02:00
Christian Kamm
86e1457dde
Automated merge with http://hg.dsource.org/projects/ldc
2009-05-22 10:18:04 +02:00
Christian Kamm
c433604243
Fix bug #307 by doing what DMD does: add the arrayop to
...
sc->module->importedFrom instead of sc->module. That way array ops in template
instantiations will be semantic3'ed.
2009-05-22 10:17:47 +02:00
Frits van Bommel
2739cd108c
Let TargetABI::passByValue() know when a parameter is byref (either explicitly
...
or because it's a static array) by giving it the pointer type instead of the
type itself.
This fixes Derelict compilation on x86-64, where the ABI wasn't expecting a
static array to be passed in at all.
2009-05-22 00:19:54 +02:00
Christian Kamm
d537ad0d48
Allow package protected members to be accessed by the declaring module even if
...
it isn't in a package.
2009-05-21 18:08:31 +02:00
Frits van Bommel
2f150ddd62
Oops, didn't mean to change debug info linkage.
2009-05-21 15:26:46 +02:00
Frits van Bommel
a520661667
Now that templates instantiations are no longer emitted for all modules that
...
even blink at them they seem to break due to being linkonce (if compiled with
any optimization level > 0), so let's give them weak linkage instead.
The difference is that unreferenced linkonce symbols can be deleted, while
weak symbols need to be preserved.
2009-05-21 15:23:28 +02:00
Christian Kamm
f675d36cfb
Tentative fix for semantic3 on imported modules and unnecessary template
...
function definition issue. Please test!
Also change linkage of __interfaceInfos to external (same as __Class, __vtbl,
__init). The other change might make this superfluous.
2009-05-21 10:56:04 +02:00
Christian Kamm
8e56fe69a4
Merged xfBuild patch for dependency tree generation. See #286 .
2009-05-20 21:13:41 +02:00
Frits van Bommel
95c35225bb
Don't print the entire declaration of the alliassee when ->toChars() is
...
called on an `AliasDeclaration`; just printing the name will do. This fixes
#305 , which otherwise tries to generate
{{{
class E {
void A() {
alias /* recurse into E->toCBuffer() */ m;
}
}
}}}
by way of an infinite recursion (causing a segfault when the stack runs out).
2009-05-20 16:20:59 +02:00
Frits van Bommel
ea4690128b
Merge some changes from Tango's object.di into the testincludes version.
2009-05-19 22:35:08 +02:00
Frits van Bommel
3164ceba17
Remove some overly verbose logging.
2009-05-19 20:46:33 +02:00
Kelly Wilson
16a2512808
remove extra 'test' instructions and fix 'test' properly
2009-05-19 12:28:44 -06:00
Kelly Wilson
8941b6960c
fix missing 'test' mnemonic and add several variations
2009-05-19 11:58:54 -06:00
Frits van Bommel
727e8f0dfb
Install ldmd too.
2009-05-19 16:40:37 +02:00
Tomas Lindquist Olsen
f733680251
Try to cut down reallocations when building string literals.
2009-05-18 16:01:22 +02:00
Tomas Lindquist Olsen
152db286c0
Added a comment to the ldc.conf.in template about the %%ldcbinarydir%% "macro".
2009-05-18 15:08:46 +02:00
Frits van Bommel
81cf30688a
Patch to allow compiling LDC with MinGW, by mp4 / [1]jaffa (slightly edited).
...
Closes #300 .
2009-05-18 14:02:50 +02:00
Frits van Bommel
1ca2ee5d66
Allow ignored pragmas to have a body; don't ignore the body.
...
Also, ignore errors while trying to make sense of parameters to ignored pragmas
for -v.
2009-05-17 23:33:35 +02:00
Tomas Lindquist Olsen
be25445461
Added simple check for ClassInfo change introduced in DMD 1.045, it must have 12 fields.
2009-05-17 23:15:04 +02:00
Frits van Bommel
827880e467
Don't try to strip metadata if we don't generate any
2009-05-17 22:40:02 +02:00
Tomas Lindquist Olsen
0b8413b4bc
Fixed class -> integer casts.
2009-05-17 22:02:03 +02:00
Tomas Lindquist Olsen
2690f3cfd8
Add debug info for all class fields, including those from super classes...
2009-05-17 17:55:53 +02:00
Tomas Lindquist Olsen
e2ba08388f
Added new FreeBSD and Solaris predefined version identifiers.
2009-05-17 17:10:26 +02:00
Tomas Lindquist Olsen
b64ad3299e
Use RTTIBuilder to build !ModuleInfo, still needs some work.
2009-05-17 17:04:47 +02:00
Tomas Lindquist Olsen
3e4ade93ba
Updated comment in RTTIBuilder.h
2009-05-17 16:31:23 +02:00
Tomas Lindquist Olsen
b1fa43ce24
Increased RTTIBuilder buffer to 14 constants, to be big enough for !ClassInfo as well as !TypeInfo
2009-05-17 16:29:49 +02:00
Tomas Lindquist Olsen
dc4b7e8118
Update !ClassInfo generation to use !RTTIBuilder, slight update of !RTTIBuilder .
2009-05-17 16:27:01 +02:00
Tomas Lindquist Olsen
b6daf3d545
Renamed !TypeInfoBuilder to !RTTIBuilder.
2009-05-17 15:20:58 +02:00
Tomas Lindquist Olsen
0414a5acbb
Fixed filename in array bounds check for mixed in imported template function. Fixes ticket #295 .
2009-05-17 14:56:29 +02:00
Tomas Lindquist Olsen
9be5694168
Added error messages when failed to open files for .bc and .ll output, instead of just trying to write to the stream, pretty similar to the #281 problem.
2009-05-17 14:40:09 +02:00
Tomas Lindquist Olsen
0a77bd9fa6
Add error message when failed to open output stream for native asm output. Fixes ticket #281 .
2009-05-17 14:20:27 +02:00