Sign in
Sign up
Explore
Enterprise
Education
Search
Help
Terms of use
About Us
Explore
Enterprise
Education
Gitee Premium
Gitee AI
AI teammates
Sign in
Sign up
Fetch the repository succeeded.
Donate
Please sign in before you donate.
Cancel
Sign in
Scan WeChat QR to Pay
Cancel
Complete
Prompt
Switch to Alipay.
OK
Cancel
Watch
Unwatch
Watching
Releases Only
Ignoring
7
Star
2
Fork
21
src-openEuler
/
libtpms
Code
Issues
2
Pull Requests
2
Wiki
Insights
Pipelines
Service
JavaDoc
PHPDoc
Quality Analysis
Jenkins for Gitee
Tencent CloudBase
Tencent Cloud Serverless
悬镜安全
Aliyun SAE
Codeblitz
SBOM
Don’t show this again
40
LLVM平行宇宙:Support for building with clang
Merged
zhoujing:master
src-openEuler:master
zhoujing
create on 2023-10-10 17:18
Clone/Download
HTTPS
SSH
Copy
Email Patch
Diff file
### 问题现象 ```log [ 89s] tpm12/tpm_daa.c:2472:15: error: explicitly assigning value of variable of type 'tpm_state_t *' (aka 'struct tdTPM_STATE *') to itself [-Werror,-Wself-assign] [ 89s] tpm_state = tpm_state; /* not used */ [ 89s] ~~~~~~~~~ ^ ~~~~~~~~~ ``` ### 原因分析 原因是clang 编译器使能了 -Wself-assign,对自我赋值进行警告,导致编译不过。 在libtpms-0.9.5/configure.ac 中可以看到 ```ac AM_CFLAGS="$CFLAGS $COVERAGE_CFLAGS -Wall -Werror -Wreturn-type -Wsign-compare -Wno-self-assign -Wmissing-prototypes" AM_CFLAGS="$AM_CFLAGS" AM_LDFLAGS="$LDFLAGS $COVERAGE_LDFLAGS" ``` AM_CLFLAGS 中已经试图开启`-Wno-self-assign`对 **自我赋值不做检查** 下图可以看出CFLAGS中启用了`-Wall`,且 编译时 AM_CLFLAGS 在CFLAGS 之前,即 **CFLAGS 可能会覆盖 AM_CLFLAGS 的编译选项**   问题是Clang 和gcc 对 -Wno-self-assign -Wall 的处理有差异。 `clang -Wno-self-assign -Wall ` 会对自我赋值做检查,而`gcc -Wno-self-assign -Wall` 不会。如下图:  ### 解决方案 clang 场景下,在CFLAGS 最后添加-Wno-self-assign 保证 -Wall在 -Wno-self-assign 之前。
How to merge Pull Request
git checkout master
git pull https://gitee.com/zj94/libtpms.git master
git push origin master
Comments
23
Commits
1
Files
1
Checks
Code problems
0
Bulk operation
Expand
Collapse
Reviewer
Code Owner
Reviewer
mailofzxf
mailofzxf
robertosassu
robertosassu
gwei3
gwei3
wucaijun
wucaijun2001
zhujianwei001
zhujianwei001
yezengruan
yezengruan
No Setting
Min number
0
Tester
mailofzxf
mailofzxf
robertosassu
robertosassu
gwei3
gwei3
wucaijun
wucaijun2001
zhujianwei001
zhujianwei001
yezengruan
yezengruan
No Setting
Min number
0
Priority
Not specified
Serious
Main
Secondary
Unimportant
Label
openeuler-cla/yes
lgtm
approved
ci_successful
sig/sig-security-fac
Link Issue
No link issue
Successfully merged pull requests will close issues
Milestone
No related milestones
Participators
(4)
1
https://gitee.com/src-openeuler/libtpms.git
[email protected]
:src-openeuler/libtpms.git
src-openeuler
libtpms
libtpms
Going to Help Center
Search
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
Repository Report
Back to the top
Login prompt
This operation requires login to the code cloud account. Please log in before operating.
Go to login
No account. Register