Commit Graph
200 Commits
Author SHA1 Message Date
David Nadlinger c6abdcf4a4 Don't set TypePointer::isunsigned to true in the frontend.
The previous solution was problematic because the change was language-
visble via the isUnsigned trait. Now, pointers are simply explicitly
checked for in the relevant places. (Note that there might be cases in
the diff where a direct isunsigned() call would have been appropriate –
I only checked for instances where the type clearly cannot be a pointer,
but chose to go the safe route in replicating existing behavior
otherwise).

Fixes DMD testcase 'traits'.
2012-09-28 00:28:49 +02:00
David Nadlinger 25beaf41b5 Fix base class contract invocation.
Fixes DMD testcase 'testcontracts'.
2012-09-27 21:05:51 +02:00
David Nadlinger 9e64918efd Fix #162 - contracts for member functions with out parameters.
Also documented the code and changed it to explicitly use IN_LLVM
for the LDC specific parts in order to make debugging/frontend
merging easier.
2012-09-17 01:46:48 +02:00
kai 940d6e907f Take advantage of Triple and TargetData.
A lot of system specific knowledge is already present in LLVM. This is used to populate several fields in global.params instead of hard coded values in main(). Ensures that the frontend and LLVM have always the same values.
2012-09-16 19:50:21 +02:00
David Nadlinger 98f9742db5 FuncDeclaration::semantic3 cleanup.
Cosmetical changes only.
2012-09-16 19:22:17 +02:00
kai 9fad5fcfbd Remove unused inifile implementation.
LDC uses libconfig. The inifile implementation is dead code.
2012-09-16 13:45:28 +02:00
kai 4b0c4bf4ae Get rid of global.params.dataLayout.
The string representation of the data layout is retrieved from the TargetData class (in main) and passed via global.params.dataLayout to the module. Since the gTargetData is also a global variable it makes no sense to pass this information using another global variable.
2012-09-08 20:25:42 +02:00
kai 4ae64dd2e7 Fix size returned by os_critsecsize() and construct type for D_CRITIAL_SECTION on Windows. 2012-09-08 11:49:37 +02:00
David Nadlinger bf0d8afc88 Merge branch 'dmd-2.060' into master.
Conflicts:
	dmd2/func.c
	dmd2/mars.c
2012-09-07 04:15:44 +02:00
David Nadlinger 57b2eb3dad Fixed crash on nested functions with parameters that have a postblit.
Implementing the recursion in DeclarationExp::apply, which seems more
natural, lead to a "cannot interpret" CTFE error in Phobos.

