> getting the ABI slightly wrong Does this call for something like a validation pass? It would seem appropriate to apply it to SIL and not LLVM IR since it's inter-language ABI specific to Swift frontend.
On Tue, Oct 11, 2016 at 8:17 PM, Daniel Dunbar via swift-dev < swift-dev@swift.org> wrote: > Can you directly pass arguments to the function crossing the ABI boundary, > and can you directly access them on the other side? If so, what you can do > is simply synthesize arguments that cross the full range of the > bit-representation of the argument types, and validate that you see the > same range on the other side. > > I don't know anything about what this interface looks like so I don't have > more specific ideas, but if you can give me a little more context I've > worked on this in the past... > > Technically you can't necessarily compare the LLVM IR, since there are > ways to represent the same ABI call with different #s of IR arguments in > corner cases. > > - Daniel > > > On Oct 11, 2016, at 8:10 PM, Joe Groff via swift-dev < > swift-dev@swift.org> wrote: > > > > I just tracked down a bug due to C++ code in the Swift runtime code > trying to interface with standard library code written in Swift, but > getting the ABI slightly wrong and leading to some nasty hard-to-reproduce > heisenbugs. While I've narrowed down the bug in this specific case, it > seems like this is a potentially continuing source of maintenance bugs, > especially as we try to bring up the Swift calling convention in the coming > year. I'm wondering if there's anything we could do to help validate that > C++ and Swift code in the runtime is correctly interfacing. We could at > least check that we're passing the right number of arguments by comparing > the LLVM IR of the runtime and stdlib, perhaps, though this would have to > be a fuzzy type-level match since Clang and Swift aren't normally going to > agree on the exact pointer types of arguments. > > > > -Joe > > _______________________________________________ > > swift-dev mailing list > > swift-dev@swift.org > > https://lists.swift.org/mailman/listinfo/swift-dev > > _______________________________________________ > swift-dev mailing list > swift-dev@swift.org > https://lists.swift.org/mailman/listinfo/swift-dev >
_______________________________________________ swift-dev mailing list swift-dev@swift.org https://lists.swift.org/mailman/listinfo/swift-dev