Commit Graph

65418 Commits

Author SHA1 Message Date
Pierre Muller
84c04f36f3 Fix compilation for x86_64-linux target using libc with -dFPC_USE_LIBC option 2022-06-07 23:51:27 +02:00
Pierre Muller
2307dc8f26 Try to fix real constant problems for llvm compiler 2022-06-07 23:51:27 +02:00
Jonas Maebe
f382f2d6ed dbgllvm: support for tobjectdef debug information
Classes, objects, interfaces, Objective-C classes, ...
2022-06-07 21:42:41 +02:00
Jonas Maebe
61f01ded61 dbgllvm: struct_metadef fixes
It will be used to hold a reference to the underlying structure of a class,
whose type is represented as a pointer to a DW_TAG_class_type for compatibility
with the debug information generated by the FPC backend (otherwise we could
instead just add a deref expression to all variables of such a type)
2022-06-07 21:42:41 +02:00
Jonas Maebe
addd0e7dcf dbgllvm: skip static fields when writing struct fields
These are not part of the struct instances
2022-06-07 21:42:41 +02:00
Jonas Maebe
f9b216f99a dbgllvm: remove tmembercallbackinfo
Leftover from dbgdwarf, not used here
2022-06-07 21:42:49 +02:00
Jonas Maebe
4c8249de34 dbgllvm: added appenddef_struct_named
Factored out of appenddef_record_named for reuse by objectdefs.

Also moved responsibility of adding the struct dinode to the asmlist
to the caller, as the name of this method does not imply it will do
that.
2022-06-07 21:42:41 +02:00
marcoonthegit
f2c8018f9b * Add some Delphi compatibel constants to the ConvUtils unit bug 39771 2022-06-06 23:13:47 +02:00
marcoonthegit
167f434e84 * Implement CompatibleConversionType and CompatibleConversionType for ConvUtils unit bug #39770 2022-06-06 23:13:47 +02:00
marcoonthegit
7886233b0e * Implement ConvUnitAdd, ConvUnitDiff, ConvUnitInc and ConvUnitDec bug #39769 2022-06-06 23:13:46 +02:00
marcoonthegit
7da3e17571 * Implement ConvUtils.ConvUnitCompareValue and ConvUtils.ConvUnitSameValue bug
#39768
2022-06-06 23:13:46 +02:00
Jonas Maebe
706443c354 dbgllvm: support for record field debug information 2022-06-06 23:12:53 +02:00
Jonas Maebe
b456833b03 aasmllvmmetadata: remove leftover unused type 2022-06-06 23:12:53 +02:00
Jonas Maebe
5d02c65425 objcdef: remove duplicate variant start check 2022-06-06 23:12:53 +02:00
Jonas Maebe
76e3cfc38f parentfpstruct: don't add vo_is_firstfield to first field of record
That flag is only for the first field of variant parts of records
2022-06-06 23:12:53 +02:00
Jonas Maebe
60c95032fa llvm: removed Xcode 10.0/10.1 as supported versions
These already did not work because they predate clang 7
2022-06-06 23:12:53 +02:00
florian
927e3fd455 * patch by Rika: improve EncodeUleb128/EncodeSleb128, second part of #39750, resolves #39750 2022-06-06 22:14:46 +02:00
marcoonthegit
3751958a32 * Fix not setting result in ConvUtils.RegisterConversionType mantis #39767 2022-06-06 17:28:31 +02:00
marcoonthegit
3c4f1c454f * commit weird temperature scale conversion bug #39763 2022-06-06 17:21:08 +02:00
marcoonthegit
18c0a0eebe * * commit convertfrom/to fixes from bug #39764 and #39765 2022-06-06 17:21:08 +02:00
florian
51ab0d759f * patch by Rika: improve EncodeUleb128/EncodeSleb128, part of #39750 2022-06-05 20:52:19 +02:00
marcoonthegit
7ddeaa54c0 * patch from Bart to fix convutils temperature fix. 2022-06-05 18:51:52 +02:00
marcoonthegit
4710281936 * guard agains empty arrays in a few tArrayHelper binsearch methods
fixes bug #39761
2022-06-05 18:03:28 +02:00
marcoonthegit
2df9dd9c14 * another fix for bug #39758, this time the end of the string 2022-06-05 17:46:58 +02:00
marcoonthegit
c4be74abf3 * typo fix in last commit 2022-06-05 15:28:03 +02:00
marcoonthegit
009816cbc5 * Also set clock12 to false if ampm is before %I. bug #39760 and fix from liao bozhi 2022-06-05 12:37:29 +02:00
mattias
1a28b1b5c4 fpdoc: less hints 2022-06-04 22:51:41 +02:00
mattias
43444ab7f0 fcl-passrc: fixed releasing modules of a package 2022-06-04 22:51:41 +02:00
marcoonthegit
5b90eaf2dd * move char index checks up. fixes bug #39758 2022-06-04 22:40:56 +02:00
florian
1d8b21bcfc * align memory blocks in cmem at least to stack alignment boundaries, resolves #39730 2022-06-04 22:27:51 +02:00
Jonas Maebe
25e832940c llvmdbg: support for generating debug information for local/para varsyms
Note that not all symbols are covered yet, because absolutevarsyms are not
yet supported and those are e.g. used for function result aliases.
Additionally, not all types are fully supported yet.
2022-06-04 22:26:40 +02:00
Jonas Maebe
e7ec91eca8 dbgllvm: rename hastable for staticvarsym declarations 2022-06-04 22:26:40 +02:00
Jonas Maebe
a76038e1d1 hlcgobj: new getlocal and recordnewsymloc methods
Call hlcg.getlocal instead of tg.getlocal when used for actual parameters/local
variables. Has an extra tsym parameter, which will enable the LLVM backend to
insert debug information.

