IAR警告抑制及还原

news2024/11/23 15:12:35

工作中需要临时抑制 警告 Pa084,源代码如下:

sy_errno_t sy_memset_s(void *dest, sy_rsize_t dmax, int value, sy_rsize_t n)
{
    sy_errno_t err;

        if (dest == NULL)
        {
                return SY_ESNULLP;
        }

        if (dmax > SY_RSIZE_MAX_MEM) // 这里报警告 Pa084
        {
                return SY_ESLEMAX;
        }

    if (n == 0) { /* since C11 n=0 is allowed */
        return SY_EOK;
    }

    if (value > 255) {
        return SY_ESLEMAX;
    }

    err = SY_EOK;

    if (n > dmax) {
        err = n > SY_RSIZE_MAX_MEM ? SY_ESLEMAX : SY_ESNOSPC; // 这里报警告 Pa084
        n = dmax;
    }

    sy_mem_prim_set(dest, n, (uint8_t)value);

    return err;
}

查看IAR帮助文档找到如下两处说明:

1.  diag_suppress

 2. diag_warning

 结合两者描述部分的说明可知,diag_suppress用于将指定诊断信息抑制(设置)为warning level以下,diag_warning用于将指定诊断信息改变(提升)为warning level,故代码修改如下:

sy_errno_t sy_memset_s(void *dest, sy_rsize_t dmax, int value, sy_rsize_t n)
{
    sy_errno_t err;

        if (dest == NULL)
        {
                return SY_ESNULLP;
        }

                #pragma diag_suppress=Pa084
        if (dmax > SY_RSIZE_MAX_MEM) // 这里报警告
        {
                return SY_ESLEMAX;
        }
                #pragma diag_warning=Pa084

    if (n == 0) { /* since C11 n=0 is allowed */
        return SY_EOK;
    }

    if (value > 255) {
        return SY_ESLEMAX;
    }

    err = SY_EOK;

    #pragma diag_suppress=Pa084
    if (n > dmax) {
        err = n > SY_RSIZE_MAX_MEM ? SY_ESLEMAX : SY_ESNOSPC; // 这里报警告
        n = dmax;
    }
    #pragma diag_warning=Pa084

    sy_mem_prim_set(dest, n, (uint8_t)value);

    return err;
}

在报警告代码段前后增加 #pragma diag_suppress=Pa084 和 #pragma diag_warning=Pa084,警告抑制,且不会影响其他地方的警告。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/346842.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

「C语言进阶」数据内存的存储

🚀🚀🚀大家觉不错的话,就恳求大家点点关注,点点小爱心,指点指点🚀🚀🚀 目录 🐰数据类型的介绍 🐰类型的意义 🐰数据类型的基本归类…

引入短信服务发送手机验证码进行安全校验

其他方案>引入QQ邮箱发送验证码进行安全校验 相对短信验证码,操作更简单而且免费 最近想给自己的项目在注册时加点安全校验,准备使用免费的邮箱验证来着,在上一篇引入QQ邮箱进行安全校验时,看有朋友说阿里云会送一些短信服务免…

论文阅读 | Video Super-Resolution Transformer

引言:2021年用Transformer实现视频超分VSR的文章,改进了SA并在FFN中加入了光流引导 论文:【here】 代码:【here】 Video Super-Resolution Transformer 引言 视频超分中有一组待超分的图片,因此视频超分也经常被看做…

【网络原理4】TCP特性篇

目录 一、滑动窗口 传统发送接收机制的缺点 滑动窗口的特性 发送方什么时候会接着发送下一条报文 如果在滑动窗口的机制下面发生了丢包会怎样处理 情况1:ack丢了 情况2:主动发送的syn丢包了 滑动窗口的应用场景 二、TCP流量控制:根据接…

大数据下Flink on YarnSession 高可用集群环境部署开辟资源发布任务

前言:搭建大数据环境集群环境算是比较麻烦的一个事情,并且对硬件要求也比较高其中搭建大数据环境需要准备jdk环境和zk环境,还有hdfs,还有ssh之间的免密操作,还有主机别名访问不通的问题 等。必然会出现的问题&#xff…

拆个微波炉,分析一下电路

微波炉是用2450MHz的超高频电磁波来加热食品,它能无损穿越塑料,陶瓷,不能穿越金属,碰到金属会反射,但穿过含水食物,食物内的分子会高速摩擦,产生热量,使食物变熟。在厨房电器中&…

自学180天,我从功能测试进阶到自动化测试了...

