AMD64 ABI 中的空类会发生什么情况?

2024-04-17

我正在看AMD64 ABI http://www.cs.tufts.edu/comp/40/readings/amd64-abi.pdf并且它似乎没有指定如何传递空类类型。对于空类成员函数,似乎this照常传递,但对于空类,Clang 生成的代码似乎只是忽略此类。根据 AMD64 ABI,这是否正确?


虽然尚不清楚问题到底是什么,但关于 C++ ABI 是什么,答案非常明确:

对于 C++ ABI,我们将使用 IA-64 C++ ABI 并实例化它 适当地。该 ABI 的当前草案可在以下位置获取:

链接到 Itanium ABI 规范的当前位置 http://mentorembedded.github.io/cxx-abi/abi.html

这说:

空课的通过和普通课没有什么区别。如果 传入寄存器时,不得在所有寄存器上设置 NaT 位 补课。

单字节参数槽的内容未指定,并且 被调用者可能不依赖于任何特定值。在安腾上, 如果参数槽已关联,则不得设置关联的 NaT 位 与寄存器。

另一个提示可以在这里找到:

空类类型的结果将被返回,就好像它是一个 包含单个字符的结构体,即 struct S { char c; };。这 返回寄存器的实际内容未指定。在安腾上, 不得设置关联的 NaT 位。

因此,空类应该被视为包含单个字符的结构,但永远不会使用该单个字符。

当然也有可能是有bugclang关于空班级。虽然我对此表示怀疑,但公平地说。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AMD64 ABI 中的空类会发生什么情况? 的相关文章

随机推荐

  • 将 doxygen 的图表从上到下方向翻转为从左到右

    doxygen 图为 includes and 包含在 创建的嵌套深度从上到下递增 使用 1 8 5 由于我们的图大多是带有许多节点的浅图 这会导致非常宽的图和丑陋的水平滚动条 有没有办法教 doxygen 以从左到右的方向创建这些图 就像
  • 如何读取iPhone设备控制台的内容?

    当设备通过 Xcode 插入我的机器时 我可以读取控制台 我需要构建一种方式来读取控制台 以便测试用户从设备获取控制台输出消息和崩溃报告 然后通过电子邮件对话框向其发送电子邮件 iOS 上是否存在控制台日志和崩溃报告所在的标准文件位置 控制
  • 如何在 Android 模拟器中连接 localhost? [复制]

    这个问题在这里已经有答案了 我在里面做了一个php脚本本地主机我将其与httpClient但我遇到了问题 请告诉我如何连接到 php 文件本地主机从模拟器 Use 10 0 2 2访问您的实际机器 正如您所知 当您使用模拟器时 localh
  • 意外的特质行为

    给定一个简单的代数数据类型Parent scala gt sealed trait Parent defined trait Parent scala gt case object Boy extends Parent defined ob
  • 当我通过列表映射时,React-bootstrap Modal 组件打开/关闭所有模态

    编程新手 所以如果我的措辞不正确 我很抱歉 我使用 map 来渲染和列出数组中的每个项目 对于每个项目 我希望模态仅打开 关闭与数组中每个项目相对应的特定模态 但是 当我单击按钮打开模式时 每个模式都会打开和关闭 我相信这是因为模态全部设置
  • 今天我们可以分享一下 App 类吗 - Widget-Extension

    我正在开发一个应用程序 我必须在 Today Widget Extension 中使用我的一些类 但我没有任何方式访问这些课程 是否可以访问 Today Widget Extension 中的应用程序类 有可能的 首先 您需要将类的目标设置
  • 如何在 Python 中使用 PKCS12 对 RSA 密钥进行编码?

    我正在使用 Python 在 Google App Engine 下 并且我有一些需要以 PKCS 12 格式导出的 RSA 私钥 有什么可以帮助我的吗 我正在使用 PyCrypto KeyCzar 并且我已经弄清楚如何以 PKCS8 格式
  • Mocha 在所有类中的所有测试运行后运行

    所以我正在使用 mocha 并且我有超过 10 个 JS 类的测试 我构建了一个日志变量 该变量在这 10 个类的整个测试运行过程中都有效 现在我想做的是在最后一次测试运行后 我想将此日志写入文件 所以我做的第一件事就是在每堂课上写这样的东
  • VBA getElementById 不适用于按钮

    我正在尝试访问网站 在文本框中键入一个值 然后单击搜索按钮来搜索我的值 我的问题是 我无法获取按钮元素来触发单击事件 VBA Dim i As Long Dim objElement As Object Dim objCollection
  • 如何符合协议变量的设置和获取?

    我正在研究协议以及如何遵守它们 protocol Human var height Int get set struct Boy Human var height Int return 5 error 我正在尝试学习实现 set 和 get
  • Firebase Storage 共享下载网址存在安全风险吗?

    我的 Firebase 存储中保存了一张图像 我想在我发送的多封电子邮件中显示此图像 到目前为止 我已使用从 Firebase 控制台获取的下载 URL 并且图像成功显示 我的问题是 这是分享图像的正确方式吗 安全吗 如果没有 那么我应该如
  • JsonValueProviderFactory 抛出“请求太大”

    我收到一个异常 即 JSON 请求太大而无法反序列化 它来自 JsonValueProviderFactory MVC 应用程序当前有一个使用 Json Net 的自定义模型绑定器 它在反序列化 json 数据时没有问题 但是我假设默认的
  • 什么是 AsyncManager.OutstandingOperations?

    感谢 MSDN 他们没有对此进行任何解释 http msdn microsoft com en us library system web mvc async asyncmanager outstandingoperations v vs
  • 如何使用 JavaSound (Java, Java Sound) 从 .wave 文件读取信息

    您好 我需要从 wave 文件中读取采样率 信号频率和幅度 我怎样才能使用 JavaSound 做到这一点 您可以通过获取句柄来获取采样率AudioFormat object AudioInputStream audioInputStrea
  • Phonegap + jQuery Mobile + 股票/折线图

    我试图找到一个在phonegap应用程序中绘制折线 股票图表的解决方案 我尝试过很多库 amcharts JS highcharts 但没有一个能工作 有人可以帮我完成这项任务吗 欢迎任何解决方案 平台 Android iOS 我有同样的问
  • 通过电子邮件询问评级

    在我的应用程序中 我们将通过向用户发送电子邮件来获取反馈 因此 如果用户填写字段并提交 那么我会将其存储在我的数据库中 我准备了一封 html 邮件 如下所示 但这里的问题是我无法在邮件中显示评级星星 这需要内联 css 但我无法将该 cs
  • AdMob 横幅不适用于移动数据

    我最近开始开发 Android 应用程序 当尝试在我的应用程序中加载横幅时 我在 logcat 中收到以下错误 03 02 17 30 58 509 I Ads 12181 Use AdRequest Builder addTestDevi
  • 给出源时,Django Rest Framework Serializer charfield 不更新

    我有一个带有选择 charfield 的模型字段 class Vehicle models Model name models CharField max length 100 STATUS CHOICES N New U Used P J
  • 如何在 Visual Studio Code 中更新 C# 版本?

    我已经安装了 C 扩展 我的 NET 框架已更新 但我无法修复它 我已经找到了修复方法 希望这对将来的人有所帮助 找你的 csproj file 将 LangVersion 属性更改为所需版本
  • AMD64 ABI 中的空类会发生什么情况?

    我正在看AMD64 ABI http www cs tufts edu comp 40 readings amd64 abi pdf并且它似乎没有指定如何传递空类类型 对于空类成员函数 似乎this照常传递 但对于空类 Clang 生成的代