ldc/driver
Luna 82878ef32c
Improve Objective-C support (#4777)
* WIP: Objective-C support

* Further work on implementation

* ObjC dynamic cast

* Add swift stub class attribute

* Classes, protocols and ivars

* Fix compilation issues

* Fix objc ir codegen

* Add objc linker option

* Add swift stub classref get ir gen

* Minor cleanup

* Fix objc link flag being added on non-darwin platforms

* Refactor objc gen

* remove use of std::nullopt

* Emit protocol tables

* Remove unused variable

* Formatting

* Fix build in release mode. Thanks for nothing, c++.

* Fix consistency

* Fix dynamic casts

* Fix tocall parentfd ref and arm msgsend call

* Make instance variables work

* Implicitly add isa pointer to objc classes.

* Fix protocol referencing & allow pragma mangle

* Fix protocol linkage

* Fix direct call support

* always generate var type for methods

* Fix test 16096a

* Fix extern ivar symbol gen, retain method decls

* Remove arm32 and x86 support

* Check method and ivar info before pushing to member list

* Make ObjcMethod info untyped.

* Make ivar and method gen more robust

* Generate optional protocol symbols

* Use bitcasting instead of creating multiple type defs

* Fix invalid protocol list struct gen

* More codegen robustness

* emit protocol table as const

* Make protocol table anon struct

* Fix callable type, generate protocol_list_t properly.

* Cast vthis to argtype

* Handle protorefs and classrefs properly

* seperate label ref and deref

* Fix method lookup

* Enable objective-c tests

* Enable objc_call_static test

* Scan both classes and protocols for method ref

* Enable objective-c tests on arm as well.

* supress objc linker warning in tests

* Fix class and protocol gen structure

* Fix objc_protocol_sections test

* ObjcMethod only get callee for functions with bodies

* Fix protocol class method gen

* Make ObjcMethod anon again

* Fix missing emit calls

* Fix classref gen

* Implement some of the requested changes

* Enable compilable tests

* Fix property selector gen, ugly hack for final funcs.

* Fix segfault in referencing fd->type

* Refactor implementation

* Fix null references in class and method lookup

* include unordered_map

* Get functionality on-par with prev impl.

* Fix super context calls

* Move -L-w flag to d_do_test and use IN_LLVM in objc.d/h

* add LDC version tag to -L-w flag

* Update CHANGELOG.md
2024-12-03 04:26:27 +01:00
..
archiver.cpp
archiver.h
args.cpp
args.h
cache.cpp
cache.h
cache_pruning.d
cache_pruning.h
cl_helpers.cpp
cl_helpers.h
cl_options-llvm.cpp
cl_options-llvm.h
cl_options.cpp
cl_options.h
cl_options_instrumentation.cpp
cl_options_instrumentation.h
cl_options_sanitizers.cpp Implement -fsanitize-recover for ASan and MSan. (#4783) 2024-11-29 19:35:56 +01:00
cl_options_sanitizers.h Implement -fsanitize-recover for ASan and MSan. (#4783) 2024-11-29 19:35:56 +01:00
codegenerator.cpp Replace getVoidPtrType() 2024-07-18 23:21:10 +02:00
codegenerator.h
config.d
configfile.cpp
configfile.d ldc2.conf: %%ldcconfigpath%% placeholder added 2024-08-09 07:47:14 +08:00
configfile.h
cpreprocessor.cpp
cpreprocessor.h
dcomputecodegenerator.cpp Fix unrelated recent compile regression with MSVC++ 2024-06-03 15:01:57 +02:00
dcomputecodegenerator.h
exe_path.cpp
exe_path.h
ldc-version.cpp.in
ldc-version.h
ldc_version.d.in
ldmd.cpp ldmd2: Don't ignore other flags with -mcpu=<?|h|help> (#4745) 2024-09-02 11:24:08 +00:00
linker-gcc.cpp Improve Objective-C support (#4777) 2024-12-03 04:26:27 +01:00
linker-msvc.cpp Windows: Avoid accidentally using GNU link.exe for linking (#4718) 2024-08-07 21:25:23 +02:00
linker.cpp
linker.h
main.cpp Emscripten: Predefine versions as for a regular Linux musl platform (#4750) 2024-09-09 13:23:43 +02:00
main.d
plugins.cpp
plugins.h
response.cpp
targetmachine.cpp
targetmachine.h
timetrace.d
timetrace.h
timetrace_sema.d
toobj.cpp
toobj.h
tool.cpp Windows: Avoid accidentally using GNU link.exe for linking (#4718) 2024-08-07 21:25:23 +02:00
tool.h Windows: Avoid accidentally using GNU link.exe for linking (#4718) 2024-08-07 21:25:23 +02:00