大家好,我是彭于晏,一个7年测试工作的老司机。因为我一直在分享自动化测试技术,所以时常会被问到这个问题:“靓仔,功能测试想转自动化测试,请问要怎么入手?” 那么,接下来我就结合自…

不愧是GitHub点赞飙升的Java10W字面经,面面俱到,太全了!

最新的喜报啊,话不多说,先看图!(为了保护朋友的隐私,同时还有我自己的隐私,楼主就都打码了~!) 朋友说到这儿时候我就跟他说,不要只看眼前,要看长远一些&#…

前端开发之防抖与节流

前端开发中我们经常会通过监听某些事件来完成项目需求 1.通过监听 scroll 事件,检测滚动位置,根据滚动位置显示返回顶部按钮 2.通过监听 resize 事件,对某些自适应页面调整DOM的渲染(通过CSS实现的自适应不再此范围内)…

动态库和静态库的区别

什么是库文件 一般来说,一个程序,通常都会包含目标文件和若干个库文件。经过汇编得到的目标文件再经过和库文件的链接,就能构成可执行文件。库文件像是一个代码仓库或代码组件的集合,为目标文件提供可直接使用的变量、函数、类等…

Hadoop3.3.0--Linux编译安装

Hadoop3.3.0–Linux编译安装 基础环境:Centos 7.7 编译环境软件安装目录 mkdir -p /export/server一、Hadoop编译安装(选做) 可以直接使用课程提供已经编译好的安装包。 安装编译相关的依赖 yum install gcc gcc-c make autoconf automake…

leaflet 上传CSV文件,导出geojson格式文件(064)

第064个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中加载CSV文件,将图形显示在地图上。点击导出geojson,下载成geojson文件。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共114行)安装插件…

如何判断是否ChatGPT回答出来的问题?解决方法详解

目录 前言 一、人工智能(“ChatGPT”等)能淘汰人类吗? 二、完全禁止或严格限制使用ChatGPT,是利大于弊还是? 1、ChatGPT与造纸术优点 2、人有悲欢离合,月有阴晴圆缺,此事古难全&#xff01…

Python基础-数据类型之序列

序列:一种数据结构,序列中的每个元素都会被分配到一个序号(元素的位置)。 常用的序列有:列表、元组、字符串。 一、序列的操作: 1:通过索引取值 nums_list [1,2,3,4] print(nums_list[0]) …

消息队列的特点

一、背景:在分布式系统中是如何处理高并发的由于在高并发的环境下,来不及同步处理用户发送的请求,则会导致请求发送阻塞。比如说,大量的insert、update之类的请求同时到达数据库MYSQL,直接导致无数的行锁表锁&#xff…

零基础机器学习做游戏辅助第十一课--原神自动钓鱼(一)

一、序言 前面我们已经学习了神经网络,卷积神经网络和强化学习等内容,也都做了对应的实例。但是我们的课是做游戏辅助,那么肯定要去游戏里实战一番。 今天就带领大家用我们所学的知识对近两年非常火爆的游戏《原神》进行实战。我们以自动钓鱼为例。 二、观察游戏玩法制定方案…

Seata源码学习(五)- Seata服务端(TC)源码解读

Seata源码分析- Seata服务端(TC)源码解读 上节课我们已经分析到了SQL语句最终的执行器,但是再往下分析之前,我们需要先来分析一下TM客户端与TC端通讯以后,TC端的具体操作 服务端表解释 我们的Seata服务端在应用的时…

RabbitMq及其他消息队列

消息队列中间价都有哪些 先进先出 Kafka、Pulsar、RocketMQ、RabbitMQ、NSQ、ActiveMQ 架构 消费推拉模式 客户端消费者获取消息的方式,Kafka和RocketMQ是通过长轮询Pull的方式拉取消息,RabbitMQ、Pulsar、NSQ都是通过Push的方式。 pull类型的消息队…

OpenCV制作Mask图像掩码

一、掩膜(mask) 在有些图像处理的函数中有的参数里面会有mask参数,即此函数支持掩膜操作,首先何为掩膜以及有什么用,如下: 数字图像处理中的掩膜的概念是借鉴于PCB制版的过程,在半导体制造中&am…

PowerShell Install VNC-Server VNC-Viewer

前言 VNCConnect是一款屏幕共享、远程控制电脑软件,可以让您连接到世界上任何地方的远程计算机,实时观看其屏幕,并像坐在它前面一样进行控制。RealVNC可以将人和设备连接到任何地方,实现控制、支持、管理、监控、培训、协作等等。…