An upstream bug will be raised about this.
2012-09-07 03:51:33 +02:00
David Nadlinger 207033c427 Removed LDC-only dead code.
Helps avoid broken merges.
2012-09-07 03:51:33 +02:00
kai 8987f2da30 Fix format for MSVC. 2012-09-07 03:51:32 +02:00
David Nadlinger 6fea7358dc Fixed several asm-related error message formats. 2012-09-07 03:51:32 +02:00
David Nadlinger 837ef30fec Merged DMD 2.060 frontend.
Upstream Git tag v2.060 (e8fe11c20249cb9e42538be88c99b74ede4d12e3).
2012-09-07 03:51:31 +02:00
David Nadlinger e03e027002 Removed all CRLF line endings from DMD source.
Some files in our copy of the DMD 2 source had CRLF line endings.
This was not only inconsistent, but also made merging DMD patches
(where LF is used throughout) unnecessarily painful.
2012-09-07 03:51:31 +02:00
kai 9a3cdf2e10 Use .obj extension on Windows.
The Windows linker LINK insists on the .obj extension. The following changes are made:
- CMake uses the same extension as the C compiler
- global.obj_ext_alt (aka .obj) is recognized as objectfile extension
- global.obj_ext_alt is used on Windows
2012-09-05 19:23:34 +02:00
kai 521921e5d3 Fix some whitespace issues. 2012-08-25 14:41:33 +02:00
kai 1205e3ea83 Use TargetData to get size of certain types (instead of hard-coded values). 2012-08-25 01:29:42 +02:00
kai e6a07ffdfe Several changes to optimizer related code.
- New functions codeGenOptLevel() and verifyModule() to remove code duplication
- Hidden option no-verify renamed to disable-verify and moved to optimizer (like opt tool)
- Removed global.params.noVerify
2012-08-16 23:26:52 +02:00
Jernej Krempuš 100907ffa2 Added pragma shufflevector. 2012-08-06 20:50:33 +02:00
kai dbb5a34eda Add changes for LLVM 3.2. 2012-07-29 17:31:50 +02:00
kai e13b115583 More unification work. 2012-07-29 14:22:56 +02:00
kai cb77cca0d3 Fix bug in ComplexExp::toChars(). Also fixed in dmd 2.060. 2012-07-14 19:55:52 +02:00
kai 175810bdab Consolidate all MSVC related files for LDC/LDC2 in 1 folder. 2012-06-06 17:32:47 +02:00
kai 30cc6e309a Add more files required for MSVC. 2012-06-01 17:49:28 +02:00
kai 48f8ffeb0b Further changes to compile using MSVC. 2012-05-23 17:36:26 +02:00
Alexey Prokhin bb2ca5b4f5 Fixed #94 — Phobos Builds Fail.
Reapplied ldc specific patches onto floatToBuffer()
2012-04-27 11:10:12 +04:00
Alexey Prokhin f4d8021e5a Merge branch 'master' of github.com:ldc-developers/ldc 2012-04-22 12:17:01 +04:00
Alexey Prokhin 3fb21f986e Merged the last bits of dmdfe 2.059 2012-04-22 12:10:47 +04:00
Alexey Prokhin 21a926c936 Resolved small merge conflict.
FuncAliasDeclaration::mangle() was wrongly put into '#if IN_DMD' block.
2012-04-21 22:37:36 +04:00
Alexey Prokhin 7e23eb5047 Infer function literal kind (TOKdelegate or TOKfunction). 2012-04-21 22:37:36 +04:00
Alexey Prokhin 0e54278c5a Implicitly cast return expression to inferenced return type of a literal function.
The commit fixes a segfault when compiling a code similar to:
  float delegate() d = { return 1.0; };
2012-04-21 22:37:36 +04:00
Alexey Prokhin 27fadea1b9 Merged last dmd2 changes 2012-04-06 15:46:07 +04:00
Alexey Prokhin bca73ec8b9 Merged dmd 2.059beta 2012-04-05 15:30:00 +04:00
Alexey Prokhin 50bbeb7c6f Remerged dmd2 frontend using git subtree 2012-04-05 11:12:22 +04:00
Alexey Prokhin 038825a195 Temporary removed dmd2 frontend 2012-04-05 11:10:26 +04:00
Eldar Insafutdinov feefad412c Move cl_options out of LDCShared 2012-04-02 14:53:52 +01:00
kai e5f2430855 Remove unused member VarDeclaration::anonDecl. 2012-03-28 06:57:17 +02:00
kai e739102374 Removed unused member VarDeclaration::offset2. 2012-03-27 07:13:55 +02:00
kai 0a9ba4d283 Move additional #include inside IN_LLVM section. 2012-03-25 15:19:25 +02:00
kai 2433b74460 Add some upcoming changes from 2.059/1.074 which helps compiling with MSC. 2012-03-22 21:01:43 +01:00
kai 4616b068c8 Add MSC specific code. 2012-03-22 21:01:07 +01:00
kai dee054fae0 Small code cleanup.
- Wraps some LDC specific code in 'IN_LLVM' section
- Adds some MSVC specific code to 'IN_LLVM' section
- Removes an unused include file

Net result is much less errors with MSVC.
2012-03-15 07:11:54 +01:00
David Nadlinger 1a17b17a11 Fix TypeNull::toDecoBuffer prototype mismatch.
This shouldn't have caused any harm, as it currently only forwards to Type::toDecoBuffer anyway.
2012-03-13 10:49:28 +01:00
Alexey Prokhin 598942bd78 Fixed #28 — 64-bit unions are not the same size as C language unions in some situations 2012-03-06 11:29:30 +04:00
Alexey Prokhin ae7f0ca7e7 Preliminary vector support 2012-02-16 14:42:23 +04:00
Alexey Prokhin 5af48edec3 Merged the final dmd 2.058 2012-02-15 13:23:23 +04:00
Alexey Prokhin 8282153738 Removed special treatment of -property switch 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 1f4cd033ca Fixed Type::implicitConvTo() 2012-02-15 13:23:23 +04:00