`
yaojingguo
  • 浏览: 202530 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

GCC/G++'s treatment of missing return statement

阅读更多
gcc will not complain the missing of return statement.

foo.c

int add(int l, int r) {
}
int main(int argc, const char *argv[]) {
  int result = add(1, 2);
  result++;
  return 0;
}

$ gcc foo.c

By add -Wall, gcc gives a warning

$ gcc -Wall foo.c
foo.c: In function ‘add’:
foo.c:2: warning: control reaches end of non-void function

In 6.8.6.4 of C99 standaard, there is the following text:

A return statement with an expression shall not appear in a function whose
return type is void. A return statement without an expression shall only appear
in a function whose return type is void.

So gcc treats this constraint as a warning.

g++ is similar to gcc regarding return statement missing. In 7.3 of The C++
Programming Languge (3rd edition), there is the following text:

A value must be returned from a function that is not declared void (however,
main() is special; see void main §3.2). Conversely, a value cannot be returned
from a void function.

In 6.6.3 of ISO/IEC 14882:2003, there is the following text:

Flowing off the end of a function is equivalent to a return with no value; this
results in undefined behavior in a value-returning function.

http://old.nabble.com/missing-return-statement-td22487507.html is a discussion
about why g++ treats missing return statement in the current way.
0
0
分享到:
评论

相关推荐

    winlibs gcc/g++编译器 mingw64 10.0.0-r4

    但是,在windows环境下使用gcc/g++编译器总会存在这样那样的问题,比如使用cin或者scanf输入中文,输出就变成了乱码等问题,本资源版本是由由WinLibs维护的开源版本winlibs-x86_64-posix-seh-gcc-12.2.0-llvm-15.0.7...

    centos7 gcc/g++离线rpm包

    centos7 gcc/g++离线rpm包

    ubuntu20.04 gcc/g++离线安装deb包及依赖包(全)

    ubuntu20.04 gcc/g++离线安装deb包及依赖包(全) 由于生产环境不联网,安装显卡驱动时需要预先安装gcc/g++, 故这里提供了gcc/g++离线安装包及依赖,安装命令简单:sudo dpkg -i ./*.deb

    自动万能makefile(linux ubuntu gcc/g++)

    名称:自动万能makefile(linux ubuntu gcc/g++) 作者:码客(卢益贵) qq:48092788 时间:2018-5-20 功能: 1、自动以makefile的父目录名为Target文件名称 2、自动搜索源码文件(含子目录) 3、自动搜索...

    Linux gcc/g++ Makefile基础教程.zip

    Linux gcc/g++ Makefile基础教程.zip

    MinGW-gcc/g++ for win32

    注意安装完成要按要求设置环境变量 PATH=C:\ProgramData\msys\mingw\bin;%PATH% 然后就可以在命令行调用gcc/g++命令了

    GCC/G++编译命令选项.pdf

    gcc/g++在执行编译工作的时候,总共需要4步 1.预处理,生成.i 的文件[预处理器cpp] 2.将预处理后的文件不转换成汇编语言,生成文件.s[编译器egcs] 3.有汇编变为目标代码(机器代码)生成.o 的文件[汇编器as] 4.连接目标...

    Android上的gcc/g++编译环境

    基与Linux-ARM版的GCC,现在移植到了安卓。压缩包中有必要的软件和用法,这样就可以在安卓上体验GCC和G++了

    Linux gcc/g++ rpm安装包

    gcc-4.8.5版本的rpm安装包,解压进入目录后运行sudo rpm -Uvh *.rpm --force进行安装(如果安装提示依赖错误,可在命令后再加上--nodeps),安装完成后可通过gcc --version和g++ --version查看版本信息

    gcc编译选项详解 让你轻松掌握gcc/g++

    介绍常用GCC常用编译选项,让你轻松在linux环境下开发程序.

    windows环境 gcc/g++ mingw64.zip

    解压,把bin目录添加到path环境变量即可。这样就能找到gcc.exe, g++.exe

    linux下安装gcc/g++ rpm安装文件与说明

    linxu gcc g++ rpm安装包 gcc安装说明 分两个压缩包,这是第一个

    CentOS配置CC++竞赛环境gcc/g++4.9.2

    CentOS配置C/C++竞赛环境gcc/g++4.9.2 文章目录CentOS配置C/C++竞赛环境gcc/g++4.9.2配置环境测试添加编译选项偷懒的方法 要参加蓝桥杯 C/C++编译环境4.9.2 阿里镜像站搜索到4.9.2版本在devtooset-3中 配置环境 ...

    GCC/G++ 英文版part1

    Unix下著名编译器gcc的Windows版,并附带一个小巧的开发环境。是C/C++都可进行编译的一款软件,不过就是英文版的……

    gcc/g++英文版part2

    Unix下著名编译器gcc的Windows版,并附带一个小巧的开发环境。是C/C++都可进行编译的一款软件,不过就是英文版的……

    linux gcc/g++写的telnet

    linux gcc写的telnet

    mingw gcc/g++_for_windowsX64

    X64下mingw,g++版本4.9,支持c++11、c++14

    mingw64安装包(gcc/g++...)

    使用基本运行时,你可以使用GCC写控制台模式的符合美国标准化组织(ANSI)程序,可以使用微软提供的C运行时(C Runtime)扩展,与基本运行时相结合,就可以有充分的权利既使用CRT(C Runtime)又使用Windows API功能...

    gcc与g++离线安装包

    适合无网环境安装GCC与G++,版本为:4.8.5. 压缩包内置安装脚本:install.sh。运行即可完成安装。 方便快捷有效,可以避免各类依赖的困扰。 ---- 适合无网环境安装GCC与G++,版本为:4.8.5. 压缩包内置安装脚本:...

    GCC常用命令大全详解

    GCC/G++ 常用命令大全 linux GCC/G++ 命令大全 GCC/G++ 常用命令大全 linux GCC/G++ 命令大全

Global site tag (gtag.js) - Google Analytics