Commit Graph

393 Commits

Author SHA1 Message Date
Christian Kamm
4e0b6b4bf0 Make sure functions containing inline asm are never inlined to avoid
duplicated labels.
2008-09-08 20:38:55 +02:00
Tomas Lindquist Olsen
f411df11e3 Fixed choosing default target machine without needing to link in targets. 2008-09-07 17:44:25 -07:00
Christian Kamm
d44f21687e Restructure path handling a bit. Fixes #66. 2008-09-06 12:27:27 +02:00
Tomas Lindquist Olsen
3a8125b7c8 Pointer comparisons were being treated as signed integers. Now they are handled as unsigned integers. 2008-09-04 17:24:10 +02:00
Tomas Lindquist Olsen
ee29f29659 Fixed pointer comparisons with differing types. 2008-09-04 17:17:40 +02:00
Christian Kamm
d6e7a65b69 Automated merge with http://hg.dsource.org/projects/llvmdc 2008-09-02 19:14:37 +02:00
Christian Kamm
877da230a3 Get rid of runtime path. Allow defaultlib and debuglib switches to be given multiple times. 2008-09-02 19:14:25 +02:00
Tomas Lindquist Olsen
1565f00f85 Fixed toobj.cpp to compile with latest LLVM, seems a method overload was removed recently. 2008-08-31 18:38:16 +02:00
Christian Kamm
8efe20f5f9 Link in pthread, dl and m on OS X. 2008-08-29 14:11:20 +02:00
Christian Kamm
b2b013d929 Always call finalizer for stack classes. Checking for the number of
destructors of the class type is not sufficient: we may be holding a derived
class with a destructor.

