Bug 24852 – LDC fails when compile foreach for the target avr.

Status
RESOLVED
Resolution
INVALID
Severity
normal
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
Other
OS
Other
Creation time
2024-11-10T13:21:50Z
Last change time
2024-11-10T14:21:15Z
Assigned to
No Owner
Creator
cbleser

Attachments

IDFilenameSummaryContent-TypeSize
1922avr_test.tgzTest program for the AVR processorapplication/x-compressed-tar298

Comments

Comment #0 by cr — 2024-11-10T13:21:50Z
Comment #1 by cr — 2024-11-10T13:29:42Z
Created attachment 1922 Test program for the AVR processor This contains to simple test program One written in D style and another in C style(D). The style compiles but the D-style doesn't
Comment #2 by cr — 2024-11-10T13:32:47Z
The test program was compiled as follows D style test ldc2 -betterC -mtriple=avr -gcc=avr-gcc test.d Invalid bitcast %20 = bitcast i16 %18 to i32 LLVM ERROR: Broken module found, compilation aborted! #0 0x00006535b26c02e7 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/home/carsten/bin/ldc2-1.37.0-linux-x86_64/bin/ldc2+0x6acf2e7) fish: Job 1, 'ldc2 -betterC -mtriple=avr -gcc…' terminated by signal SIGABRT (Abort) C style test ldc2 -betterC -mtriple=avr -gcc=avr-gcc test_ptr.d The C style compiles fine.
Comment #3 by cr — 2024-11-10T13:52:09Z
I just noted that the size_t for the AVR 8-bit processor is uint. But the process can only address 16 bits so it should properly be ushort and ptrdiff_t should be a short.
Comment #4 by alphaglosined — 2024-11-10T14:21:15Z
The ``size_t`` definition in ldc: https://github.com/ldc-developers/ldc/blob/master/runtime/druntime/src/object.d#L62 Note: ldc bugs need to be filed on ldc's repository, not here.