首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏蓝天

    严格别名规则“-fstrict-aliasing”和“-fno-strict-aliasing”及类型双关

    “-fstrict-aliasing”表示启用严格别名规则,“-fno-strict-aliasing”表示禁用严格别名规则,当gcc的编译优化参数为“-O2”、“-O3”和“-Os”时,默认会打开 “-fstrict-aliasing”。 下列代码,如果使用“-O2”、“-O3”或“-Os”编译,并且加不“-fno-strict-aliasing”,则“*s”的结果是未定义的,不同的编译器可能产生不同的结果,即使同一编译器也可能运行时结果不尽相同 s); return 0; } 然而,下列用法仍然是不安全的(多版本gcc实测正常,也未有“dereferencing type-punned pointer will break strict-aliasing  m = 0x12345678; short s = ((X*)&m)->s; printf("%x\n", s); return 0; } 如果担心风险,可加上编译参数“-fno-strict-aliasing

    2.2K30发布于 2019-03-14
  • 来自专栏IT技术篇

    gcc 编译参数 -fno-strict-aliasing

    ,先来看看gcc 对-fstrict-aliasing的解释:Allows the compiler to assume the strictest aliasing rules applicable /test_aliasing i=56781234 [huanghaibin33@DevTJ-todo ~/test]$ g++ -O2 test_aliasing.cpp -o test_aliasing /test_aliasing i=12345678 [huanghaibin33@DevTJ-todo ~/test]$ g++ -O2 -fno-strict-aliasing test_aliasing.cpp /test_aliasing_v2 i=56781234 [huanghaibin33@DevTJ-todo ~/test]$ g++ -O2 test_aliasing_v2.cpp -o test_aliasing_v2 /test_aliasing_v2 i=56781234 [huanghaibin33@DevTJ-todo ~/test]$ g++ -O2 -fno-strict-aliasing test_aliasing_v2

    5.8K270发布于 2018-07-17
  • 来自专栏从零开始学自动化测试

    Cypress学习5-table表格元素(别名使用Aliasing)

    页面上有些元素定位路径比较复杂,可以先定位到该元素使用别名,通过这个别名去操作元素,这样看起来简洁一些。

    97910发布于 2020-05-13
  • 来自专栏Flowlet

    GCC -O2 踩坑指南:严格别名(Strict Aliasing)与整数环绕(Integer Wrap-around)

    3、GCC 编译优化选项 GCC -O0, -O1 编译优化选项下开启严格别名(strict aliasing)规则的编译选项为:-fstrict-aliasing。 GCC -O2, -O3, -Os 编译优化选项下,严格别名(strict aliasing)规则默认开启。 4.1.3 开启 -fno-strict-aliasing 编译参数 开启 -fno-strict-aliasing 取消严格别名优化,修改 GCC -O2 导致的严格别名 Bug。 4.1.4 GCC 开启 -O2编译优化,避免严格别名 Bug 的方法 推荐处理顺序为从左到右: 改代码 > -fno-strict-aliasing > 不开 GCC -O2 优化 > -Wno-strict-aliasing 2018 年 Linus Torvalds 就针对 Strict Aliasing 对 GCC 进行了开喷:device property: Get rid of union aliasing 5、整数环绕

    2.7K10编辑于 2024-02-26
  • 来自专栏技术杂记

    memcached基础4

    pthread -Wall -Werror -pedantic -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -fno-strict-aliasing pthread -Wall -Werror -pedantic -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -fno-strict-aliasing pthread -Wall -Werror -pedantic -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -fno-strict-aliasing pthread -Wall -Werror -pedantic -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -fno-strict-aliasing pthread -Wall -Werror -pedantic -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -fno-strict-aliasing

    45010编辑于 2022-06-26
  • 来自专栏图像识别与深度学习

    2018-07-04 Python 常用错误解决方法

      File "/usr/local/lib/python3.5/dist-packages/skimage/transform/_warps.py", line 110     warn("Anti-aliasing will be enabled by default in skimage 0.15 to " UserWarning: Anti-aliasing will be enabled by default in skimage 0.15 to avoid aliasing artifacts when down-sampling images. 【Mask R-CNN】(四):UserWarning: Anti-aliasing will be enabled by default in skimage 0.15的解决办法 sudo pip3

    6.9K20发布于 2019-01-02
  • 来自专栏工程师看海

    看图说话,哪个噪声大?哪个采样率高?

    以下是几个与采样率和噪声相关的方面: Aliasing噪声:当模拟信号的频率超过采样率的一半时,就会出现混叠现象,导致Aliasing噪声。 Aliasing噪声是由于高频成分在离散采样时被错误地表示为低频成分而引起的。 为了避免Aliasing噪声,采样率必须满足奈奎斯特(Nyquist)采样定理,即采样率应至少为被采样信号最高频率的两倍。 模拟滤波器抗混叠能力:为了避免Aliasing噪声,通常在采样之前要使用模拟滤波器来限制输入信号的频率范围。

    58320编辑于 2023-08-09
  • 来自专栏字节流动

    OpenGL 抗锯齿

    抗锯齿 原文 Anti Aliasing 作者 JoeyDeVries 翻译 Django 校对 Geequlim 在你的渲染大冒险中,你可能会遇到模型边缘有锯齿的问题。 下面是一个简单的立方体,它体现了锯齿边的效果: [anti_aliasing_aliasing.png] 也许不是立即可见的,如果你更近的看看立方体的边,你就会发现锯齿了。 如果我们放大就会看到下面的情境: [anti_aliasing_zoomed.png] 这当然不是我们在最终版本的应用里想要的效果。 这个效果,很明显能看到边是由像素所构成的,这种现象叫做走样(Aliasing)。有很多技术能够减少走样,产生更平滑的边缘,这些技术叫做抗锯齿技术(Anti-aliasing,也被称为反走样技术)。 [anti_aliasing_sample_points.png] 左侧的图显示了我们普通决定一个三角形的覆盖范围的方式。

    3.4K20发布于 2021-08-10
  • 来自专栏本立2道生

    ZFNet(2013)及可视化的开端

    通过对AlexNet的特征进行可视化,文章作者发现第2层出现了aliasing。 在数字信号处理中,aliasing是指在采样频率过低时出现的不同信号混淆的现象,作者认为这是第1个卷积层stride过大引起的,为了解决这个问题,可以提高采样频率,所以将stride从4调整为2,与之相应的将 kernel size也缩小(可以认为stride变小了,kernel没有必要看那么大范围了),这样修改前后,特征的变化情况如下图所示,第1层呈现了更多更具区分力的特征,第二2层的特征也更加清晰,没有aliasing 更多关于aliasing的内容,可以参见Nyquist–Shannon sampling theorem和Aliasing。 ? 这就引出了另外一个问题,如何将特征可视化? Understanding Convolutional Networks talk: Visualizing and Understanding Deep Neural Networks by Matt Zeiler Aliasing

    1.2K40发布于 2019-09-23
  • 来自专栏AI小白入门

    flair的使用方法

    yuquanle\anaconda3\envs\python36\lib\site-packages\gensim\utils.py:1197: UserWarning: detected Windows; aliasing chunkize to chunkize_serial warnings.warn("detected Windows; aliasing chunkize to chunkize_serial") yuquanle\anaconda3\envs\python36\lib\site-packages\gensim\utils.py:1197: UserWarning: detected Windows; aliasing chunkize to chunkize_serial warnings.warn("detected Windows; aliasing chunkize to chunkize_serial") chunkize to chunkize_serial warnings.warn("detected Windows; aliasing chunkize to chunkize_serial")

    2.4K20发布于 2019-09-17
  • 来自专栏图像处理与模式识别研究所

    图像抗混叠

    size='+str(im1.shape[1])+'x'+str(im1.shape[0])) im1=rescale(im1,scale=0.5,multichannel=True,anti_aliasing result=rescale(img, scale, multichannel=None, anti_aliasing=True) img表示输入图像 scale表示缩放的倍数 multichannel =None表示插值 anti_aliasing=True表示抗混叠 注意:对于彩色图像,参数multichannel=True表示多通道进行插值。

    1.1K10编辑于 2022-05-28
  • 来自专栏技术杂记

    Snort 基础13

    DNO_NON_ETHER_DECODER -DNORMALIZER -DACTIVE_RESPONSE -g -O2 -DSF_VISIBILITY -fvisibility=hidden -fno-strict-aliasing /libtool --tag=CC --mode=link gcc -g -O2 -DSF_VISIBILITY -fvisibility=hidden -fno-strict-aliasing -Wall -g -O2 -DSF_VISIBILITY -fvisibility=hidden -fno-strict-aliasing -Wall -lpcre -L/usr/lib64 -ldnet lpthread -lpthread -lpthread libtool: link: gcc -g -O2 -DSF_VISIBILITY -fvisibility=hidden -fno-strict-aliasing -Wall -g -O2 -DSF_VISIBILITY -fvisibility=hidden -fno-strict-aliasing -Wall -o u2spewfoo u2spewfoo-u2spewfoo.o

    48620编辑于 2022-05-03
  • 来自专栏Postgresql源码分析

    Postgresql中的C/C++混编(JIT)

    Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing Wimplicit-fallthrough=3 -Wcast-function-type -Wshadow=compatible-local -Wformat-security -fno-strict-aliasing

    52930编辑于 2023-10-13
  • 来自专栏腾讯数据库技术

    一个编译参数引发的血案

    终于我们发现了一个强相关的参数-fstrict-aliasing。 我们来看看官方说明: -fstrict-aliasing  Allow the compiler to assume the strictest aliasing rules applicable to 具体到我们这个例子,以下代码进行了初始化 *(int *)&_tm = 0; 而-fstrict-aliasing参数假定了我们不会进行类型的转换来使用结构体,当编译器发现代码 *(int *)&_tm rules [-Wstrict-aliasing]     *(int *)&_tm = 0; 为什么我们的代码编译的时候却没有报警? 原来,因为代码不规范,编译时有好多告警,当初处理的时候添加了参数-Wno-strict-aliasing,这个参数仅仅是把警告给消除了,并没有取消这个假定条件的优化,正确的做法是使用参数-fno-strict-aliasing

    1K21发布于 2018-12-20
  • 来自专栏Hank’s Blog

    解决Chunkize warning while installing gensim问题

    问题: UserWarning: detected Windows; aliasing chunkize to chunkize_serial warnings.warn("detected Windows ; aliasing chunkize to chunkize_serial") 解决方案: 在import gensim前面加入: import warnings warnings.filterwarnings

    78610发布于 2020-09-16
  • 来自专栏技术栈大杂烩

    Python: 安装lz4-0.10.1痛苦经历

    -fno-common -dynamic -arch x86_64 -arch i386 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv - -fno-common -dynamic -arch x86_64 -arch i386 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv - -fno-common -dynamic -arch x86_64 -arch i386 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv - -fno-common -dynamic -arch x86_64 -arch i386 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv - -fno-common -dynamic -arch x86_64 -arch i386 -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -

    3.8K30发布于 2018-10-22
  • 来自专栏10km的专栏

    cuda8+cuDNN Faster R-CNN安装塈运行demo

    utils x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing nms x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing

    1.7K60发布于 2018-01-03
  • 来自专栏Swoole开源项目

    swoole2.0试用说明

    gcc 4.4下如果在编译swoole的时候(即make阶段),出现gcc warning dereferencing pointer ‘v.327’ does break strict-aliasing rules、dereferencing type-punned pointer will break strict-aliasing rules 请手动编辑Makefile,将CFLAGS = -Wall -pthread -g -O2替换为CFLAGS = -Wall -pthread -g -O2 -fno-strict-aliasing, 然后重新编译make clean

    74730发布于 2020-01-22
  • 来自专栏技术杂记

    Mycat HA(高可用) 与 LB(负载均衡)6

    x86_64 PREFIX=/usr/local/haproxy gcc -Iinclude -Iebtree -Wall -m64 -march=x86-64 -O2 -g -fno-strict-aliasing generic"' \ -DBUILD_CC='"gcc"' \ -DBUILD_CFLAGS='"-m64 -march=x86-64 -O2 -g -fno-strict-aliasing c -o src/haproxy.o src/haproxy.c gcc -Iinclude -Iebtree -Wall -m64 -march=x86-64 -O2 -g -fno-strict-aliasing src/base64.o src/base64.c ... ... gcc -Iinclude -Iebtree -Wall -m64 -march=x86-64 -O2 -g -fno-strict-aliasing

    42430编辑于 2021-12-02
  • 来自专栏技术杂记

    Snort 基础6

    Wwrite-strings -Wsign-compare -Wcast-align -Wextra -Wformat -Wformat-security -Wno-unused-parameter -fno-strict-aliasing Wwrite-strings -Wsign-compare -Wcast-align -Wextra -Wformat -Wformat-security -Wno-unused-parameter -fno-strict-aliasing Wwrite-strings -Wsign-compare -Wcast-align -Wextra -Wformat -Wformat-security -Wno-unused-parameter -fno-strict-aliasing Wwrite-strings -Wsign-compare -Wcast-align -Wextra -Wformat -Wformat-security -Wno-unused-parameter -fno-strict-aliasing Wwrite-strings -Wsign-compare -Wcast-align -Wextra -Wformat -Wformat-security -Wno-unused-parameter -fno-strict-aliasing

    39610编辑于 2022-05-03
领券