Fixes: run/auto_07
2008-08-28 20:17:21 +02:00
Christian Kamm
0f92afc5b9 Do not assert on non-existing supposed globals. (see nocompile/union_12,14) 2008-08-28 20:15:36 +02:00
Tomas Lindquist Olsen
d78677961b Removed D_InlineAsm and D_InlineAsm_X86 versions.
Made use of 'naked' in inline asm an error.
2008-08-25 19:36:27 +02:00
Christian Kamm
f183d7ce1d Automated merge with http://hg.dsource.org/projects/llvmdc 2008-08-24 17:02:03 +02:00
Tomas Lindquist Olsen
b41a80cefc Reverted some changes in the Tango patch, splitting asm block is simply not supported by llvm. 2008-08-24 16:51:17 +02:00
Christian Kamm
72a2db6d7c Get rid of isLinux and isWindows in favor of global.params.os. 2008-08-24 16:22:58 +02:00
Christian Kamm
ef80c904dc Make class invariants work. 2008-08-21 15:19:45 +02:00
Tomas Lindquist Olsen
2e1a2bfe4a Fixed problem with parameterized intrinsics taking bools. 2008-08-20 19:01:56 +02:00
Tomas Lindquist Olsen
5bf3e8911a Added support for overloaded intrinsics.
Added atomic intrinsics in the intrinsics.di header.
2008-08-20 01:02:22 +02:00
Tomas Lindquist Olsen
3346a78e71 First step towards D abi compliance.
Framepointer elimination is now disabled for functions using inline asm (with a hack from aKor).
2008-08-19 20:18:01 +02:00
Christian Kamm
9caf74c59b Fix binops change for OpAssign. 2008-08-17 13:16:35 +02:00
Christian Kamm
521a988e43 Binary ops had the wrong result type for real op imaginary.
Fixes:
run/creal_03
2008-08-17 12:21:53 +02:00
Christian Kamm
d0fec06c7d Abstract functions may have bodies.
Fixes:
run/a/abstract_17_A,B
2008-08-17 11:39:36 +02:00
Christian Kamm
fe9b2b7efc Fix TypeInfo_Tuple array initialization.
Fixes:
mini/emptytuple.d
2008-08-16 19:29:56 +02:00
Christian Kamm
6a81f7e66f Do not need to allocate temporary for function literal. 2008-08-16 14:01:23 +02:00
Christian Kamm
7a535a1798 Fix function literals. They never carry a context.
Fixes:
run/f/foreach_36_A
2008-08-16 13:33:37 +02:00
Christian Kamm
981da466b7 Don't assert on empty foreach body.
Fixes:
run/f/foreach_28_B
2008-08-16 12:38:53 +02:00
Christian Kamm
e5568d62af Prevent cast error for cast(void) around expression statements.
Fixes:
run/e/ExpressionStatement_10_A
2008-08-16 12:32:22 +02:00
Christian Kamm
ceb292ed85 Fix continue inside dowhile statements.
Fixes:
run/do_while_02
2008-08-16 11:19:34 +02:00
Christian Kamm
406cefb53f Fix delegate equality.
Fixes:
mini/delegate.d
run/d/delegate_17_A
2008-08-16 10:48:25 +02:00
Christian Kamm
60617d5444 Add interface comparison to EqualExp: just do pointer comparison.
Fixes run/b/bug_e2ir_1786_B,C.
2008-08-15 22:41:47 +02:00
Tomas Lindquist Olsen
2b2291952c Fixed problem when instantiating a template with private global variables. 2008-08-15 05:08:33 +02:00
Christian Kamm
c31d07e23f Reverted bad change [506]. Added test case for remaining bug. 2008-08-13 23:54:09 +02:00
Christian Kamm
53f8542719 Got rid of improper static array compile time index check.
It had caused tango.core.Variant to fail to compile.
2008-08-13 22:31:46 +02:00
Christian Kamm
575ae2ea33 Provided overload to TypeClass::builtinTypeInfo to return true.
Shouldn't almost all types have a builtin typeinfo? Maybe it'd be better to
have the default at true and only overload typedef and friends.
2008-08-13 22:14:43 +02:00
Christian Kamm
8efde8d38d Do not assert if there's a struct-this nested context. 2008-08-13 20:50:54 +02:00
Tomas Lindquist Olsen
7ffb43fdc6 Fixed uncaught, invalid use of nesting introduced in rev [498] 2008-08-13 17:11:03 +02:00
Tomas Lindquist Olsen
aae027961c merge 2008-08-13 15:43:34 +02:00
Tomas Lindquist Olsen
0eeedba887 Fixed problems constant multidimensional static array initializers. 2008-08-13 15:43:13 +02:00
Christian Kamm
878faff7fb Revert accidental change to toobj.cpp. 2008-08-12 19:50:41 +02:00
Christian Kamm
57cd1b4445 Get rid of 'static function cannot access nested' error. It is caught again later. 2008-08-12 19:48:42 +02:00
Christian Kamm
8b1903c0b3 Make llvmdc work with llvm 2.4svn revision 54614. Breaks compatibility with llvm 2.3. 2008-08-10 21:09:23 +02:00
Tomas Lindquist Olsen
43567aca3b Fixed a critical bug in the runtime, where _d_allocmemoryT would mark
the memory block as having pointers (for scanning) opposite of what it
should. So pointers would not be seen and freed. Should fix a bunch of
regressions with AAs.
2008-08-10 17:28:01 +02:00
Christian Kamm
1284721437 Error if there is no this in a call requiring this.
Fixes:
nocompile/b/bug_type_308_G,H
nocompile/bug_e2ir_814
nocompile/i/inline_18_A,B
nocompile/inline_07
nocompile/static_09
2008-08-10 10:50:53 +02:00
Christian Kamm
646679fd44 Make struct literals work with typedefs.
Fixes run/s/struct_initialization_13_A and run/t/typedef_20_A
2008-08-10 10:40:26 +02:00
Tomas Lindquist Olsen
9d7f16b967 Added pragma(llvmdc, "string") for misc per-module compiler configuration, currently "string" can only be "verbose" which forces -vv for module it appears in.
Reimplemented support for nested functions/class using a new approach.
Added error on taking address of intrinsic.
Fixed problems with the ->syntaxCopy of TypeFunction delegate exp.
Removed DtoDType and replaced all uses with ->toBasetype() instead.
Removed unused inplace stuff.
Fixed a bunch of issues in the runtime unittests, not complete yet.
Added mini tests.
2008-08-10 08:37:38 +02:00
Christian Kamm
b2d860374b Default initialize temporary struct generated from struct literal.
This makes sure padding is zeroed out.
2008-08-09 09:03:52 +02:00
Christian Kamm
4ee26b350a Forgot return in DtoInitializer 2008-08-07 18:17:59 +02:00
Christian Kamm
f7cd3cf969 Move zero init of padding to DtoInitializer in order to respect void initializers. 2008-08-07 18:15:27 +02:00
Christian Kamm
14c3e022e4 Use llvmdc helpers for store and bitcast in fp80 padding init code. 2008-08-05 20:23:44 +02:00
Christian Kamm
b2efd0d317 Zero out padding of fp80. 2008-08-05 20:10:12 +02:00