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
Christian Kamm
8362b86c5a
Move AllocaInst creation into DtoAlloca helper. Will enable special zero-init of fp80 reals' padding.
2008-08-05 19:28:19 +02:00
Christian Kamm
cc7e5e63b1
Make sure to initialize isBranchToLabel to zero.
...
Fixes unittest compilation for tango.text.Text.
2008-08-04 21:34:53 +02:00
Tomas Lindquist Olsen
800497f2be
Fixed constant expression taking address of function.
2008-08-04 03:38:23 +02:00
Tomas Lindquist Olsen
daad516579
Removed the 'needsstorage' thing from Dsymbol. Arguments are not always given storage when applicable. This is not longer treat specially
...
in this regard. Code for accessing nested variables and contexts rewritten. Probably more. Fairly well tested.
2008-08-04 02:59:34 +02:00
Tomas Lindquist Olsen
b0a5f554d6
Fixed problem in AssignExp where the result value might be uninitialized. see mini/assign1.d
2008-08-03 16:59:28 +02:00
Tomas Lindquist Olsen
dedc0f4829
Fixed problem with using the variable names _arguments and _argptr in non D-style vararg functions.
...
Fixed problem with compiling with LLVM 2.3
2008-08-03 16:10:00 +02:00
Christian Kamm
aff505ea6e
Automated merge with http://hg.dsource.org/projects/llvmdc
2008-08-02 22:54:46 +02:00
Christian Kamm
ad8e9ae852
Implement a rough AddrExp::toConstElem()
2008-08-02 22:54:36 +02:00
Tomas Lindquist Olsen
1ee9104354
Fixed AA Rvalue-only access (like indexing an AA return value immediately).
2008-08-02 22:35:24 +02:00
Tomas Lindquist Olsen
00072e5fd0
Fixed debug info and lazy arguments.
2008-08-02 21:51:49 +02:00
Christian Kamm
41d6279a64
Make sure DtoType has been run on the DType before assembling a call.
2008-08-02 21:20:31 +02:00
Tomas Lindquist Olsen
55639e01ea
Fixed inserting an AA entry with 'this' as key.
...
Fixed debug info for aggregate parameters. Only seems to work on byval arguments.
2008-08-02 17:24:10 +02:00
Tomas Lindquist Olsen
18b376ba66
Added generation of the llvm 'sret' parameter attribute where applicable.
...
Fixed some wrong argument handling code when setting parameter attributes.
Updated the tango unittest script in the tango patch, does not work yet, all modules don't compile...
2008-08-02 02:54:57 +02:00
Tomas Lindquist Olsen
0251a1e720
Fixed regressions
2008-08-02 01:23:53 +02:00
Tomas Lindquist Olsen
e31070a437
Fixed problems with nested 'this'. Fixes #39 .
...
Fixed problem with debug info order of intrinsic calls (func.start after declare).
2008-08-02 00:50:39 +02:00
Tomas Lindquist Olsen
885a805d26
Fixed problem where global variables did not resolve type before using it.
2008-08-01 21:54:40 +02:00
Tomas Lindquist Olsen
65406bba25
Fixed problem with invoking intrinsics, which llvm doesn't allow.
2008-08-01 19:54:31 +02:00
Tomas Lindquist Olsen
fd2fac6aa7
Fixed param attrs for return values (not really broken, but would be if more return attrs were added)
2008-08-01 18:07:33 +02:00
Tomas Lindquist Olsen
9b45fc5533
Changed the handling of variadic intrinsics a bit.
...
Removed the -fp80 option and made real be 80bit floats on X86, this is what the D spec really says it should be and fixes a bunch of issues.
Changed the handling of parameter attributes to a bit more generalized approach.
Added sext/zext attributes for byte/short/ubyte/ushort parameters, fixes #60 .
Parameter attribs now properly set for intrinsic calls if necessary.
Made the tango.math.Math patch less intrusive.
Fixed/added some mini tests.
2008-08-01 17:59:58 +02:00
Tomas Lindquist Olsen
07cfb67178
Removed tango from the repository and instead added a runtime dir with the files needed to patch and build tango from svn.
...
Reworked the LLVMDC specific pragmas.
2008-08-01 00:32:06 +02:00
Christian Kamm
8f14ece3af
Move DtoArrayBoundsCheck from llvmhelpers to arrays.
2008-07-31 19:14:49 +02:00
Christian Kamm
fcd784d14f
Forgot a ->toBasetype() in the array bound code.
...
Fixes compile/typedef_05.
2008-07-30 20:25:46 +02:00
Christian Kamm
5b5d7404b4
Insert array bound checks for slices.
2008-07-30 19:02:13 +02:00
Christian Kamm
7882f4858e
Enable array bounds check and emit them in IndexExp.
2008-07-30 18:38:56 +02:00
Christian Kamm
fc9ccb9f6a
Rework complex divison.
2008-07-30 16:48:35 +02:00
Tomas Lindquist Olsen
905ca019dd
Added type param to DVarValue as DMD sometimes overrides the type of the VarDeclaration.
...
Added support for align(1)/packed structs, other alignments are still ignored.
Fixed some problems with accessing lazy arguments.
2008-07-30 10:12:55 +02:00
Christian Kamm
3b21ae25be
Move DeclarationExp code into a helper function so it can call itself for template mixin members.
2008-07-30 09:21:06 +02:00
Christian Kamm
f2c5fa2c2f
Enable insertion of missing terminator instruction for main.
2008-07-29 15:58:45 +02:00
Christian Kamm
dd8982db1f
Disallow delegates to static functions.
2008-07-29 12:49:14 +02:00
Christian Kamm
c6e0dd9be3
Fix the static array cast size check.
2008-07-29 12:44:28 +02:00
Christian Kamm
caa61a5523
Error if static array is cast to an array such that oldarraysize % newelemsize != 0.
2008-07-29 12:32:01 +02:00
Christian Kamm
99f1cfef36
Error instead of assert on unimplemented interface functions.
2008-07-29 10:55:58 +02:00
Christian Kamm
3db56c7a17
Error message for calling a function with a missing 'this' arg.
2008-07-29 10:29:52 +02:00