Call hlcg.recordnewsymloc when the location of a (local/para) symbol changes,
so debug info tracking can be updated (only done for LLVM currently)
2022-06-04 22:26:40 +02:00
Jonas Maebe
a76085e463 tllvmcallpara: record whether it's passed to metadata
Sometimes we need the def to store a the original def of the passed parameter,
e.g. for the first argument to llvm.dbg.addr
2022-06-04 22:26:40 +02:00
Jonas Maebe
41a6c5e967 agllvm: support specialised metadata with field names
Necessary for DIExpression
2022-06-04 22:26:40 +02:00
Jonas Maebe
c92a035614 agllvm: support nested constants in parameters
Needed for metadata support
2022-06-04 22:26:40 +02:00
Jonas Maebe
abfd975571 TCGParaLocation: remove alignment gap 2022-06-04 22:26:40 +02:00
Jonas Maebe
dc1e0a6bb3 tllvmcallpara: turned into object and added convenience methods 2022-06-04 22:26:40 +02:00
Jonas Maebe
fe0048bcec llvm: changed llvm_metadatatype from untyped pointer to undefineddef
That matches its meaning better, as it should not result in type conversions.
E.g. some kinds of metadata parameters expect a "type register" parameter such
as "metadata i32* %reg.3"
2022-06-04 22:26:40 +02:00
Jonas Maebe
aa43441ac9 llvm: replaced boolean fields in tllvmcallpara with a set 2022-06-04 22:26:40 +02:00
Jonas Maebe
573b2554f4 llvminfo: fix copy/paste error in llvm 14 comment
Spotted by @Alexey-T1
2022-06-04 22:26:40 +02:00
mattias
13ebe495df fcl-passrc: fixed parsing property hints 2022-06-04 21:09:40 +02:00
mattias
36d7b53437 fcl-passrc: resolver: fixed emit hints for used units 2022-06-04 20:40:32 +02:00
Jonas Maebe
a45e5e7ab6 llvm: version 14.0 support 2022-06-04 13:34:09 +02:00
mattias
309d8a90fd fcl-passrc: fixed searching overload in mode delphi 2022-06-04 10:52:20 +02:00
Jonas Maebe
49ad3b0d2c msg*.inc: regenerated 2022-06-04 10:23:28 +02:00
Jonas Maebe
3ef0db2404 LLVM: list supported LLVM/Xcode versions
Use the -i or -il command line parameter
2022-06-04 10:22:19 +02:00
Jonas Maebe
591c1b0177 llvm: added support for newer Xcode toolchains
Based on https://en.wikipedia.org/wiki/Xcode#Xcode_11.x_-_13.x_(since_SwiftUI_framework)_2
2022-06-04 09:43:39 +02:00
florian
a05aa25aad * Risc-V: allow also register aliases in register modification lists after asm blocks, last part to resolve #39738 2022-06-03 22:54:18 +02:00
Jonas Maebe
dcf6063dc3 llvm: version 13.0 support 2022-06-03 21:46:23 +02:00