AdLint 1.10.0 User's Guide


Next: , Up: (dir)

Overview

AdLint is

AdLint is an open source and free source code static analyzer.

It can point out insecure or nonportable code fragments, and can measure various quality metrics of the source code.

For a part of utilization examples, see screenshots.

It (currently) can analyze source code compliant with ANSI C89 / ISO C90 and partly ISO C99.

AdLint is written in Ruby. So, it is available for Windows, Mac OS X, GNU/Linux, FreeBSD and any other platforms supported by Ruby.

License

Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.

AdLint is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

AdLint is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with AdLint. If not, see <http://www.gnu.org/licenses/>.

Index


Next: , Previous: Top, Up: Top

1 Installation


Next: , Up: Installation

1.1 Operation requirements

AdLint requires installation of Ruby version 1.9.3-p0 or later.

And it recommended to install GNU Make version 3 or later to enable to auto analyze by using the GNUmakefile which created by adlintize command.


Next: , Previous: Requirements, Up: Installation

1.2 Hardware environment

For the recommended hardware environment, it can't be completely defined because it depends on the size of software. The following is the test environment of AdLint and the analysis time.

1.2.1 MS Windows

1.2.2 GNU/Linux


Next: , Previous: Hardware Environment, Up: Installation

1.3 Installation instructions for MS Windows environment

1.3.1 Install Ruby

Get the RubyInstaller for Windows 1.9.3-p0 or later from the download page.

Execute RubyInstaller and install ruby with the instructions in the installer.

1.3.2 Install DEVELOPMENT KIT (DevKit)

Recommend to install DEVELOPMENT KIT (DevKit) including GNU Make.

Get the DEVELOPMENT KIT (DevKit) from download page distributed in RubyInstaller for Windows

When user execute the DevKit-*.exe ,DEVELOPMENT KIT will expand to the specified directory.

1.3.3 Set PATH environment variable

Append the following path to PATH environment variable : bin of Ruby directory where Install ruby, bin mingw\bin of DevKit directory where Install DEVELOPMENT KIT (DevKit)

1.3.4 Install AdLint

Start command prompt, and download and install the latest AdLint by the following command.

> gem install adlint

If you have to use HTTP proxy, set --http-proxy http://user name:password@proxy host:port number to gem command as follows.

> gem install adlint --http-proxy http://user:passwd@proxy:3128


Next: , Previous: Install on Windows, Up: Installation

1.4 Installation instructions on Unix environment

Install Ruby interpreter by following Download Ruby.

And download and install the latest version of AdLint.

% gem install adlint
or
% sudo gem install adlint

If you have to use HTTP proxy, set --http-proxy http://user name:password@proxy host:port number to gem command.


Previous: Install on Unix, Up: Installation

1.5 Evaluation test and trial use AdLint

AdLint provided with small sample C language projects. Evaluation test can be execute with intro_demo project by the following procedure.

Copy intro_demo project to user's workspace.

% cp -r `adlint --prefix`/share/demo/intro_demo .

Generate the setting file for static analysis by adlintize command

% cd intro_demo
% adlintize

The following files will be generated.

If GNU Make version 3 or later installed, it can analyze by the following commands.

% make verbose-all
adlint --verbose -t adlint_traits.yml -o . intro_demo.c
                  intro_demo.c [fin] |============================| 0.401s
                    intro_demo [fin] |============================| 0.029s
  1.125s user, 0.765s system, 00:00:01.89 total

If GNU Make doesn't installed, use adlint command directly as follows.

% adlint -v -t adlint_traits.yml -l adlint_files.txt
                  intro_demo.c [fin] |============================| 0.401s
                    intro_demo [fin] |============================| 0.029s
  1.125s user, 0.765s system, 00:00:01.89 total

When the analysis process is finished with no errors, the following file will be generated.

The body of intro_demo.c.msg.csv ,"doesn't reach the control " "divided by zero ".


Next: , Previous: Installation, Up: Top

2 Sample session


Next: , Up: Sample Session

2.1 Analyze GNU Screen

2.1.1 Preparation for project

Download ftp://ftp.gnu.org/gnu/screen/screen-4.0.3.tar.gz, unpack the appropriate directory.

% wget ftp://ftp.gnu.org/gnu/screen/screen-4.0.3.tar.gz
Length: 840602 (821K) [application/x-tar]
Saving to: `screen-4.0.3.tar.gz'

100%[======================================>] 840,602     --.-K/s   in 0.1s

2011-09-28 11:41:55 (6.18 MB/s) - `screen-4.0.3.tar.gz' saved [840602/840602]

% tar xzf screen-4.0.3.tar.gz
% ls -F
screen-4.0.3/   screen-4.0.3.tar.gz

2.1.2 Investigate project

Confirm how to build in analysis runtime environment by building GNU Screen.

% cd screen-4.0.3
% ./configure
this is screen version 4.0.3
checking for prefix by checking for screen... /usr/bin/screen
checking for gcc... gcc
checking for C compiler default output... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
...snip...
configure: creating ./config.status
config.status: creating Makefile
config.status: creating doc/Makefile
config.status: creating config.h
config.status: executing default commands

Now please check the pathnames in the Makefile and in the user
configuration section in config.h.
Then type 'make' to make screen. Good luck.

% make 2>&1 | tee make.log
CPP="gcc -E " srcdir=. sh ./osdef.sh
AWK=gawk CC="gcc -g -O2" srcdir=. sh ./comm.sh
AWK=gawk srcdir=. sh ./term.sh
gcc -c -I. -I.    -g -O2 screen.c
gcc -c -I. -I.    -g -O2 ansi.c
gcc -c -I. -I.    -g -O2 fileio.c
gcc -c -I. -I.    -g -O2 mark.c
gcc -c -I. -I.    -g -O2 misc.c
gcc -c -I. -I.    -g -O2 resize.c
gcc -c -I. -I.    -g -O2 socket.c
gcc -c -I. -I.    -g -O2 search.c
sh ./tty.sh tty.c
gcc -c -I. -I.    -g -O2 tty.c
gcc -c -I. -I.    -g -O2 term.c
gcc -c -I. -I.    -g -O2 window.c
gcc -c -I. -I.    -g -O2 utmp.c
gcc -c -I. -I.    -g -O2 loadav.c
gcc -c -I. -I.    -g -O2 putenv.c
gcc -c -I. -I.    -g -O2 help.c
gcc -c -I. -I.    -g -O2 termcap.c
gcc -c -I. -I.    -g -O2 input.c
gcc -c -I. -I.    -g -O2 attacher.c
gcc -c -I. -I.    -g -O2 pty.c
gcc -c -I. -I.    -g -O2 process.c
gcc -c -I. -I.    -g -O2 display.c
gcc -c -I. -I.    -g -O2 comm.c
gcc -c -I. -I.    -g -O2 kmapdef.c
gcc -c -I. -I.    -g -O2 acls.c
gcc -c -I. -I.    -g -O2 braille.c
gcc -c -I. -I.    -g -O2 braille_tsi.c
gcc -c -I. -I.    -g -O2 logfile.c
gcc -c -I. -I.    -g -O2 layer.c
gcc -c -I. -I.    -g -O2 sched.c
gcc -c -I. -I.    -g -O2 teln.c
gcc -c -I. -I.    -g -O2 nethack.c
gcc -c -I. -I.    -g -O2 encoding.c
gcc  -o screen screen.o ansi.o fileio.o mark.o misc.o resize.o socket.o
search.o tty.o term.o window.o utmp.o loadav.o putenv.o help.o termcap.o
input.o attacher.o pty.o process.o display.o comm.o kmapdef.o acls.o braille.o
braille_tsi.o logfile.o layer.o sched.o teln.o nethack.o encoding.o -lcurses
-lcrypt

2.1.3 Preparation static analysis

Generate the file template of static analysis by using adlintize command. Edit setting file depending on the analyzed project.

Investigate computer environment, compiler environment of project build.

% uname -mo
i686 GNU/Linux
% gcc --version
gcc (GCC) 4.5.1 20100924 (Red Hat 4.5.1-4)
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Shows the preset build environment which supports adlintize command. Select near the build environment. In this session, GCC 4.5.1 on GNU/Linux i686 architecture is using.So select i686-linux-gcc_4.5.1 .

% adlintize -L
i686-linux-gcc_4.5.1
i686-cygwin-gcc_4.3.4
i686-mingw-gcc_4.5.2

Generate file template which required static analysis by using adlintize command.

% adlintize -e i686-linux-gcc_4.5.1 -o adlint
% cd adlint
% ls
GNUmakefile     adlint_all.sh   adlint_files.txt  adlint_traits.yml
adlint_all.bat  adlint_cinit.h  adlint_pinit.h

Compare make.log file which generated at Project investigation and SOURCES list in GNUmakefile which generated by adlintize, edit equally.

% cp GNUmakefile GNUmakefile.orig
% vi GNUmakefile
% diff -u GNUmakefile.orig GNUmakefile
--- GNUmakefile.orig    2011-09-28 13:36:24.328078206 +0900
+++ GNUmakefile 2011-09-28 13:36:37.573902006 +0900
@@ -29,8 +29,6 @@
   putenv.c \
   fileio.c \
   kmapdef.c \
-  terminfo/checktc.c \
-  terminfo/tetris.c \
   search.c \
   input.c \
   ansi.c \

Then find project specific include path from make.log file which generated project investigation. Edit the path to adlint_traits.yml.

% cp adlint_traits.yml adlint_traits.yml.orig
% vi adlint_traits.yml
% diff -u adlint_traits.yml.orig adlint_traits.yml
--- adlint_traits.yml.orig      2011-09-28 13:40:10.748222288 +0900
+++ adlint_traits.yml   2011-09-28 13:40:24.105054386 +0900
@@ -25,6 +25,7 @@
   #     - "../include/bar"
   #     - "/opt/baz/include"
   include_path:
+    - ".."

   # Pathname of the project specific initial header file.
   # This header file is automatically included above the first line of the

2.1.4 Execute the static analysis

Execute static analysis by using GNUmakefile which generated Preparation static analysis.

% make --version
GNU Make 3.82
Built for i386-redhat-linux-gnu
Copyright (C) 2010  Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

% make verbose-all
adlint --verbose -t adlint_traits.yml -o . ../braille.c ../acls.c ../putenv.c
../fileio.c ../kmapdef.c ../search.c ../input.c ../ansi.c ../pty.c ../layer.c
../termcap.c ../loadav.c ../comm.c ../screen.c ../term.c ../teln.c ../socket.c
../encoding.c ../utmp.c ../logfile.c ../display.c ../misc.c ../attacher.c
../help.c ../tty.c ../nethack.c ../braille_tsi.c ../sched.c ../process.c
../window.c ../mark.c ../resize.c
                  ../braille.c [fin] |============================| 7.999s
                     ../acls.c [fin] |============================| 12.152s
                   ../putenv.c [fin] |============================| 0.203s
                   ../fileio.c [fin] |============================| 13.013s
...snip...
                   ../window.c [fin] |============================| 22.388s
                     ../mark.c [fin] |============================| 14.827s
                   ../resize.c [fin] |============================| 18.964s
                  screen-4.0.3 [fin] |============================| 58.346s
  771.510s user, 2.370s system, 00:12:53.87 total

% ls *.{i,msg.csv,met.csv,log}
acls.c.log             kmapdef.c.log      sched.c.log
acls.c.met.csv         kmapdef.c.met.csv  sched.c.met.csv
acls.c.msg.csv         kmapdef.c.msg.csv  sched.c.msg.csv
acls.i                 kmapdef.i          sched.i
ansi.c.log             layer.c.log        screen-4.0.3.log
ansi.c.met.csv         layer.c.met.csv    screen-4.0.3.met.csv
ansi.c.msg.csv         layer.c.msg.csv    screen-4.0.3.msg.csv
...snip...
input.c.log            resize.c.log       window.c.met.csv
input.c.met.csv        resize.c.met.csv   window.c.msg.csv
input.c.msg.csv        resize.c.msg.csv   window.i
input.i                resize.i


Previous: Analyzing Screen, Up: Sample Session

2.2 Distributed parallel analysis with distmake


Next: , Previous: Sample Session, Up: Top

3 Command specification


Next: , Up: Command

3.1 adlintize command

3.1.1 Function

Generate the following files which required static analysis by AdLint.

When it run a adlintize command, all *.c files under the directory will set to SOURCES variable in GNUmakefile.

3.1.2 How to use

When it run a adlintize command at the root directory of analyzed project, generate required files for static analysis to adlint directory.

% cd project-root
% adlintize -o adlint
% ls adlint
GNUmakefile     adlint_all.sh   adlint_files.txt  adlint_traits.yml
adlint_all.bat  adlint_cinit.h  adlint_pinit.h

adlintize command provides some preset build environment. To specify the preset build environment, more information can set automatically to the file templates.

-L option shows the list of preset build environment.

% adlintize -L
i686-linux-gcc_4.5.1
i686-cygwin-gcc_4.3.4
i686-mingw-gcc_4.5.2

-e option can set the preset build environment.

% cd project-root
% adlintize -e i686-linux-gcc_4.5.1 -o adlint
% ls adlint
GNUmakefile     adlint_all.sh   adlint_files.txt  adlint_traits.yml
adlint_all.bat  adlint_cinit.h  adlint_pinit.h

3.1.3 Help message

Usage: adlintize [options] [project-name]
Options:
  -t FILE, --traits FILE         Write traits to FILE
                                 If omitted, `adlint_traits.yml' will be used
  -p FILE, --pinit-header FILE   Write project initial header to FILE
                                 If omitted, `adlint_pinit.h' will be used
  -c FILE, --cinit-header FILE   Write compiler initial header to FILE
                                 If omitted, `adlint_cinit.h' will be used
  -l FILE, --list-file FILE      Write list file to FILE
                                 If omitted, `adlint_files.txt' will be used
  -m FILE, --makefile FILE       Write analysis procedure GNUmakefile to FILE
                                 If omitted, `GNUmakefile' will be used
  -s FILE, --sh-script FILE      Write analysis procedure sh script to FILE
                                 If omitted, `adlint_all.sh' will be used
  -b FILE, --bat-file FILE       Write analysis procedure bat file to FILE
                                 If omitted, `adlint_all.bat' will be used
  -o DIR, --output-dir DIR       Set output directory
                                 If omitted, `.' will be used
  -e ENV, --environment ENV      Assume ENV as target build environment
  -L, --list-environment         List all preset build environments
  -f, --force                    Force to overwrite existing files
      --version                  Display version information
      --copyright                Display copyright information
      --prefix                   Display prefix directory of AdLint
  -h, --help                     Display this message


Next: , Previous: AdLintize Command, Up: Command

3.2 adlint command

3.2.1 Function

Run both single module analysis ( correspond to the compile phase ) and cross module analysis ( correspond to the link phase ) at once.

It supports the following method to specify the analyzed source code : from command line and set to the list file.

Its activity is same as the following steps. Run a single module analysis by using adlint_sma command with specify all analyzed source file. Then run a cross module analysis by using adlint_cma.

The result of single module analysis, the following files will be generated for each source files.

The result of cross module analysis, the following files will be generated.

3.2.2 How to use

When it run a adlint command as follows at the directory which generated the template of setting files by adlintize, run a single module analysis and cross module analysis at once.

% cd project-root
% adlintize -o adlint
% cd adlint
% adlint -v -t adlint_traits.yml -o . -p 1 -l adlint_files.txt
               ../intro_demo.c [fin] |============================| 0.134s
                    intro_demo [fin] |============================| 0.012s
  0.718s user, 0.500s system, 00:00:01.21 total

When it collaborate with text editor or integrated development environment, the message can output to stderr without display the progress by not specifying the -v,--verbose option.

% adlint -t adlint_traits.yml -o . -p 1 -l adlint_files.txt
../intro_demo.c:6:9:warning:W0492:The same identifier name `i' is also used in the member of structure/union, label, tag or normal identifier.
../intro_demo.c:12:13:warning:W0027:Comparison operation is being made by pointer variable.
../intro_demo.c:16:14:warning:W0422:Indirect reference is being made to the pointer which its value might be NULL.
../intro_demo.c:31:13:warning:W0613:The value of this control expression is always false.
...snip...
../intro_demo.c:55:9:warning:W9001:This statement doesn't reach the control.
../intro_demo.c:2:1:warning:W0071:Included "../useless_header.h" is not referenced in the translation unit. It can be removed.
../intro_demo.c:61:19:warning:W0628:A function `int bar(void)' is defined, but this is not used in this project.

3.2.3 Help message

Usage: adlint [options] [source-file...]
Options:
  -t FILE, --traits FILE         Use FILE as traits file (mandatory)
  -l FILE, --list-file FILE      Use FILE as list file
  -o DIR, --output-dir DIR       Output result files to DIR
  -p NUM, --strip NUM            Use source file names from which stripped NUM
                                 leading components as the base name of output
                                 files
  -v, --verbose                  Increase verbosity but suppress message output
      --version                  Display version information
      --copyright                Display copyright information
      --prefix                   Display prefix directory of AdLint
  -h, --help                     Display this message


Next: , Previous: AdLint Command, Up: Command

3.3 adlint_sma command

3.3.1 Function

Execute only single module analysis (correspond to the compile phase) which specified by command line.
For the result of single module analysis, generate the following files for each source file.

3.3.2 How to use

When it run a adlint_sma command as follows at the directory which generated the template of setting files by adlintize, run only single module analysis.

% adlint_sma -v -t adlint_traits.yml -o . -p 1 ../intro_demo.c
               ../intro_demo.c [fin] |============================| 0.134s
  1.062s user, 0.843s system, 00:00:01.90 total

When it collaborate with text editor or integrated development environment, the message can output to stderr without display the progress by not specifying the -v,--verbose option.

% adlint_sma -t adlint_traits.yml -o . -p 1 ../intro_demo.c
../intro_demo.c:6:9:warning:W0492:The same identifier name `i' is also used in the member of structure/union, label, tag or normal identifier.
../intro_demo.c:12:13:warning:W0027:Comparison operation is being made by pointer variable.
../intro_demo.c:16:14:warning:W0422:Indirect reference is being made to the pointer which its value might be NULL.
../intro_demo.c:31:13:warning:W0613:The value of this control expression is always false.
...snip...
../intro_demo.c:55:9:warning:W9001:This statement doesn't reach the control.
../intro_demo.c:2:1:warning:W0071:Included "../useless_header.h" is not referenced in the translation unit. It can be removed.
../intro_demo.c:61:19:warning:W0628:A function `int bar(void)' is defined, but this is not used in this project.

3.3.3 Help message

Usage: adlint_sma [options] source-file...
Options:
  -t FILE, --traits FILE         Use FILE as traits file (mandatory)
  -o DIR, --output-dir DIR       Output result files to DIR
  -p NUM, --strip NUM            Use source file names from which stripped NUM
                                 leading components as the base name of output
                                 files
  -v, --verbose                  Increase verbosity but suppress message output
      --version                  Display version information
      --copyright                Display copyright information
      --prefix                   Display prefix directory of AdLint
  -h, --help                     Display this message


Next: , Previous: AdLint SMA Command, Up: Command

3.4 adlint_cma command

3.4.1 Function

Execute only cross module analysis (correspond to the link phase) which specified by command line.
For the result of cross module analysis, generate the following files.

3.4.2 How to use

When it run a adlint_cma command as follows after finished the single module analysis by adlint_sma command at the directory which generated the template of setting files by adlintize, run only cross module analysis.

% ls *.c.met.csv
intro_demo.c.met.csv
% adlint_cma -v -t adlint_traits.yml -o . intro_demo.c.met.csv
                    intro_demo [fin] |============================| 0.011s
  1.203s user, 0.843s system, 00:00:02.04 total

When it collaborate with text editor or integrated development environment, the message can output to stderr without display the progress by not specifying the -v,--verbose option.

% adlint_cma -t adlint_traits.yml -o . intro_demo.c.met.csv
../intro_demo.c:61:19:warning:W0628:A function `int bar(void)' is defined, but this is not used in this project.

3.4.3 Help message

Usage: adlint_cma [options] sma-metric-file...
Options:
  -t FILE, --traits FILE         Use FILE as traits file (mandatory)
  -o DIR, --output-dir DIR       Output result files to DIR
  -v, --verbose                  Increase verbosity but suppress message output
      --version                  Display version information
      --copyright                Display copyright information
      --prefix                   Display prefix directory of AdLint
  -h, --help                     Display this message


Previous: AdLint CMA Command, Up: Command

3.5 adlint_chk command

3.5.1 Function

It can validate the body of traits file by execute only preprocessing to analyzed source file which set by command line.

3.5.2 How to use

Create the template of setting file by adlintize, and edit the traits file. Then run a adlint_chk command as follows. It can validate the body of traits file by execute preprocessing.

% adlint_chk -v -t adlint_traits.yml -o . -p 1 ../intro_demo.c
               ../intro_demo.c [fin] |============================| 0.047s
  0.812s user, 0.875s system, 00:00:01.68 total

If the include path of header file doesn't set properly,the error occurs as follows. It can check which header file doesn't included by referring the *.c.msg.csv file which correspond to the source file.

% adlint_chk -v -t adlint_traits.yml -o . -p 1 ../intro_demo.c
               ../intro_demo.c [cpp] |=======                     | 0.006s!
An error was occurred while processing `../intro_demo.c'.
See `intro_demo.c.msg.csv' and `intro_demo.c.log' for more details.

% tail intro_demo.c.msg.csv
E,../intro_demo.c,1,1,E0009,A header file of <stdio.h> doesn't found.
X,../intro_demo.c,1,1,X0003,Analysis processing has been stopped due to unrecoverable error. For the details, refer to `intro_demo.c.msg.csv' and `intro_demo.c.log'.

3.5.3 Help message

Usage: adlint_chk [options] source-file...
Options:
  -t FILE, --traits FILE         Use FILE as traits file (mandatory)
  -o DIR, --output-dir DIR       Output result files to DIR
  -p NUM, --strip NUM            Use source file names from which stripped NUM
                                 leading components as the base name of output
                                 files
  -v, --verbose                  Increase verbosity but suppress message output
      --version                  Display version information
      --copyright                Display copyright information
      --prefix                   Display prefix directory of AdLint
  -h, --help                     Display this message


Next: , Previous: Command, Up: Top

4 Input specification


Next: , Up: Input

4.1 Input files

Analysis action can set the following two kind of files.

traits file
Describe how to process the analysis. Edit by YAML style.
Message definition file
Describe the message catalog.Edit by YAML style.

Traits file sets the path by the command option --traits of adlint , adlint_sma , adlint_cma.

Message definition file is installed in etc/mesg.d at AdLint install path. adlint , adlint_sma , adlint_cma command selects the appropriate the message definition file by following the language which specified in language of message traits.


Next: , Previous: Input Files, Up: Input

4.2 Traits file

Describe Project Traits , Compiler Traits , Linker Traits , Message Traits to a single YAML format setting file ( sample ).

When it run a adlintize command at the root directory of analyzed project, generate the template of traits file for the project, GNUmakefile and shell script.

% cd project
% adlintize -o adlint
% ls adlint
GNUmakefile     adlint_all.sh   adlint_files.txt  adlint_traits.yml
adlint_all.bat  adlint_cinit.h  adlint_pinit.h


Next: , Up: Traits

4.2.1 Project Traits

Project Traits can set under the project_traits in traits file.

No. Items Styles Contents
1 project_name string Set project name.
2 include_path array of string Set project specific include path.
3 initial_header string Set the header files which is included at the top of specified source files. For example, project specific macro definition will be described in this file.


4 coding_style:indent_style string Indent style which is a convention governing the identation of blocks. Select from "K&R", "Allman" and "GNU".

"K&R" style is

     int foo(int i)
     {
         if (i == 0) {
             return 0;
         }
         return i;
     }

"Allman" style is

     int foo(int i)
     {
         if (i == 0)
         {
             return 0;
         }
         return i;
     }

"GNU" style is

     int
     foo(int i)
     {
       if (i == 0)
         {
           return 0;
         }
       return i;
     }


5 coding_style:tab_width integer value Set the appearance number of digits of tab character
6 coding_style:indent_width integer value Set the appearance number of digits of indent
7 file_encoding string Set the character encoding. If the value is not set, process as "ASCII-8BIT".


Next: , Previous: Project Traits, Up: Traits

4.2.2 Compiler Traits

Compiler Traits can set under the compiler_traits in traits file.

No. Items Styles Contents
1 initial_header string Set the header files which is included at the top of specified source files and automatically included before project specific initial_header. This file describes compiler specific macro, type definition and others.
2 standard_type:char_size integer value Set the size of char type family by bit quantities.
3 standard_type:char_alignment integer value Set the memory alignment of char type family by bit quantities.
4 standard_type:short_size integer value Set the size of short type family by bit quantities.
5 standard_type:short_alignment integer value Set the memory alignment of short family by bit quantities.
6 standard_type:int_size integer value Set the size of int type family by bit quantities.
7 standard_type:int_alignment integer value Set the memory alignment of int type family by bit quantities.
8 standard_type:long_size integer value Set the size of long int type family by bit quantities.
9 standard_type:long_alignment integer value Set the memory alignment of long int type family by bit quantities.
10 standard_type:long_long_size integer value Set the size of long long int type family by bit quantities.
11 standard_type:long_long_alignment integer value Set the memory alignment of long long int type family by bit quantities.
12 standard_type:float_size integer value Set the size of float type family by bit quantities.
13 standard_type:float_alignment integer value Set the memory alignment of float type family by bit quantities.
14 standard_type:double_size integer value Set the size of double type family by bit quantities.
15 standard_type:double_alignment integer value Set the memory alignment of double type family by bit quantities.
16 standard_type:long_double_size integer value Set the size of long double type family by bit quantities.
17 standard_type:long_double_alignment integer value Set the memory alignment of long double type family by bit quantities.
18 standard_type:code_ptr_size integer value Set the size of function pointer by bit quantities.
19 standard_type:code_ptr_alignment integer value Set the memory alignment of function pointer by bit quantities.
20 standard_type:data_ptr_size integer value Set the size of data pointer by bit quantities.
21 standard_type:data_ptr_alignment integer value Set the memory alignment of data pointer by bit quantities.
22 standard_type:char_as_unsigned_char boolean value If `char' type treat as `unsigned char', set true.
23 include_path array of string Set the compiler specific include path.
24 arithmetic:logical_right_shift boolean value If right shift expression `>>' treat as logical shift instead of arithmetic shift, set true.
25 extension_substitution map of string Set the token replacement pattern to adjust compiler specific extension. AdLint puts the warning message W0061 all uses of this extension. If `__attribute__ ( arbitrary token row )' delete after pre-process and puts the warning W0061, set as follows.
     extension_substitution:
       "__attribute__(__adlint__any)": ""

And if the token `__restrict' replaces `restrict' and put the warning W0061, set as follows.

     extension_substitution:
       "__restrict": "restrict"


26 arbitrary_substitution map of string Same as extension_substitution, replace the token after pre-process, the difference is doesn't put the warning W0061.
27 identifier_max integer value Set the maximum number of length which compiler can identifier.


Next: , Previous: Compiler Traits, Up: Traits

4.2.3 Linker Traits

Linker Traits sets under linker_traits items.

No. Items Styles Contents
1 identifier_max integer value Set the maximum number of length which linker can identifier.
2 identifier_ignore_case boolean value Set whether check case sensitive by linker when identifier external symbol.


Previous: Linker Traits, Up: Traits

4.2.4 Message Traits

Message Traits can set under the message_traits in traits file. .

No. Items Styles Contents
1 language string Set the language of message body.(Currently) it available "en_US" or "ja_JP".
2 change_list Message ID and map of string Set if body of specific message will change.


Previous: Traits, Up: Input

4.3 Message Definition file.

Describe all error and warning message to setting file by format. Normally this file doesn't edit directly. If it need to change the message body, set the changes to change_list in traits file.


Next: , Previous: Input, Up: Top

5 Output specification


Next: , Up: Output

5.1 Output files

Print the result of single module analysis to the following four different files.

No. Name File name Contents
1 Preprocessed source <source file name except the extension>.i The line beginning with # is line marker.
2 metrics file <source file name>.met.csv Print the metrics and the code information by CSV format.
3 message file <source file name>.msg.csv Print the error and the warning message by CSV format.
4 Log file <source file name>.log Print the log of single module analysis.

Print the result of cross module analysis to the following three different files.

No. Name File name Contents
1 metrics file <project name>.met.csv Print the metrics information by CSV format.
2 message file <project name>.msg.csv Print the warning message by CSV format.
3 Log file <project name>.log Print the log of cross module analysis.


Next: , Previous: Output Files, Up: Output

5.2 Common definition

     version_number
       : major_version '.' minor_version '.' patch_level
     
     major_version : integer value
     
     minor_version : integer value
     
     patch_level : integer value
     
     exec_timestamp : Year '-' Month '-' Day ' ' Hour ':' Minute ':' Second ':' Time zone
     
     exec_working_directory : Full path name of run the analysis.
     
     new_line : line feed string depends on runtime environment.
     
     file_path : file path name depends on runtime environment.
     
     line_no : integer value
     
     lines : integer value
     
     column_no : integer value
     
     location : file_path ',' line_no ',' column_no
     
     function_identifier
       : function_name ',' function_signature
     
     function_name : c_identifier
     
     function_signature : c_declaration_specifiers c_declarator
     
     function_linkage_type
       : 'I'  <- Internal
       | 'X'  <- eXternal
     
     function_scope_type
       : 'F'  <- File
       | 'B'  <- Block
     
     type_name : c_identifier
     
     type_rep : c_declaration
     
     variable_name : c_identifier
     
     initializer_rep : c_initializer
     
     assignment_rep : c_assignment_operator c_assignment_expression
     
     macro_name : c_identifier
     
     macro_value
       :
       | pp_tokens
     
     pp_tokens : c_pp_tokens
     
     message_id
       : 'W' [0-9]{4}
       | 'E' [0-9]{4}
       | 'C' [0-9]{4}
     
     message_text : any string


Next: , Previous: Common, Up: Output

5.3 metrics file

5.3.1 Version records

     metrics_version_record
       : metrics_version_head ',' version_number ',' exec_timestamp ',' exec_working_directory
     
     metrics_version_head : "VER"

• Output example

     VER,0.6.4,2012-02-16 14:10:59 +0900,/home/yanoh/intro_demo

5.3.2 Declaration records

     declaration_record
       : declaration_head ',' location ',' typedcl_record_body
       | declaration_head ',' location ',' gvardcl_record_body
       | declaration_head ',' location ',' funcdcl_record_body
     
     declaration_head : "DCL"

• Type definition records

     typedcl_record_body
       : 'T' ',' typedcl_type ',' type_name ',' type_rep
     
     typedcl_type
       : 'T'  <- typedef
       | 'S'  <- struct
       | 'U'  <- union
       | 'E'  <- enum

• Global variable declaration Record

     gvardcl_record_body
       : 'V' ',' variable_name ',' type_rep

• Function declaration record

     funcdcl_record_body
       : 'F' ',' function_linkage_type ',' function_scope_type ',' function_identifier

• Output example

 1: typedef int *int_ptr;
 2:
 3: struct Foo {
 4:     int i;
 5:     long l;
 6: };
 7:
 8: union Bar {
 9:     int i;
10:     char c;
11: };
12:
13: enum Color {
14:     RED = 1,
15:     GREEN,
16:     BLUE
17: };
18:
19: extern int global_1;
20:
21: extern int foo(long);
     DCL,test.c,1,14,T,T,int_ptr,int *
     DCL,test.c,3,8,T,S,Foo,struct Foo { int i; long l; }
     DCL,test.c,8,7,T,U,Bar,union Bar { int i; char c; }
     DCL,test.c,13,6,T,E,Color,"enum Color { RED = 1, GREEN, BLUE }"
     DCL,test.c,19,12,V,global_1,int
     DCL,test.c,21,12,F,X,F,foo,int foo(long)

5.3.3 Declaration records

     definition_record
       : definition_head ',' location ',' vardef_record_body
       | definition_head ',' location ',' fundef_record_body
       | definition_head ',' location ',' macrodef_record_body
       | definition_head ',' location ',' labeldef_record_body
     
     definition_head : "DEF"

• Variable declaration records

     vardef_record_body
       : 'V' ',' var_linkage_type ',' var_scope_type ',' storage_class_type ',' variable_name ',' type_rep
     
     var_linkage_type
       : 'I'  <- Internal
       | 'X'  <- eXternal
       | 'N'  <- None
     
     var_scope_type
       : 'F'  <- File
       | 'B'  <- Block
       | 'P'  <- Parameter
     
     storage_class_type
       : 'A'  <- Auto
       | 'R'  <- Register
       | 'S'  <- Static
       | 'N'  <- None

• Function definition records

     fundef_record_body
       : 'F' ',' function_linkage_type ',' function_scope_type ',' function_identifier ',' lines

• Macro definition records

     macrodef_record_body
       : 'M' ',' macro_name ',' macro_form_type
     
     macro_form_type
       : 'O'  <- Object
       | 'F'  <- Function

• Label definition record

     labeldef_record_body
       : 'L' ',' label_name
     
     label_name : c_identifier

• Output example

 1: int global_1;
 2: struct { int i; long l; } global_2;
 3:
 4: static long static_1;
 5: static enum { FOO, BAR, BAZ } static_2;
 6:
 7: int foo(int i, register short s)
 8: {
 9:     static char static_3 = 0;
10:     register int local_1 = i + s + static_3;
11:     auto int local_2 = 0;
12:     int local_3 = 0;
13:     goto end;
14: end:
15:     return local_1 + local_2 + local_3;
16: }
17:
18: static void bar(void) {}
19:
20: #define OBJ_FORM_MACRO (1 + 2)
21: #define MAX(a, b) ((a) < (b) ? (b) : (a))
     DEF,test.c,1,5,V,X,F,N,global_1,int
     DEF,test.c,2,27,V,X,F,N,global_2,struct __adlint__unnamed_1
     DEF,test.c,4,13,V,I,F,S,static_1,long
     DEF,test.c,5,31,V,I,F,S,static_2,enum __adlint__unnamed_2
     DEF,test.c,7,13,V,I,P,N,i,int
     DEF,test.c,7,31,V,I,P,R,s,short
     DEF,test.c,9,17,V,I,B,S,static_3,char
     DEF,test.c,10,18,V,I,B,R,local_1,int
     DEF,test.c,11,14,V,I,B,A,local_2,int
     DEF,test.c,12,9,V,I,B,N,local_3,int
     DEF,test.c,7,5,F,X,F,foo,"int foo(int,short)",10
     DEF,test.c,18,13,F,I,F,bar,void bar(void),1
     DEF,test.c,20,1,M,OBJ_FORM_MACRO,O
     DEF,test.c,21,1,M,MAX,F
     DEF,test.c,14,1,L,end

5.3.4 Initialization record

     initialization_record
       : initialization_head ',' location ',' variable_name ',' initializer_rep
     
     initialization_head : "INI"

• Output example

1: int global_1 = 1;
2:
3: int main(void)
4: {
5:     int local_1 = global_1;
6:     int local_2 = local_1 + 1;
7:
8:     return local_1 + local_2;
9: }
     INI,test.c,1,5,global_1,1
     INI,test.c,5,9,local_1,global_1
     INI,test.c,6,9,local_2,local_1 + 1

5.3.5 Assignment records

     assignment_record
       : assignment_head ',' location ',' variable_name ',' assignment_rep
     
     assignment_head : "ASN"

• Output example

 1: int main(void)
 2: {
 3:     int i;
 4:
 5:     for (i = 0; i < 10; i++) {
 6:         if (i % 2) {
 7:             i += 1;
 8:         }
 9:     }
10:
11:     return 0;
12: }
     ASN,test.c,5,12,i,= 0
     ASN,test.c,7,15,i,+= 1

5.3.6 Dependency records

     dependency_record
       : dependency_head ',' location ',' include_record_body
       | dependency_head ',' location ',' call_record_body
       | dependency_head ',' location ',' xref_record_body
     
     dependency_head : "DEP"

• Include records

     include_record_body
       : 'I' ',' included_fpath
     
     included_fpath : '<' file_path '>' | '"' file_path '"'

• Caller function records

     call_record_body
       : 'C' ',' caller_function ',' callee_function
     
     caller_function : function_identifier
     
     callee_function : function_identifier

• external reference records

     xref_record_body
       : 'X' ',' xref_variable_record_body
       | 'X' ',' xref_function_record_body
     
     xref_variable_record_body
       : 'V' ',' accessor_function ',' access_type ',' accessee_variable
     
     xref_function_record_body
       : 'F' ',' accessor_function ',' access_type ',' accessee_function
     
     accessor_function : function_identifier
     
     access_type : 'R' | 'W'
     
     accessee_variable : variable_name
     
     accessee_function : function_identifier

• Output example

 1: #include <stdio.h>
 2: #include "test.h"
 3:
 4: extern int global;
 5:
 6: int foo(long l)
 7: {
 8:     int i = global;
 9:
10:     return l - i;
11: }
12:
13: int main(void)
14: {
15:     int (*p)(long) = &foo;
16:
17:     global = 5;
18:
19:     return (*p)(10);
20: }
     DEP,test.c,1,1,I,</usr/include/stdio.h>
     DEP,test.c,2,1,I,"""test.h"""
     DEP,test.c,8,13,X,V,foo,int foo(long),R,global
     DEP,test.c,19,16,C,main,int main(void),foo,int foo(long)
     DEP,test.c,15,23,X,F,main,int main(void),R,foo,int foo(long)
     DEP,test.c,17,12,X,V,main,int main(void),W,global

5.3.7 Literal records

     literal_record
       : literal_head ',' location ',' literal_type ',' literal_prefix ',' literal_suffix ',' literal_value
     
     literal_head : "LIT"
     
     literal_type
       : 'DN'  <- Decimal Number
       | 'HN'  <- Hexadecimal Number
       | 'ON'  <- Octal Number
       | 'BN'  <- Binary Number
       | 'FN'  <- Floating point Number
       | 'CN'  <- Character Narrow
       | 'SN'  <- String Narrow
       | 'CW'  <- Character Wide
       | 'SW'  <- String Wide
     
     literal_prefix
       :
       | 'l'
       | 'L'
     
     literal_suffix
       :
       | 'u'
       | 'U'
       | 'l'
       | 'L'
       | 'll'
       | 'LL'
       | 'f'
       | 'F'
     
     literal_value
       : c_constant
       | c_string_literal

• Output example

1: unsigned int i = 0xFFU;
2:
3: int foo(long l)
4: {
5:     const wchar_t *s = L"foobar";
6:
7:     return 0;
8: }
     LIT,test.c,1,18,HN,0x,U,0xFFU
     LIT,test.c,5,24,SW,L,,"L""foobar"""

5.3.8 Preprocess record

     preprocess_record
       : preprocess_head ',' location ',' pp_directive ',' pp_tokens
     
     preprocess_head : "PRE"
     
     pp_directive
       : "#if"
       | "#ifdef"
       | "#ifndef"
       | "#elif"
       | "#else"
       | "#endif"
       | "#include"
       | "#define"
       | "#undef"
       | "#line"
       | "#error"
       | "#pragma"
       | "#"

• Output example

 1: #pragma once
 2:
 3: #if defined(NDEBUG)
 4: void debug(const char *msg) {}
 5: #else
 6: #include <stdio.h>
 7: void debug(const char *msg)
 8: {
 9:     puts(msg);
10: }
11: #endif
     PRE,test.c,1,1,#pragma,once
     PRE,test.c,3,1,#if,defined(NDEBUG)
     PRE,test.c,5,1,#else,
     PRE,test.c,6,1,#include,<stdio.h>
     PRE,test.c,11,1,#endif,

5.3.9 Metric value records

     metric_record
       : metric_head ',' file_metric_record_body
       | metric_head ',' func_metric_record_body
     
     metric_head : "MET"
     
     file_metric_record_body
       : file_metric_name ',' file_path ',' metric_value
     
     func_metric_record_body
       : func_metric_name ',' function_identifier ',' location ',' metric_value
     
     file_metric_name
       : "FL_STMT"  <- Number of statements
       | "FL_FUNC"  <- Number of functions
     
     func_metric_name
       : "FN_STMT"  <- Number of statements
       | "FN_UNRC"  <- Number of unreached statements
       | "FN_LINE"  <- Number of lines
       | "FN_PARA"  <- Number of parameters
       | "FN_UNUV"  <- Number of not use /not reuse variables
       | "FN_CSUB"  <- Location number of call function
       | "FN_CALL"  <- Location number of called from function
       | "FN_GOTO"  <- Number of goto statement
       | "FN_RETN"  <- Number of return point in a function
       | "FN_UELS"  <- Number of 'if' statement unless 'else'
       | "FN_NEST"  <- Maximum number of nest of control flow graph
       | "FN_PATH"  <- Presumed  number of static path
       | "FN_CYCM"  <- Cyclomatic complexity
     
     metric_value : integer value


Previous: Metrics File, Up: Output

5.4 message file

     message_file
       : message_version_record
       | message_version_record message_list
     
     message_version_record
       : 'V' ',' version_number ',' exec_timestamp ',' exec_working_directory
     
     message_list
       : error_record
       | warning_record
       | message_list new_line error_record
       | message_list new_line warning_record
     
     error_record
       : error_line new_line context_line_list
     
     error_line
       : 'E' ',' file_path ',' line_no ',' column_no ',' message_id ',' message_text
     
     warning_record
       : warning_line new_line context_line_list
     
     warning_line
       : 'W' ',' file_path ',' line_no ',' column_no ',' message_id ',' message_text
     
     context_line_list
       :
       | context_line new_line context_line_list
     
     context_line
       : 'C' ',' file_path ',' line_no ',' column_no ',' message_id ',' message_text


Next: , Previous: Output, Up: Top

6 Message list


Next: , Up: Messages

6.1 X0001

6.1.1 Message body

An unknown exception `%s' is found.

6.1.2 Content

If you find this message, please send appropriate source file, traits file, message file and log file to AdLint development team. It will lead to improve quality of AdLint.

6.1.3 Sample code

None.

6.1.4 Related message

None.

6.1.5 Since

1.0.0


Next: , Previous: X0001, Up: Messages

6.2 X0002

6.2.1 Message body

An illegal message ID `%s' is found.

6.2.2 Content

There's a possibility that the message catalog which AdLint using in internal is broken. Please reinstall AdLint. If you still cannot solve this issue, please report it to AdLint development team.

6.2.3 Sample code

None.

6.2.4 Related message

None.

6.2.5 Since

1.0.0


Next: , Previous: X0002, Up: Messages

6.3 X0003

6.3.1 Message body

Analysis processing has been stopped due to unrecoverable error. For the details, refer to `%s' and `%s'.

6.3.2 Content

AdLint cannot process the analysis. This error occurred because it cannot find header file or it cannot parse the source file. This error can be solve by reviewing the traits file.

6.3.3 Sample code

None.

6.3.4 Related message

None.

6.3.5 Since

1.0.0


Next: , Previous: X0003, Up: Messages

6.4 X0004

6.4.1 Message body

An illegal message format `%s' is found.

6.4.2 Content

There's a possibility that the message catalog which AdLint using in internal is broken. Please reinstall AdLint. If you still cannot solve this issue, please report it to AdLint development team.

6.4.3 Sample code

None.

6.4.4 Related message

None.

6.4.5 Since

1.0.0


Next: , Previous: X0004, Up: Messages

6.5 E0004

6.5.1 Message body

Corresponding #endif doesn't found.

6.5.2 Content

This error occurred when it cannot find #endif directive correspond to #if, #ifdef, #ifndef directive.

6.5.3 Sample code

#if DEBUG
  int i = 0;
#else
  int i = 1;

6.5.4 Related message

None.

6.5.5 Since

1.0.0


Next: , Previous: E0004, Up: Messages

6.6 E0007

6.6.1 Message body

Syntax error is found in conditional expression token `%s'. Conditional expression evaluate as false.

6.6.2 Content

This message will be output when it find syntax error while evaluating the conditional expression of #if, #elif directive.

6.6.3 Sample code

None.

6.6.4 Related message

None.

6.6.5 Since

1.0.0


Next: , Previous: E0007, Up: Messages

6.7 E0008

6.7.1 Message body

Syntax error is found in token `%s'.

6.7.2 Content

This message will be output when it cannot parse preprocessed source file.

If you use compiler specific extension to build, it can be solve by deleting specific token row in traits file.

6.7.3 Sample code

None.

6.7.4 Related message

None.

6.7.5 Since

1.0.0


Next: , Previous: E0008, Up: Messages

6.8 E0009

6.8.1 Message body

A header file of <%s> doesn't found.

6.8.2 Content

It includes header file in #include <...> directive, but it doesn't exist at the include path specified at traits file.

This error can be solve by reviewing the setting of include path in traits file.

6.8.3 Sample code

None.

6.8.4 Related message

None.

6.8.5 Since

1.0.0


Next: , Previous: E0009, Up: Messages

6.9 E0010

6.9.1 Message body

A header file of \%s\ doesn't found.

6.9.2 Content

It includes header file in #include "..." directive, but it doesn't exist at the include path specified at traits file.

This error can be solve by reviewing the setting of include path in traits file.

6.9.3 Sample code

None.

6.9.4 Related message

None.

6.9.5 Since

1.0.0


Next: , Previous: E0010, Up: Messages

6.10 E0013

6.10.1 Message body

Statement cannot include in syntax.

6.10.2 Content

This message will be output when GCC extension (Statement Exprs) is using.

6.10.3 Sample code

#define maxint(a, b) ({int _a = (a), _b = (b); _a > _b ? _a : _b; })
int i = maxint(1, 2); /* E0013 */

6.10.4 Related message

None.

6.10.5 Since

1.0.0


Next: , Previous: E0013, Up: Messages

6.11 E0014

6.11.1 Message body

'&&' monadic operator to get a label address is GCC original add-on.

6.11.2 Content

This message will be output when GCC extension (Labels as Values) is using.

6.11.3 Sample code

void *label_ptr = &&foo; /* E0014 */
goto *label_ptr; /* E0015 */
foo:;

6.11.4 Related message

6.11.5 Since

1.0.0


Next: , Previous: E0014, Up: Messages

6.12 E0015

6.12.1 Message body

'goto' statement with specified label address is GCC original add-on.

6.12.2 Content

This message will be output when GCC extension (Labels as Values) is using.

6.12.3 Sample code

void *label_ptr = &&foo; /* E0014 */
goto *label_ptr; /* E0015 */
foo:;

6.12.4 Related message

6.12.5 Since

1.0.0


Next: , Previous: E0015, Up: Messages

6.13 E0016

6.13.1 Message body

Unfinished comment block is found.

6.13.2 Content

This message will be output when the block comment begging with /* is not finished by */.

6.13.3 Sample code

None.

6.13.4 Related message

None.

6.13.5 Since

1.0.0


Next: , Previous: E0016, Up: Messages

6.14 W0001

6.14.1 Message body

Nesting depth of round bracket`()' exceed 32. This program doesn't meet the strict ISO C90 standards of the term.

6.14.2 Content

Under construction.

6.14.3 Sample code

int a = 10;
int b = 20;
int c = (((((((((((((((((((((((((((((((((a + b))))))))))))))))))))))))))))))))); /* W0001 */

6.14.4 Related message

None.

6.14.5 Since

1.0.0


Next: , Previous: W0001, Up: Messages

6.15 W0002

6.15.1 Message body

Identifier and declaration of formal argument described separately in the definition of function `%s()' is old style.

6.15.2 Content

Under construction.

6.15.3 Sample code

/* function definition in K&R style */
int func(arg) /* W0002 */
char arg;
{
    return 0;
}

6.15.4 Related message

None.

6.15.5 Since

1.0.0


Next: , Previous: W0002, Up: Messages

6.16 W0003

6.16.1 Message body

This switch statement doesn't have default label.

6.16.2 Content

Under construction.

6.16.3 Sample code

int value;
int number;
switch(number) {
case 1:
    value = 1;
    break;
case 2:
    value = 2;
    break;
case 3:
    value = 3;
    break; /* W0003 */
}

6.16.4 Related message

None.

6.16.5 Since

1.0.0


Next: , Previous: W0003, Up: Messages

6.17 W0007

6.17.1 Message body

'break' or 'return' statement doesn't found in the last 'case' or 'default' section.

6.17.2 Content

Under construction.

6.17.3 Sample code

int value;
int number;
switch (number) {
case 1:
    value = 1;
    break;
case 2:
    value = 2;
case 3: /* W0007 */
    value = 3;
    break;
default:
    value = 0;
    break;
}

6.17.4 Related message

None.

6.17.5 Since

1.0.0


Next: , Previous: W0007, Up: Messages

6.18 W0010

6.18.1 Message body

There is a side-effect in this ternary operator (conditional operator).

6.18.2 Content

Under construction.

6.18.3 Sample code

x = (a > 0) ? b++ : b--; /* W0010 */

6.18.4 Related message

None.

6.18.5 Since

1.0.0


Next: , Previous: W0010, Up: Messages

6.19 W0013

6.19.1 Message body

'continue' statement is used in repetition statement.

6.19.2 Content

Under construction.

6.19.3 Sample code

static void foo(void)
{
    int i;
    int j;

    i++;
    for (i = 1, j = 0; i < 20; i++) {
        j += 2;
        if ((j % i) == 3) {
            continue;  /* W0013 */
        }
    }
}

6.19.4 Related message

None.

6.19.5 Since

1.0.0


Next: , Previous: W0013, Up: Messages

6.20 W0016

6.20.1 Message body

The field width of conversion specifier exceeds 509 characters in 'printf' function.

6.20.2 Content

Under construction.

6.20.3 Sample code

printf("%510d\n", a); /* W0016 */

6.20.4 Related message

6.20.5 Since

1.0.0


Next: , Previous: W0016, Up: Messages

6.21 W0017

6.21.1 Message body

The field width of conversion specifier exceeds 509 characters in 'scanf' function.

6.21.2 Content

Under construction.

6.21.3 Sample code

scanf("%510d", &a); /* W0017 */

6.21.4 Related message

6.21.5 Since

1.0.0


Next: , Previous: W0017, Up: Messages

6.22 W0018

6.22.1 Message body

This accuracy width of conversion specifier exceeds 509 characters.

6.22.2 Content

Under construction.

6.22.3 Sample code

printf("%.510f\n", a); /* W0018 */

6.22.4 Related message

None.

6.22.5 Since

1.0.0


Next: , Previous: W0018, Up: Messages

6.23 W0019

6.23.1 Message body

This pointer cast is danger because it delete const qualifier.

6.23.2 Content

Under construction.

6.23.3 Sample code

int *pa;
const int *pb;
pa = (int *) pb; /* W0019 */

6.23.4 Related message

None.

6.23.5 Since

1.0.0


Next: , Previous: W0019, Up: Messages

6.24 W0021

6.24.1 Message body

This pointer cast is danger because it delete volatile qualifier.

6.24.2 Content

Under construction.

6.24.3 Sample code

int *pa;
volatile int *pb;
pa = (int *) pb; /* W0021 */

6.24.4 Related message

None.

6.24.5 Since

1.0.0


Next: , Previous: W0021, Up: Messages

6.25 W0023

6.25.1 Message body

Arithmetic operation is being made by pointer variable.

6.25.2 Content

Under construction.

6.25.3 Sample code

int *p;
int *q;
long r = p + r; /* W0023 */

6.25.4 Related message

6.25.5 Since

1.0.0


Next: , Previous: W0023, Up: Messages

6.26 W0024

6.26.1 Message body

Increment or decrement is being made by pointer variable.

6.26.2 Content

Under construction.

6.26.3 Sample code

int *p;
p++; /* W0024 */

6.26.4 Related message

6.26.5 Since

1.0.0


Next: , Previous: W0024, Up: Messages

6.27 W0025

6.27.1 Message body

A file is already included by directly.

6.27.2 Content

Under construction.

6.27.3 Sample code

#include "test.h"
#include "test2.h"
#include "test.h" /* W0025 */

6.27.4 Related message

6.27.5 Since

1.0.0


Next: , Previous: W0025, Up: Messages

6.28 W0026

6.28.1 Message body

A file is already included by indirectly.

6.28.2 Content

Under construction.

6.28.3 Sample code

test.h

#include "test2.h"

test.c

#include "test.h"
#include "test2.h" /* W0026 */

6.28.4 Related message

6.28.5 Since

1.0.0


Next: , Previous: W0026, Up: Messages

6.29 W0027

6.29.1 Message body

Comparison operation is being made by pointer variable.

6.29.2 Content

Under construction.

6.29.3 Sample code

int *p;
int *q;
if (p < q) { /* W0027 */

6.29.4 Related message

None.

6.29.5 Since

1.0.0


Next: , Previous: W0027, Up: Messages

6.30 W0028

6.30.1 Message body

Indirect referencing is being made by NULL pointer.

6.30.2 Content

Under construction.

6.30.3 Sample code

int i = *(int *) NULL; /* W0028 */

6.30.4 Related message

None.

6.30.5 Since

1.0.0


Next: , Previous: W0028, Up: Messages

6.31 W0030

6.31.1 Message body

Arithmetic operation is being made by NULL pointer.

6.31.2 Content

Under construction.

6.31.3 Sample code

int *p;
p = (int *) NULL + 1; /* W0030 */

6.31.4 Related message

None.

6.31.5 Since

1.0.0


Next: , Previous: W0030, Up: Messages

6.32 W0031

6.32.1 Message body

A formal argument `%s' is not used in this function.

6.32.2 Content

Under construction.

6.32.3 Sample code

int func(int num) /* W0031 */
{
    return 0;
}

6.32.4 Related message

None.

6.32.5 Since

1.0.0


Next: , Previous: W0031, Up: Messages

6.33 W0033

6.33.1 Message body

A label of `%s:' is not used in this function. It might be removed.

6.33.2 Content

Under construction.

6.33.3 Sample code

void func(void)
{
    int num = 0;
    for (int i =0; i < 10; i++) {
        num++;
    }
ERROR: /* W0033 */
    num = 0;
}

6.33.4 Related message

None.

6.33.5 Since

1.0.0


Next: , Previous: W0033, Up: Messages

6.34 W0035

6.34.1 Message body

Right operand of “&&' or `||' must arithmetic type or pointer type.

6.34.2 Content

Under construction.

6.34.3 Sample code

struct STR {
    int x;
    int y;
};

extern struct STR str;

void func(void)
{
    int x;
    int y;
    x = y && str; /* W0035 */
}

6.34.4 Related message

None.

6.34.5 Since

1.0.0


Next: , Previous: W0035, Up: Messages

6.35 W0036

6.35.1 Message body

The number of qualification operator exceeds 12.This program doesn't meet the strict ISO C90 standards of the term.

6.35.2 Content

Under construction.

6.35.3 Sample code

int num[1][2][3][4][5][6][7][8][9][10][11][12][13]; /* W0036 */

6.35.4 Related message

None.

6.35.5 Since

1.0.0


Next: , Previous: W0036, Up: Messages

6.36 W0037

6.36.1 Message body

Nest of structure or union exceeds 15. This program doesn't meet the strict ISO C90 standards of the term.

6.36.2 Content

Under construction.

6.36.3 Sample code

struct st1 {
  struct st2 {
    struct st3 {
      struct st4 {
        struct st5 {
          struct st6 {
            struct st7 {
              struct st8 {
                struct st9 {
                  struct st10 {
                    struct st11 {
                      struct st12 {
                        struct st13 {
                          struct st14 {
                            struct st15 {
                              struct st16 { /* W0037 */
                                int i;
                              } st16;
                            } st15;
                          } st14;
                        } st13;
                      } st12;
                    } st11;
                  } st10;
                } st9;
              } st8;
            } st7;
          } st6;
        } st5;
      } st5;
    } st3;
  } st2;
};

6.36.4 Related message

None.

6.36.5 Since

1.0.0


Next: , Previous: W0037, Up: Messages

6.37 W0038

6.37.1 Message body

The size of object `%s' exceeds 32767 bytes. This program doesn't meet the strict ISO C90 standards of the term.

6.37.2 Content

Under construction.

6.37.3 Sample code

int num[100][330]; /* W0038 */

6.37.4 Related message

None.

6.37.5 Since

1.0.0


Next: , Previous: W0038, Up: Messages

6.38 W0039

6.38.1 Message body

The number of local identifier in the block exceeds 127. This program doesn't meet the strict ISO C90 standards of the term.

6.38.2 Content

Under construction.

6.38.3 Sample code

void func(void)
{
    int num1,  num2,  num3,  num4,  num5,  num6,  num7,  num8,  num9,  num10;
    int num11, num12, num13, num14, num15, num16, num17, num18, num19, num20;

    ...snip...

    int num111, num112, num113, num114, num115, num116, num117, num118, num119, num120;
    int num121, num122, num123, num124, num125, num126, num127, num128; /* W0039 */
}

6.38.4 Related message

None.

6.38.5 Since

1.0.0


Next: , Previous: W0039, Up: Messages

6.39 W0040

6.39.1 Message body

A bit field is declared without 'signed' or 'unsigned'.

6.39.2 Content

Under construction.

6.39.3 Sample code

struct STR { /* W0040 */
    int a:5;
};

6.39.4 Related message

None.

6.39.5 Since

1.0.0


Next: , Previous: W0040, Up: Messages

6.40 W0041

6.40.1 Message body

The number of member of structure or union exceeds 127.This program doesn't meet the strict ISO C90 standards of the term.

6.40.2 Content

Under construction.

6.40.3 Sample code

struct STR {
    int num1;
    int num2;
    int num3;
    int num4;
    int num5;

    ...snip...

    int num125;
    int num126;
    int num127;
    int num128; /* W0041 */
};

6.40.4 Related message

None.

6.40.5 Since

1.0.0


Next: , Previous: W0041, Up: Messages

6.41 W0042

6.41.1 Message body

The number of enumeration literal exceeds 127. This program doesn't meet the strict ISO C90 standards of the term.

6.41.2 Content

Under construction.

6.41.3 Sample code

enum ENM {
    e1,  e2,  e3,  e4,  e5,  e6,  e7,  e8,  e9,  e10,
    e11, e12, e13, e14, e15, e16, e17, e18, e19, e20,

    ...snip...

    e111, e112, e113, e114, e115, e116, e117, e118, e119, e120,
    e121, e122, e123, e124, e125, e126, e127, e128 /* W0042 */
};

6.41.4 Related message

None.

6.41.5 Since

1.0.0


Next: , Previous: W0042, Up: Messages

6.42 W0043

6.42.1 Message body

The initial value of the array is short of declared array's size. The residual array will be initialized by zero.

6.42.2 Content

Under construction.

6.42.3 Sample code

int array[5] = { 1, 2, 3 }; /* W0043 */

6.42.4 Related message

None.

6.42.5 Since

1.0.0


Next: , Previous: W0043, Up: Messages

6.43 W0049

6.43.1 Message body

Nest of control structure exceeds 15. This program doesn't meet the strict ISO C90 standards of the term.

6.43.2 Content

Under construction.

6.43.3 Sample code

if(x > 0) {
  if(x > 0) {
    if(x > 0) {
      if(x > 0) {
        if(x > 0) {
          if(x > 0) {
            if(x > 0) {
              if(x > 0) {
                if(x > 0) {
                  if(x > 0) {
                    if(x > 0) {
                      if(x > 0) {
                        if(x > 0) {
                          if(x > 0) {
                            if (x > 0) {
                              if(x > 0) { /* W0049 */
                                ;
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}

6.43.4 Related message

None.

6.43.5 Since

1.0.0


Next: , Previous: W0049, Up: Messages

6.44 W0050

6.44.1 Message body

The number of 'case' label exceeds 257. This program doesn't meet the strict ISO C90 standards of the term.

6.44.2 Content

Under construction.

6.44.3 Sample code

switch (num) {
case 1:
    break;
case 2:
    break;
case 3:
    break;

  ...snip...

case 257:
    break;
case 258: /* W0050 */
    break;
}

6.44.4 Related message

None.

6.44.5 Since

1.0.0


Next: , Previous: W0050, Up: Messages

6.45 W0051

6.45.1 Message body

An external identifier name cannot distinguish other identifier name (ex:`%s') from the range of number of characters defined in linker property.

6.45.2 Content

Under construction.

6.45.3 Sample code

extern int very_long_long_long_ ...snip... _long_external_symbol; /* W0051 */

6.45.4 Related message

6.45.5 Since

1.0.0


Next: , Previous: W0051, Up: Messages

6.46 W0052

6.46.1 Message body

A identifier name cannot distinguish other identifier name (ex:`%s') from the range of number of characters defined in compile property.

6.46.2 Content

Under construction.

6.46.3 Sample code

void func(void)
{
    int very_long_long_long_long_long_ ...snip... _long_symbol; /* W0052 */
}

6.46.4 Since

1.0.0


Next: , Previous: W0052, Up: Messages

6.47 W0053

6.47.1 Message body

Nest of `#include \%s\' exceeds 8.This program doesn't meet the strict ISO C90 standards of the term.

6.47.2 Content

Under construction.

6.47.3 Sample code

test.c

#include "test1.h"

test1.h

#include "test2.h"

test2.h

#include "test3.h"

test3.h

#include "test4.h"

test4.h

#include "test5.h"

test5.h

#include "test6.h"

test6.h

#include "test7.h"

test7.h

#include "test8.h"

test8.h

#include "test9.h"

test9.h

#include "test10.h" /* W0053 */

6.47.4 Related message

None.

6.47.5 Since

1.0.0


Next: , Previous: W0053, Up: Messages

6.48 W0054

6.48.1 Message body

The maximum number of `#if...' nest exceeds 8. This program doesn't meet the strict ISO C90 standards of the term.

6.48.2 Content

Under construction.

6.48.3 Sample code

#if N > 1
#if N > 2
#if N > 3
#if N > 4
#if N > 5
#if N > 6
#if N > 7
#if N > 8 /* W0054 */
#endif
#endif
#endif
#endif
#endif
#endif
#endif
#endif

6.48.4 Related message

None.

6.48.5 Since

1.0.0


Next: , Previous: W0054, Up: Messages

6.49 W0055

6.49.1 Message body

The number of macro definition exceeds 1024. This program doesn't meet the strict ISO C90 standards of the term.

6.49.2 Content

Under construction.

6.49.3 Sample code

#define MACRO_1
#define MACRO_2
#define MACRO_3

...snip...

#define MACRO_1023
#define MACRO_1024
#define MACRO_1025 /* W0055 */

6.49.4 Related message

None.

6.49.5 Since

1.0.0


Next: , Previous: W0055, Up: Messages

6.50 W0056

6.50.1 Message body

The number of formal argument of function-like macro exceeds 31.This program doesn't meet the strict ISO C90 standards of the term.

6.50.2 Content

Under construction.

6.50.3 Sample code

#define MACRO(a1, a2, a3, ...snip... a30, a31, a32) /* W0056 */

6.50.4 Related message

None.

6.50.5 Since

1.0.0


Next: , Previous: W0056, Up: Messages

6.51 W0057

6.51.1 Message body

The number of actual argument of function-like macro exceeds 31.This program doesn't meet the strict ISO C90 standards of the term.

6.51.2 Content

Under construction.

6.51.3 Sample code

int i = MACRO(1, 2, 3 ...snip... 30, 31, 32); /* W0057 */

6.51.4 Related message

None.

6.51.5 Since

1.0.0


Next: , Previous: W0057, Up: Messages

6.52 W0058

6.52.1 Message body

The number of characters of string literal exceeds 509.This program doesn't meet the strict ISO C90 standards of the term.

6.52.2 Content

Under construction.

6.52.3 Sample code

char buf[] = "very long long long ...snip... long string literal"; /* W0058 */

6.52.4 Related message

None.

6.52.5 Since

1.0.0


Next: , Previous: W0058, Up: Messages

6.53 W0059

6.53.1 Message body

Ctrl-M(^M) control character is found at the end of line.

6.53.2 Content

Under construction.

6.53.3 Sample code

None.

6.53.4 Related message

6.53.5 Since

1.0.0


Next: , Previous: W0059, Up: Messages

6.54 W0060

6.54.1 Message body

Ctrl-Z(^Z) control character is found in this file.

6.54.2 Content

Under construction.

6.54.3 Sample code

None.

6.54.4 Related message

6.54.5 Since

1.0.0


Next: , Previous: W0060, Up: Messages

6.55 W0061

6.55.1 Message body

`%s' is not actual reserved keyword. It will be considered as language extension and ignored.

6.55.2 Content

Under construction.

6.55.3 Sample code

extern int func(void) __attribute__ ((__const__)); /* W0061 */

6.55.4 Related message

6.55.5 Since

1.0.0


Next: , Previous: W0061, Up: Messages

6.56 W0062

6.56.1 Message body

`__typeof__' is not supported ISO C standards. It will be considered as language extension.

6.56.2 Content

Under construction.

6.56.3 Sample code

#define DEF_FUNPTR(func) __typeof__(func) *ptr_##func = 0
DEF_FUNPTR(main); /* W0062 */

6.56.4 Related message

6.56.5 Since

1.0.0


Next: , Previous: W0062, Up: Messages

6.57 W0063

6.57.1 Message body

`__alignof__'is not supported ISO C standards. It will be considered as language extension..

6.57.2 Content

Under construction.

6.57.3 Sample code

int a = __alignof__(struct sockaddr *) /* W0063 */

6.57.4 Related message

6.57.5 Since

1.0.0


Next: , Previous: W0063, Up: Messages

6.58 W0064

6.58.1 Message body

A binary integer literal is used. This is the language extension.

6.58.2 Content

Under construction.

6.58.3 Sample code

unsigned char c = 0b00000001; /* W0064 */

6.58.4 Related message

None.

6.58.5 Since

1.0.0


Next: , Previous: W0064, Up: Messages

6.59 W0065

6.59.1 Message body

Must not cast left operand of assignment operator.

6.59.2 Content

Under construction.

6.59.3 Sample code

void func(int num)
{
    (unsigned short) num = 100U; /* W0065 */
}

6.59.4 Related message

None.

6.59.5 Since

1.0.0


Next: , Previous: W0065, Up: Messages

6.60 W0066

6.60.1 Message body

`main()' function must `int (void)' or `int (int, char *[])'.

6.60.2 Content

Under construction.

6.60.3 Sample code

void main(void) {} /* W0066 */

6.60.4 Related message

None.

6.60.5 Since

1.0.0


Next: , Previous: W0066, Up: Messages

6.61 W0067

6.61.1 Message body

Directly access to the member of nested structure. This is the language extension.

6.61.2 Content

Under construction.

6.61.3 Sample code

struct BBB {
    int mb;
    struct AAA {
        int ma;
    };
} bbb;

bbb.ma = 1; /* W0067 */

6.61.4 Related message

6.61.5 Since

1.0.0


Next: , Previous: W0067, Up: Messages

6.62 W0068

6.62.1 Message body

`.' is used to get access to bit. This is the language extension.

6.62.2 Content

Under construction.

6.62.3 Sample code

unsigned short a;

a.2 = 0; /* W0068 */

6.62.4 Related message

6.62.5 Since

1.0.0


Next: , Previous: W0068, Up: Messages

6.63 W0069

6.63.1 Message body

`/*' is found in the beginning with `/*' comments. Nested comment doesn't allowed in ISO C standards.

6.63.2 Content

Under construction.

6.63.3 Sample code

/* /* W0069 */ */

6.63.4 Related message

None.

6.63.5 Since

1.0.0


Next: , Previous: W0069, Up: Messages

6.64 W0070

6.64.1 Message body

Included <%s> is not referenced in the translation unit. It can be removed.

6.64.2 Content

Under construction.

6.64.3 Sample code

None.

6.64.4 Since

1.0.0


Next: , Previous: W0070, Up: Messages

6.65 W0071

6.65.1 Message body

Included \%s\ is not referenced in the translation unit. It can be removed.

6.65.2 Content

Under construction.

6.65.3 Sample code

None.

6.65.4 Since

1.0.0


Next: , Previous: W0071, Up: Messages

6.66 W0072

6.66.1 Message body

A character except for basic source character is used in header file name.

6.66.2 Content

Under construction.

6.66.3 Sample code

#include <test$.h> /* W0072 */

6.66.4 Related message

None.

6.66.5 Since

1.0.0


Next: , Previous: W0072, Up: Messages

6.67 W0073

6.67.1 Message body

No include guard in this include file.

6.67.2 Content

Under construction.

6.67.3 Sample code

None.

6.67.4 Related message

None.

6.67.5 Since

1.0.0


Next: , Previous: W0073, Up: Messages

6.68 W0076

6.68.1 Message body

This hexadecimal literal doesn't contained within suffix `U' or `u'.

6.68.2 Content

Under construction.

6.68.3 Sample code

unsigned int num = 0x1234; /* W0076 */

6.68.4 Related message

None.

6.68.5 Since

1.0.0


Next: , Previous: W0076, Up: Messages

6.69 W0077

6.69.1 Message body

Lower case`l' is added to integer or floating-point number.

6.69.2 Content

Under construction.

6.69.3 Sample code

long a = 0x1000l; /* W0077 */
long b = 0x1000L; /* OK */

6.69.4 Related message

None.

6.69.5 Since

1.0.0


Next: , Previous: W0077, Up: Messages

6.70 W0078

6.70.1 Message body

A function is declared without list of formal argument.

6.70.2 Content

Under construction.

6.70.3 Sample code

int sample() /* W0078 */
{
    return 0;
}

6.70.4 Related message

None.

6.70.5 Since

1.0.0


Next: , Previous: W0078, Up: Messages

6.71 W0079

6.71.1 Message body

This array cannot keep final character `\0' which initial value of string literal.

6.71.2 Content

Under construction.

6.71.3 Sample code

char text[3] = "ABC"; /* W0079 */

6.71.4 Related message

None.

6.71.5 Since

1.0.0


Next: , Previous: W0079, Up: Messages

6.72 W0080

6.72.1 Message body

A global object which const qualified is defined without explicitly initialized.

6.72.2 Content

Under construction.

6.72.3 Sample code

const int num; /* W0080 */

6.72.4 Related message

None.

6.72.5 Since

1.0.0


Next: , Previous: W0080, Up: Messages

6.73 W0081

6.73.1 Message body

A monadic operator`-' becomes unsigned type if it use 'unsigned int' type, 'unsigned long' type or 'unsigned long' type operand.

6.73.2 Content

Under construction.

6.73.3 Sample code

unsigned long num = 0;
long val = -num; /* W0081 */

6.73.4 Related message

None.

6.73.5 Since

1.0.0


Next: , Previous: W0081, Up: Messages

6.74 W0082

6.74.1 Message body

A monadic operator `-' is used operand which the latency type is a unsigned operand.

6.74.2 Content

Under construction.

6.74.3 Sample code

unsigned short num = 20;
int val = -num; /* W0082 */

6.74.4 Related message

None.

6.74.5 Since

1.0.0


Next: , Previous: W0082, Up: Messages

6.75 W0084

6.75.1 Message body

Left operand of this comma operator`,' doesn't described the statement which has side-effects.

6.75.2 Content

Under construction.

6.75.3 Sample code

int a = 0;
int b = 1;

a, b++; /* W0084 */

6.75.4 Related message

6.75.5 Since

1.0.0


Next: , Previous: W0084, Up: Messages

6.76 W0085

6.76.1 Message body

This statement doesn't have side-effects. It is highly possible that it having error.

6.76.2 Content

Under construction.

6.76.3 Sample code

a; /* W0085 */

6.76.4 Related message

6.76.5 Since

1.0.0


Next: , Previous: W0085, Up: Messages

6.77 W0086

6.77.1 Message body

Second or third operand is verbose statement which doesn't have side-effects in ternary operator (conditional operator).

6.77.2 Content

Under construction.

6.77.3 Sample code

int a;
int b;

(a < 0) ? b : b++; /* W0086 */

6.77.4 Related message

6.77.5 Since

1.0.0


Next: , Previous: W0086, Up: Messages

6.78 W0087

6.78.1 Message body

The right side statement of comma operator is verbose statement which doesn't have side-effects.

6.78.2 Content

Under construction.

6.78.3 Sample code

int a = 0;
int b = 1;

a++, b; /* W0087 */

6.78.4 Related message

6.78.5 Since

1.0.0


Next: , Previous: W0087, Up: Messages

6.79 W0088

6.79.1 Message body

The right side statement of logical operator is verbose statement which doesn't have side-effects.

6.79.2 Content

Under construction.

6.79.3 Sample code

(a < 0) && func(a) && func(b) && c; /* W0088 */

6.79.4 Related message

6.79.5 Since

1.0.0


Next: , Previous: W0088, Up: Messages

6.80 W0093

6.80.1 Message body

It divided by a value which possibly zero.

6.80.2 Content

Under construction.

6.80.3 Sample code

int func(int a, int b)
{
    if (b > 0) {
        return a / b; /* OK */
    }
    return a / b; /* W0093 */
}

6.80.4 Related message

None.

6.80.5 Since

1.0.0


Next: , Previous: W0093, Up: Messages

6.81 W0096

6.81.1 Message body

It divided by a constant expression which definitely zero.

6.81.2 Content

Under construction.

6.81.3 Sample code

#define A (0)

int b = 10 / A; /* W0096 */

6.81.4 Related message

None.

6.81.5 Since

1.0.0


Next: , Previous: W0096, Up: Messages

6.82 W0097

6.82.1 Message body

It divided by zero.

6.82.2 Content

Under construction.

6.82.3 Sample code

int func(int a, int b)
{
    if (a < 0) {
        ...snip...
    }
    else {
        ...snip...
        if (a < 1) {
            return b / a; /* W0097 */
        }
    }
}

6.82.4 Related message

None.

6.82.5 Since

1.0.0


Next: , Previous: W0097, Up: Messages

6.83 W0100

6.83.1 Message body

The value of variable `%s' is not change. It can be declarable with 'const'.

6.83.2 Content

Under construction.

6.83.3 Sample code

int func(int a)
{
    int b = a; /* W0100 */
    return b;
}

6.83.4 Related message

None.

6.83.5 Since

1.0.0


Next: , Previous: W0100, Up: Messages

6.84 W0101

6.84.1 Message body

An address of auto variable is substituted for a pointer which has a longer life. This program is danger.

6.84.2 Content

Under construction.

6.84.3 Sample code

extern long *ptr;

void func()
{
    long value = 0;
    ptr = &value; /* W0101 */
}

6.84.4 Related message

None.

6.84.5 Since

1.0.0


Next: , Previous: W0101, Up: Messages

6.85 W0102

6.85.1 Message body

An address of auto variable is returned via formal argument to functions. This program is danger.

6.85.2 Content

Under construction.

6.85.3 Sample code

void func(int **ptr)
{
    int num;
    *ptr = &num; /* W0102 */
}

6.85.4 Related message

6.85.5 Since

1.0.0


Next: , Previous: W0102, Up: Messages

6.86 W0103

6.86.1 Message body

An address of auto variable is returned as return value from a function. This program is danger.

6.86.2 Content

Under construction.

6.86.3 Sample code

char *foo1(void)
{
    char a[3];
    return a; /* W0103 */
}

6.86.4 Related message

6.86.5 Since

1.0.0


Next: , Previous: W0103, Up: Messages

6.87 W0104

6.87.1 Message body

The value of formal argument `%s' is not change. It can be declarable with 'const'.

6.87.2 Content

Under construction.

6.87.3 Sample code

void func(int val) /* W0104 */
{
    const int num = val + 1;
}

6.87.4 Since

1.0.0


Next: , Previous: W0104, Up: Messages

6.88 W0105

6.88.1 Message body

The object which points the formal argument `%s' is not change. It can be declaring as pointer type which points const object.

6.88.2 Content

Under construction.

6.88.3 Sample code

void func(int *val) /* W0105 */
{
    const int num = *val;
}

6.88.4 Related message

6.88.5 Since

1.0.0


Next: , Previous: W0105, Up: Messages

6.89 W0107

6.89.1 Message body

An address of auto variable is substituted for local pointer with 'static' option. This program is danger.

6.89.2 Content

Under construction.

6.89.3 Sample code

void foo()
{
    static int *p;
    int b = 100;

    p = &b; /* W0107 */
}

6.89.4 Related message

None.

6.89.5 Since

1.0.0


Next: , Previous: W0107, Up: Messages

6.90 W0108

6.90.1 Message body

Assignment operator is used in logical operation expression.

6.90.2 Content

Under construction.

6.90.3 Sample code

int a;
int b;

if (a = b) { /* W0108 */
}

6.90.4 Related message

None.

6.90.5 Since

1.0.0


Next: , Previous: W0108, Up: Messages

6.91 W0109

6.91.1 Message body

The definition of this function doesn't found. It consider it was omitted, and insert `extern int %s()'.

6.91.2 Content

Under construction.

6.91.3 Sample code

void func()
{
    foo(); /* W0109 */
}

6.91.4 Related message

None.

6.91.5 Since

1.0.0


Next: , Previous: W0109, Up: Messages

6.92 W0110

6.92.1 Message body

A variable number with floating-point type is used by loop counter in for statement.

6.92.2 Content

Under construction.

6.92.3 Sample code

double d;

for (d = 0.0; d != 1.0; d += 0.1) { /* W0110 */
}

6.92.4 Related message

None.

6.92.5 Since

1.0.0


Next: , Previous: W0110, Up: Messages

6.93 W0112

6.93.1 Message body

The statement of floating-point compares by equivalent operator.

6.93.2 Content

Under construction.

6.93.3 Sample code

double a = 0.1;
a = (a + 0.1) * 5.0;
if (a == 1.0) { /* W0112 */
}

6.93.4 Related message

None.

6.93.5 Since

1.0.0


Next: , Previous: W0112, Up: Messages

6.94 W0114

6.94.1 Message body

This control expression is not explicit logical operation.

6.94.2 Content

Under construction.

6.94.3 Sample code

int a;

if (a != 0) { /* OK */
}

if (a) { /* W0114 */
}

6.94.4 Related message

None.

6.94.5 Since

1.0.0


Next: , Previous: W0114, Up: Messages

6.95 W0115

6.95.1 Message body

Unsigned left shift operator `<<' drop the high-order bit.

6.95.2 Content

Under construction.

6.95.3 Sample code

unsigned int func(unsigned int a)
{
    if (a > 0x40000000U) {
        return a << 2; /* W0115 */
    }
}

6.95.4 Related message

6.95.5 Since

1.0.0


Next: , Previous: W0115, Up: Messages

6.96 W0116

6.96.1 Message body

Unsigned left shift operator `<<' can be drop high-order bit.

6.96.2 Content

Under construction.

6.96.3 Sample code

unsigned int func(unsigned int a)
{
    if (a > 0x40000000U) {
        return a << 1; /* W0116 */
    }
}

6.96.4 Related message

6.96.5 Since

1.0.0


Next: , Previous: W0116, Up: Messages

6.97 W0117

6.97.1 Message body

The definition of `%s' has an external coupling, but the declaration doesn't find before its definition.

6.97.2 Content

Under construction.

6.97.3 Sample code

void func(void) /* W0117 */
{
    ...snip...
}

6.97.4 Related message

6.97.5 Since

1.0.0


Next: , Previous: W0117, Up: Messages

6.98 W0118

6.98.1 Message body

The definition of `%s' which has external coupling doesn't find in header file.

6.98.2 Content

Under construction.

6.98.3 Sample code

test.c

extern int val; /* W0118 */

6.98.4 Related message

6.98.5 Since

1.0.0


Next: , Previous: W0118, Up: Messages

6.99 W0119

6.99.1 Message body

An implicit type conversion from char to signed char.

6.99.2 Content

Under construction.

6.99.3 Sample code

extern void foo(signed char a);

void bar(char a)
{
    signed char b = a; /* W0119 */
    foo(a); /* W0119 */
}

6.99.4 Related message

6.99.5 Since

1.0.0


Next: , Previous: W0119, Up: Messages

6.100 W0120

6.100.1 Message body

An implicit type conversion from char to unsigned char.

6.100.2 Content

Under construction.

6.100.3 Sample code

extern void foo(unsigned char a);

void bar(char a)
{
    unsigned char b = a; /* W0120 */
    foo(a); /* W0120 */
}

6.100.4 Related message

6.100.5 Since

1.0.0


Next: , Previous: W0120, Up: Messages

6.101 W0121

6.101.1 Message body

An implicit type conversion from char to short.

6.101.2 Content

Under construction.

6.101.3 Sample code

extern void foo(short a);

void bar(char a)
{
    short b = a; /* W0121 */
    foo(a); /* W0121 */
}

6.101.4 Since

1.0.0


Next: , Previous: W0121, Up: Messages

6.102 W0122

6.102.1 Message body

An implicit type conversion from char to unsigned short.

6.102.2 Content

Under construction.

6.102.3 Sample code

extern void foo(unsigned short a);

void bar(char a)
{
    unsigned short b = a; /* W0122 */
    foo(a); /* W0122 */
}

6.102.4 Related message

6.102.5 Since

1.0.0


Next: , Previous: W0122, Up: Messages

6.103 W0123

6.103.1 Message body

An implicit type conversion from char to int.

6.103.2 Content

Under construction.

6.103.3 Sample code

extern void foo(int a);

void bar(char a)
{
    int b = a; /* W0123 */
    foo(a); /* W0123 */
}

6.103.4 Related message

6.103.5 Since

1.0.0


Next: , Previous: W0123, Up: Messages

6.104 W0124

6.104.1 Message body

An implicit type conversion from char to unsigned int.

6.104.2 Content

Under construction.

6.104.3 Sample code

extern void foo(unsigned int a);

void bar(char a)
{
    unsigned int b = a; /* W0124 */
    foo(a); /* W0124 */
}

6.104.4 Related message

6.104.5 Since

1.0.0


Next: , Previous: W0124, Up: Messages

6.105 W0125

6.105.1 Message body

An implicit type conversion from char to long.

6.105.2 Content

Under construction.

6.105.3 Sample code

extern void foo(long a);

void bar(char a)
{
    long b = a; /* W0125 */
    foo(a); /* W0125 */
}

6.105.4 Related message

6.105.5 Since

1.0.0


Next: , Previous: W0125, Up: Messages

6.106 W0126

6.106.1 Message body

An implicit type conversion from char to unsigned long.

6.106.2 Content

Under construction.

6.106.3 Sample code

extern void foo(unsigned long a);

void bar(char a)
{
    unsigned long b = a; /* W0126 */
    foo(a); /* W0126 */
}

6.106.4 Related message

6.106.5 Since

1.0.0


Next: , Previous: W0126, Up: Messages

6.107 W0127

6.107.1 Message body

An implicit type conversion from char to float.

6.107.2 Content

Under construction.

6.107.3 Sample code

extern void foo(float a);

void bar(char a)
{
    float b = a; /* W0127 */
    foo(a); /* W0127 */
}

6.107.4 Related Message

6.107.5 Since

1.0.0


Next: , Previous: W0127, Up: Messages

6.108 W0128

6.108.1 Message body

An implicit type conversion from char to double.

6.108.2 Content

Under construction.

6.108.3 Sample code

extern void foo(double a);

void bar(char a)
{
    double b = a; /* W0128 */
    foo(a); /* W0128 */
}

6.108.4 Related message

6.108.5 Since

1.0.0


Next: , Previous: W0128, Up: Messages

6.109 W0129

6.109.1 Message body

An implicit type conversion from char to long double.

6.109.2 Content

Under construction.

6.109.3 Sample code

extern void foo(long double a);

void bar(char a)
{
    long double b = a; /* W0129 */
    foo(a); /* W0129 */
}

6.109.4 Related message

Under construction.

6.109.5 Since

1.0.0


Next: , Previous: W0129, Up: Messages

6.110 W0130

6.110.1 Message body

An implicit type conversion from char to long long.

6.110.2 Content

Under construction.

6.110.3 Sample code

extern void foo(long long a);

void bar(char a)
{
    long long b = a; /* W0130 */
    foo(a); /* W0130 */
}

6.110.4 Related message

6.110.5 Since

1.0.0


Next: , Previous: W0130, Up: Messages

6.111 W0131

6.111.1 Message body

An implicit type conversion from char to unsigned long long.

6.111.2 Content

Under construction.

6.111.3 Sample code

extern void foo(unsigned long long a);

void bar(char a)
{
    unsigned long long b = a; /* W0131 */
    foo(a); /* W0131 */
}

6.111.4 Related message

6.111.5 Since

1.0.0


Next: , Previous: W0131, Up: Messages

6.112 W0132

6.112.1 Message body

An implicit type conversion from unsigned char to char.

6.112.2 Content

Under construction.

6.112.3 Sample code

extern void foo(char a);

void bar(unsigned char a)
{
    char b = a; /* W0132 */
    foo(a); /* W0132 */
}

6.112.4 Related message

6.112.5 Since

1.0.0


Next: , Previous: W0132, Up: Messages

6.113 W0133

6.113.1 Message body

An implicit type conversion from signed char to char.

6.113.2 Content

Under construction.

6.113.3 Sample code

extern void foo(char a);

void bar(signed char a)
{
    char b = a; /* W0133 */
    foo(a); /* W0133 */
}

6.113.4 Related message

6.113.5 Since

1.0.0


Next: , Previous: W0133, Up: Messages

6.114 W0134

6.114.1 Message body

An implicit type conversion from short to char.

6.114.2 Content

Under construction.

6.114.3 Sample code

extern void foo(char a);

void bar(short a)
{
    char b = a; /* W0134 */
    foo(a); /* W0134 */
}

6.114.4 Related message

6.114.5 Since

1.0.0


Next: , Previous: W0134, Up: Messages

6.115 W0135

6.115.1 Message body

An implicit type conversion from unsigned short to char.

6.115.2 Content

Under construction.

6.115.3 Sample code

extern void foo(char a);

void bar(unsigned short a)
{
    char b = a; /* W0135 */
    foo(a); /* W0135 */
}

6.115.4 Related message

6.115.5 Since

1.0.0


Next: , Previous: W0135, Up: Messages

6.116 W0136

6.116.1 Message body

An implicit type conversion from int to char.

6.116.2 Content

Under construction.

6.116.3 Sample code

extern void foo(char a);

void bar(int a)
{
    char b = a; /* W0136 */
    foo(a); /* W0136 */
}

6.116.4 Related message

6.116.5 Since

1.0.0


Next: , Previous: W0136, Up: Messages

6.117 W0137

6.117.1 Message body

An implicit type conversion from unsigned int to char.

6.117.2 Content

Under construction.

6.117.3 Sample code

extern void foo(char a);

void bar(unsigned int a)
{
    char b = a; /* W0137 */
    foo(a); /* W0137 */
}

6.117.4 Related message

6.117.5 Since

1.0.0


Next: , Previous: W0137, Up: Messages

6.118 W0138

6.118.1 Message body

An implicit type conversion from long to char.

6.118.2 Content

Under construction.

6.118.3 Sample code

extern void foo(char a);

void bar(long a)
{
    char b = a; /* W0138 */
    foo(a); /* W0138 */
}

6.118.4 Related message

6.118.5 Since

1.0.0


Next: , Previous: W0138, Up: Messages

6.119 W0139

6.119.1 Message body

An implicit type conversion from unsigned long to char.

6.119.2 Content

Under construction.

6.119.3 Sample code

extern void foo(char a);

void bar(unsigned long a)
{
    char b = a; /* W0139 */
    foo(a); /* W0139 */
}

6.119.4 Related message

6.119.5 Since

1.0.0


Next: , Previous: W0139, Up: Messages

6.120 W0140

6.120.1 Message body

An implicit type conversion from long long to char.

6.120.2 Content

Under construction.

6.120.3 Sample code

extern void foo(char a);

void bar(long long a)
{
    char b = a; /* W0140 */
    foo(a); /* W0140 */
}

6.120.4 Related message

6.120.5 Since

1.0.0


Next: , Previous: W0140, Up: Messages

6.121 W0141

6.121.1 Message body

An implicit type conversion from unsigned long long to char.

6.121.2 Content

Under construction.

6.121.3 Sample code

extern void foo(char a);

void bar(unsigned long long a)
{
    char b = a; /* W0141 */
    foo(a); /* W0141 */
}

6.121.4 Related message

6.121.5 Since

1.0.0


Next: , Previous: W0141, Up: Messages

6.122 W0142

6.122.1 Message body

An implicit type conversion from unsigned char to signed char.

6.122.2 Content

Under construction.

6.122.3 Sample code

extern void foo(signed char a);

void bar(unsigned char a)
{
    signed char b = a; /* W0142 */
    foo(a); /* W0142 */
}

6.122.4 Related message

6.122.5 Since

1.0.0


Next: , Previous: W0142, Up: Messages

6.123 W0143

6.123.1 Message body

An implicit type conversion from unsigned short to signed char.

6.123.2 Content

Under construction.

6.123.3 Sample code

extern void foo(signed char a);

void bar(unsigned short a)
{
    signed char b = a; /* W0143 */
    foo(a); /* W0143 */
}

6.123.4 Related message

6.123.5 Since

1.0.0


Next: , Previous: W0143, Up: Messages

6.124 W0144

6.124.1 Message body

An implicit type conversion from unsigned short to short.

6.124.2 Content

Under construction.

6.124.3 Sample code

extern void foo(short a);

void bar(unsigned short a)
{
    short b = a; /* W0144 */
    foo(a); /* W0144 */
}

6.124.4 Related message

6.124.5 Since

1.0.0


Next: , Previous: W0144, Up: Messages

6.125 W0145

6.125.1 Message body

An implicit type conversion from unsigned int to signed char.

6.125.2 Content

Under construction.

6.125.3 Sample code

extern void foo(signed char a);

void bar(unsigned int a)
{
    signed char b = a; /* W0145 */
    foo(a); /* W0145 */
}

6.125.4 Related message

6.125.5 Since

1.0.0


Next: , Previous: W0145, Up: Messages

6.126 W0146

6.126.1 Message body

An implicit type conversion from unsigned int to short.

6.126.2 Content

Under construction.

6.126.3 Sample code

extern void foo(short a);

void bar(unsigned int a)
{
    short b = a; /* W0146 */
    foo(a); /* W0146 */
}

6.126.4 Related message

6.126.5 Since

1.0.0


Next: , Previous: W0146, Up: Messages

6.127 W0147

6.127.1 Message body

An implicit type conversion from unsigned int to int.

6.127.2 Content

Under construction.

6.127.3 Sample code

extern void foo(int a);

void bar(unsigned int a)
{
    int b = a; /* W0147 */
    foo(a); /* W0147 */
}

6.127.4 Related message

6.127.5 Since

1.0.0


Next: , Previous: W0147, Up: Messages

6.128 W0148

6.128.1 Message body

An implicit type conversion from unsigned long to signed char.

6.128.2 Content

Under construction.

6.128.3 Sample code

extern void foo(signed char a);

void bar(unsigned long a)
{
    signed char b = a; /* W0148 */
    foo(a); /* W0148 */
}

6.128.4 Related message

6.128.5 Since

1.0.0


Next: , Previous: W0148, Up: Messages

6.129 W0149

6.129.1 Message body

An implicit type conversion from unsigned long to short.

6.129.2 Content

Under construction.

6.129.3 Sample code

extern void foo(short a);

void bar(unsigned long a)
{
    short b = a; /* W0149 */
    foo(a); /* W0149 */
}

6.129.4 Related message

6.129.5 Since

1.0.0


Next: , Previous: W0149, Up: Messages

6.130 W0150

6.130.1 Message body

An implicit type conversion from unsigned long to int.

6.130.2 Content

Under construction.

6.130.3 Sample code

extern void foo(int a);

void bar(unsigned long a)
{
    int b = a; /* W0150 */
    foo(a); /* W0150 */
}

6.130.4 Related message

6.130.5 Since

1.0.0


Next: , Previous: W0150, Up: Messages

6.131 W0151

6.131.1 Message body

An implicit type conversion from unsigned long to long.

6.131.2 Content

Under construction.

6.131.3 Sample code

extern void foo(long a);

void bar(unsigned long a)
{
    long b = a; /* W0151 */
    foo(a); /* W0151 */
}

6.131.4 Related message

6.131.5 Since

1.0.0


Next: , Previous: W0151, Up: Messages

6.132 W0152

6.132.1 Message body

An implicit type conversion from unsigned long long to signed char.

6.132.2 Content

Under construction.

6.132.3 Sample code

extern void foo(signed char a);

void bar(unsigned long long a)
{
    signed char b = a; /* W0152 */
    foo(a); /* W0152 */
}
.

6.132.4 Related message

6.132.5 Since

1.0.0


Next: , Previous: W0152, Up: Messages

6.133 W0153

6.133.1 Message body

An implicit type conversion from unsigned long long to short.

6.133.2 Content

Under construction.

6.133.3 Sample code

extern void foo(short a);

void bar(unsigned long long a)
{
    short b = a; /* W0153 */
    foo(a); /* W0153 */
}

6.133.4 Related message

6.133.5 Since

1.0.0


Next: , Previous: W0153, Up: Messages

6.134 W0154

6.134.1 Message body

An implicit type conversion from unsigned long long to int.

6.134.2 Content

Under construction.

6.134.3 Sample code

extern void foo(int a);

void bar(unsigned long long a)
{
    int b = a; /* W0154 */
    foo(a); /* W0154 */
}

6.134.4 Related message

6.134.5 Since

1.0.0


Next: , Previous: W0154, Up: Messages

6.135 W0155

6.135.1 Message body

An implicit type conversion from unsigned long long to long.

6.135.2 Content

Under construction.

6.135.3 Sample code

extern void foo(long a);

void bar(unsigned long long a)
{
    long b = a; /* W0155 */
    foo(a); /* W0155 */
}

6.135.4 Related message

6.135.5 Since

1.0.0


Next: , Previous: W0155, Up: Messages

6.136 W0156

6.136.1 Message body

An implicit type conversion from unsigned long long to long long.

6.136.2 Content

Under construction.

6.136.3 Sample code

extern void foo(long long a);

void bar(unsigned long long a)
{
    long long b = a; /* W0156 */
    foo(a); /* W0156 */
}

6.136.4 Related message

6.136.5 Since

1.0.0


Next: , Previous: W0156, Up: Messages

6.137 W0157

6.137.1 Message body

An implicit type conversion from signed char to unsigned char.

6.137.2 Content

Under construction.

6.137.3 Sample code

extern void foo(unsigned char a);

void bar(signed char a)
{
    unsigned char b = a; /* W0157 */
    foo(a); /* W0157 */
}

6.137.4 Related message

6.137.5 Since

1.0.0


Next: , Previous: W0157, Up: Messages

6.138 W0158

6.138.1 Message body

An implicit type conversion from signed char to unsigned short.

6.138.2 Content

Under construction.

6.138.3 Sample code

extern void foo(unsigned short a);

void bar(signed char a)
{
    unsigned short b = a; /* W0158 */
    foo(a); /* W0158 */
}

6.138.4 Related message

Under construction.

6.138.5 Since

1.0.0


Next: , Previous: W0158, Up: Messages

6.139 W0159

6.139.1 Message body

An implicit type conversion from signed char to unsigned int.

6.139.2 Content

Under construction.

6.139.3 Sample code

extern void foo(unsigned int a);

void bar(signed char a)
{
    unsigned int b = a; /* W0159 */
    foo(a); /* W0159 */
}

6.139.4 Related message

6.139.5 Since

1.0.0


Next: , Previous: W0159, Up: Messages

6.140 W0160

6.140.1 Message body

An implicit type conversion from signed char to unsigned long.

6.140.2 Content

Under construction.

6.140.3 Sample code

extern void foo(unsigned long a);

void bar(signed char a)
{
    unsigned long b = a; /* W0160 */
    foo(a); /* W0160 */
}

6.140.4 Related message

6.140.5 Since

1.0.0


Next: , Previous: W0160, Up: Messages

6.141 W0161

6.141.1 Message body

An implicit type conversion from short to unsigned char.

6.141.2 Content

Under construction.

6.141.3 Sample code

extern void foo(unsigned char a);

void bar(short a)
{
    unsigned char b = a; /* W0161 */
    foo(a); /* W0161 */
}

6.141.4 Related message

6.141.5 Since

1.0.0


Next: , Previous: W0161, Up: Messages

6.142 W0162

6.142.1 Message body

An implicit type conversion from short to unsigned short.

6.142.2 Content

Under construction.

6.142.3 Sample code

extern void foo(unsigned short a);

void bar(short a)
{
    unsigned short b = a; /* W0162 */
    foo(a); /* W0162 */
}

6.142.4 Related message

6.142.5 Since

1.0.0


Next: , Previous: W0162, Up: Messages

6.143 W0163

6.143.1 Message body

An implicit type conversion from short to unsigned int.

6.143.2 Content

Under construction.

6.143.3 Sample code

extern void foo(unsigned int a);

void bar(short a)
{
    unsigned int b = a; /* W0163 */
    foo(a); /* W0163 */
}

6.143.4 Related message

6.143.5 Since

1.0.0


Next: , Previous: W0163, Up: Messages

6.144 W0164

6.144.1 Message body

An implicit type conversion from short to unsigned long.

6.144.2 Content

Under construction.

6.144.3 Sample code

extern void foo(unsigned long a);

void bar(short a)
{
    unsigned long b = a; /* W0164 */
    foo(a); /* W0164 */
}

6.144.4 Related message

6.144.5 Since

1.0.0


Next: , Previous: W0164, Up: Messages

6.145 W0165

6.145.1 Message body

An implicit type conversion from int to unsigned char.

6.145.2 Content

Under construction.

6.145.3 Sample code

extern void foo(unsigned char a);

void bar(int a)
{
    unsigned char b = a; /* W0165 */
    foo(a); /* W0165 */
}

6.145.4 Related message

6.145.5 Since

1.0.0


Next: , Previous: W0165, Up: Messages

6.146 W0166

6.146.1 Message body

An implicit type conversion from int to unsigned short.

6.146.2 Content

Under construction.

6.146.3 Sample code

extern void foo(unsigned short a);

void bar(int a)
{
    unsigned short b = a; /* W0166 */
    foo(a); /* W0166 */
}

6.146.4 Related message

6.146.5 Since

1.0.0


Next: , Previous: W0166, Up: Messages

6.147 W0167

6.147.1 Message body

An implicit type conversion from int to unsigned int.

6.147.2 Content

Under construction.

6.147.3 Sample code

extern void foo(unsigned int a);

void bar(int a)
{
    unsigned int b = a; /* W0167 */
    foo(a); /* W0167 */
}

6.147.4 Related message

6.147.5 Since

1.0.0


Next: , Previous: W0167, Up: Messages

6.148 W0168

6.148.1 Message body

An implicit type conversion from int to unsigned long.

6.148.2 Content

Under construction.

6.148.3 Sample code

extern void foo(unsigned long a);

void bar(int a)
{
    unsigned long b = a; /* W0168 */
    foo(a); /* W0168 */
}

6.148.4 Related message

6.148.5 Since

1.0.0


Next: , Previous: W0168, Up: Messages

6.149 W0169

6.149.1 Message body

An implicit type conversion from long to unsigned char.

6.149.2 Content

Under construction.

6.149.3 Sample code

extern void foo(unsigned char a);

void bar(long a)
{
    unsigned char b = a; /* W0169 */
    foo(a); /* W0169 */
}

6.149.4 Related message

6.149.5 Since

1.0.0


Next: , Previous: W0169, Up: Messages

6.150 W0170

6.150.1 Message body

An implicit type conversion from long to unsigned char.

6.150.2 Content

Under construction.

6.150.3 Sample code

extern void foo(unsigned short a);

void bar(long a)
{
    unsigned short b = a; /* W0170 */
    foo(a); /* W0170 */
}

6.150.4 Related message

6.150.5 Since

1.0.0


Next: , Previous: W0170, Up: Messages

6.151 W0171

6.151.1 Message body

An implicit type conversion from long to unsigned int.

6.151.2 Content

Under construction.

6.151.3 Sample code

extern void foo(unsigned int a);

void bar(long a)
{
    unsigned int b = a; /* W0171 */
    foo(a); /* W0171 */
}

6.151.4 Related message

6.151.5 Since

1.0.0


Next: , Previous: W0171, Up: Messages

6.152 W0172

6.152.1 Message body

An implicit type conversion from long to unsigned long.

6.152.2 Content

Under construction.

6.152.3 Sample code

extern void foo(unsigned long a);

void bar(long a)
{
    unsigned long b = a; /* W0172 */
    foo(a); /* W0172 */
}

6.152.4 Related message

6.152.5 Since

1.0.0


Next: , Previous: W0172, Up: Messages

6.153 W0173

6.153.1 Message body

An implicit type conversion from signed char to unsigned long long.

6.153.2 Content

Under construction.

6.153.3 Sample code

extern void foo(unsigned long long a);

void bar(signed char a)
{
    unsigned long long b = a; /* W0173 */
    foo(a); /* W0173 */
}

6.153.4 Related message

6.153.5 Since

1.0.0


Next: , Previous: W0173, Up: Messages

6.154 W0174

6.154.1 Message body

An implicit type conversion from short to unsigned long long.

6.154.2 Content

Under construction.

6.154.3 Sample code

extern void foo(unsigned long long a);

void bar(short a)
{
    unsigned long long b = a; /* W0174 */
    foo(a); /* W0174 */
}

6.154.4 Related message

6.154.5 Since

1.0.0


Next: , Previous: W0174, Up: Messages

6.155 W0175

6.155.1 Message body

An implicit type conversion from int to unsigned long long.

6.155.2 Content

Under construction.

6.155.3 Sample code

extern void foo(unsigned long long a);

void bar(int a)
{
    unsigned long long b = a; /* W0175 */
    foo(a); /* W0175 */
}

6.155.4 Related message

6.155.5 Since

1.0.0


Next: , Previous: W0175, Up: Messages

6.156 W0176

6.156.1 Message body

An implicit type conversion from long to unsigned long long.

6.156.2 Content

Under construction.

6.156.3 Sample code

extern void foo(unsigned long long a);

void bar(long a)
{
    unsigned long long b = a; /* W0176 */
    foo(a); /* W0176 */
}

6.156.4 Related message

6.156.5 Since

1.0.0


Next: , Previous: W0176, Up: Messages

6.157 W0177

6.157.1 Message body

An implicit type conversion from long long to unsigned char.

6.157.2 Content

Under construction.

6.157.3 Sample code

extern void foo(unsigned char a);

void bar(long long a)
{
    unsigned char b = a; /* W0177 */
    foo(a); /* W0177 */
}

6.157.4 Related message

6.157.5 Since

1.0.0


Next: , Previous: W0177, Up: Messages

6.158 W0178

6.158.1 Message body

An implicit type conversion from long long to unsigned short.

6.158.2 Content

Under construction.

6.158.3 Sample code

extern void foo(unsigned short a);

void bar(long long a)
{
    unsigned short b = a; /* W0178 */
    foo(a); /* W0178 */
}

6.158.4 Related message

6.158.5 Since

1.0.0


Next: , Previous: W0178, Up: Messages

6.159 W0179

6.159.1 Message body

An implicit type conversion from long long to unsigned int.

6.159.2 Content

Under construction.

6.159.3 Sample code

extern void foo(unsigned int a);

void bar(long long a)
{
    unsigned int b = a; /* W0179 */
    foo(a); /* W0179 */
}

6.159.4 Related message

6.159.5 Since

1.0.0


Next: , Previous: W0179, Up: Messages

6.160 W0180

6.160.1 Message body

An implicit type conversion from long long to unsigned long.

6.160.2 Content

Under construction.

6.160.3 Sample code

extern void foo(unsigned long a);

void bar(long long a)
{
    unsigned long b = a; /* W0180 */
    foo(a); /* W0180 */
}

6.160.4 Related message

6.160.5 Since

1.0.0


Next: , Previous: W0180, Up: Messages

6.161 W0181

6.161.1 Message body

An implicit type conversion from long long to unsigned long long.

6.161.2 Content

Under construction.

6.161.3 Sample code

extern void foo(unsigned long long a);

void bar(long long a)
{
    unsigned long long b = a; /* W0181 */
    foo(a); /* W0181 */
}

6.161.4 Related message

6.161.5 Since

1.0.0


Next: , Previous: W0181, Up: Messages

6.162 W0182

6.162.1 Message body

An implicit type conversion from unsigned char to float.

6.162.2 Content

Under construction.

6.162.3 Sample code

extern void foo(float a);

void bar(unsigned char a)
{
    float b = a; /* W0182 */
    foo(a); /* W0182 */
}

6.162.4 Related message

6.162.5 Since

1.0.0


Next: , Previous: W0182, Up: Messages

6.163 W0183

6.163.1 Message body

An implicit type conversion from unsigned char to double.

6.163.2 Content

Under construction.

6.163.3 Sample code

extern void foo(double a);

void bar(unsigned char a)
{
    double b = a; /* W0183 */
    foo(a); /* W0183 */
}

6.163.4 Related message

6.163.5 Since

1.0.0


Next: , Previous: W0183, Up: Messages

6.164 W0184

6.164.1 Message body

An implicit type conversion from unsigned char to long double.

6.164.2 Content

Under construction.

6.164.3 Sample code

extern void foo(long double a);

void bar(unsigned char a)
{
    long double b = a; /* W0184 */
    foo(a); /* W0184 */
}

6.164.4 Related message

6.164.5 Since

1.0.0


Next: , Previous: W0184, Up: Messages

6.165 W0185

6.165.1 Message body

An implicit type conversion from signed char to float.

6.165.2 Content

Under construction.

6.165.3 Sample code

extern void foo(float a);

void bar(signed char a)
{
    float b = a; /* W0185 */
    foo(a); /* W0185 */
}

6.165.4 Related message

6.165.5 Since

1.0.0


Next: , Previous: W0185, Up: Messages

6.166 W0186

6.166.1 Message body

An implicit type conversion from signed char to double.

6.166.2 Content

Under construction.

6.166.3 Sample code

extern void foo(double a);

void bar(signed char a)
{
    double b = a; /* W0186 */
    foo(a); /* W0186 */
}

6.166.4 Related message

6.166.5 Since

1.0.0


Next: , Previous: W0186, Up: Messages

6.167 W0187

6.167.1 Message body

An implicit type conversion from signed char to long double.

6.167.2 Content

Under construction.

6.167.3 Sample code

extern void foo(long double a);

void bar(signed char a)
{
    long double b = a; /* W0187 */
    foo(a); /* W0187 */
}

6.167.4 Related message

6.167.5 Since

1.0.0


Next: , Previous: W0187, Up: Messages

6.168 W0188

6.168.1 Message body

An implicit type conversion from short to float.

6.168.2 Content

Under construction.

6.168.3 Sample code

extern void foo(float a);

void bar(short a)
{
    float b = a; /* W0188 */
    foo(a); /* W0188 */
}

6.168.4 Related message

6.168.5 Since

1.0.0


Next: , Previous: W0188, Up: Messages

6.169 W0189

6.169.1 Message body

An implicit type conversion from short to double.

6.169.2 Content

Under construction.

6.169.3 Sample code

extern void foo(double a);

void bar(short a)
{
    double b = a; /* W0189 */
    foo(a); /* W0189 */
}

6.169.4 Related message

6.169.5 Since

1.0.0


Next: , Previous: W0189, Up: Messages

6.170 W0190

6.170.1 Message body

An implicit type conversion from short to long double.

6.170.2 Content

Under construction.

6.170.3 Sample code

extern void foo(long double a);

void bar(short a)
{
    long double b = a; /* W0190 */
    foo(a); /* W0190 */
}

6.170.4 Related message

6.170.5 Since

1.0.0


Next: , Previous: W0190, Up: Messages

6.171 W0191

6.171.1 Message body

An implicit type conversion from unsigned short to float.

6.171.2 Content

Under construction.

6.171.3 Sample code

extern void foo(float a);

void bar(unsigned short a)
{
    float b = a; /* W0191 */
    foo(a); /* W0191 */
}

6.171.4 Related message

6.171.5 Since

1.0.0


Next: , Previous: W0191, Up: Messages

6.172 W0192

6.172.1 Message body

An implicit type conversion from unsigned short to double.

6.172.2 Content

Under construction.

6.172.3 Sample code

extern void foo(double a);

void bar(unsigned short a)
{
    double b = a; /* W0192 */
    foo(a); /* W0192 */
}

6.172.4 Related message

6.172.5 Since

1.0.0


Next: , Previous: W0192, Up: Messages

6.173 W0193

6.173.1 Message body

An implicit type conversion from unsigned short to long double.

6.173.2 Content

Under construction.

6.173.3 Sample code

extern void foo(long double a);

void bar(unsigned short a)
{
    long double b = a; /* W0193 */
    foo(a); /* W0193 */
}

6.173.4 Related message

6.173.5 Since

1.0.0


Next: , Previous: W0193, Up: Messages

6.174 W0194

6.174.1 Message body

An implicit type conversion from int to float.

6.174.2 Content

Under construction.

6.174.3 Sample code

extern void foo(float a);

void bar(int a)
{
    float b = a; /* W0194 */
    foo(a); /* W0194 */
}

6.174.4 Related message

6.174.5 Since

1.0.0


Next: , Previous: W0194, Up: Messages

6.175 W0195

6.175.1 Message body

An implicit type conversion from int to double.

6.175.2 Content

Under construction.

6.175.3 Sample code

extern void foo(double a);

void bar(int a)
{
    double b = a; /* W0195 */
    foo(a); /* W0195 */
}

6.175.4 Related message

6.175.5 Since

1.0.0


Next: , Previous: W0195, Up: Messages

6.176 W0196

6.176.1 Message body

An implicit type conversion from int to long double.

6.176.2 Content

Under construction.

6.176.3 Sample code

extern void foo(long double a);

void bar(int a)
{
    long double b = a; /* W0196 */
    foo(a); /* W0196 */
}

6.176.4 Related message

6.176.5 Since

1.0.0


Next: , Previous: W0196, Up: Messages

6.177 W0197

6.177.1 Message body

An implicit type conversion from unsigned int to float.

6.177.2 Content

Under construction.

6.177.3 Sample code

extern void foo(float a);

void bar(unsigned int a)
{
    float b = a; /* W0197 */
    foo(a); /* W0197 */
}

6.177.4 Related message

6.177.5 Since

1.0.0


Next: , Previous: W0197, Up: Messages

6.178 W0198

6.178.1 Message body

An implicit type conversion from unsigned int to double.

6.178.2 Content

Under construction.

6.178.3 Sample code

extern void foo(double a);

void bar(unsigned int a)
{
    double b = a; /* W0198 */
    foo(a); /* W0198 */
}

6.178.4 Related message

6.178.5 Since

1.0.0


Next: , Previous: W0198, Up: Messages

6.179 W0199

6.179.1 Message body

An implicit type conversion from unsigned int to long double.

6.179.2 Content

Under construction.

6.179.3 Sample code

extern void foo(long double a);

void bar(unsigned int a)
{
    long double b = a; /* W0199 */
    foo(a); /* W0199 */
}

6.179.4 Related message

6.179.5 Since

1.0.0


Next: , Previous: W0199, Up: Messages

6.180 W0200

6.180.1 Message body

An implicit type conversion from long to float.

6.180.2 Content

Under construction.

6.180.3 Sample code

extern void foo(float a);

void bar(long a)
{
    float b = a; /* W0200 */
    foo(a); /* W0200 */
}

6.180.4 Related message

6.180.5 Since

1.0.0


Next: , Previous: W0200, Up: Messages

6.181 W0201

6.181.1 Message body

An implicit type conversion from long to double.

6.181.2 Content

Under construction.

6.181.3 Sample code

extern void foo(double a);

void bar(long a)
{
    double b = a; /* W0201 */
    foo(a); /* W0201 */
}

6.181.4 Related message

6.181.5 Since

1.0.0


Next: , Previous: W0201, Up: Messages

6.182 W0202

6.182.1 Message body

An implicit type conversion from long to long double.

6.182.2 Content

Under construction.

6.182.3 Sample code

extern void foo(long double a);

void bar(long a)
{
    long double b = a; /* W0202 */
    foo(a); /* W0202 */
}

6.182.4 Related message

6.182.5 Since

1.0.0


Next: , Previous: W0202, Up: Messages

6.183 W0203

6.183.1 Message body

An implicit type conversion from unsigned long to float.

6.183.2 Content

Under construction.

6.183.3 Sample code

extern void foo(float a);

void bar(unsigned long a)
{
    float b = a; /* W0203 */
    foo(a); /* W0203 */
}

6.183.4 Related message

6.183.5 Since

1.0.0


Next: , Previous: W0203, Up: Messages

6.184 W0204

6.184.1 Message body

An implicit type conversion from unsigned long to double.

6.184.2 Content

Under construction.

6.184.3 Sample code

extern void foo(double a);

void bar(unsigned long a)
{
    double b = a; /* W0204 */
    foo(a); /* W0204 */
}

6.184.4 Related message

6.184.5 Since

1.0.0


Next: , Previous: W0204, Up: Messages

6.185 W0205

6.185.1 Message body

An implicit type conversion from unsigned long to long double.

6.185.2 Content

Under construction.

6.185.3 Sample code

extern void foo(long double a);

void bar(unsigned long a)
{
    long double b = a; /* W0205 */
    foo(a); /* W0205 */
}

6.185.4 Related message

6.185.5 Since

1.0.0


Next: , Previous: W0205, Up: Messages

6.186 W0206

6.186.1 Message body

An implicit type conversion from unsigned long to long double.

6.186.2 Content

Under construction.

6.186.3 Sample code

extern void foo(float a);

void bar(long long a)
{
    float b = a; /* W0206 */
    foo(a); /* W0206 */
}

6.186.4 Related message

6.186.5 Since

1.0.0


Next: , Previous: W0206, Up: Messages

6.187 W0207

6.187.1 Message body

An implicit type conversion from unsigned long to long double.

6.187.2 Content

Under construction.

6.187.3 Sample code

extern void foo(double a);

void bar(long long a)
{
    double b = a; /* W0207 */
    foo(a); /* W0207 */
}

6.187.4 Related message

6.187.5 Since

1.0.0


Next: , Previous: W0207, Up: Messages

6.188 W0208

6.188.1 Message body

An implicit type conversion from long long to long double.

6.188.2 Content

Under construction.

6.188.3 Sample code

extern void foo(long double a);

void bar(long long a)
{
    long double b = a; /* W0208 */
    foo(a); /* W0208 */
}

6.188.4 Related message

6.188.5 Since

1.0.0


Next: , Previous: W0208, Up: Messages

6.189 W0209

6.189.1 Message body

An implicit type conversion from unsigned long long to float.

6.189.2 Content

Under construction.

6.189.3 Sample code

extern void foo(float a);

void bar(unsigned long long a)
{
    float b = a; /* W0209 */
    foo(a); /* W0209 */
}

6.189.4 Related message

6.189.5 Since

1.0.0


Next: , Previous: W0209, Up: Messages

6.190 W0210

6.190.1 Message body

An implicit type conversion from unsigned long long to double.

6.190.2 Content

Under construction.

6.190.3 Sample code

extern void foo(double a);

void bar(unsigned long long a)
{
    double b = a; /* W0210 */
    foo(a); /* W0210 */
}

6.190.4 Related message

6.190.5 Since

1.0.0


Next: , Previous: W0210, Up: Messages

6.191 W0211

6.191.1 Message body

An implicit type conversion from unsigned long long to long double.

6.191.2 Content

Under construction.

6.191.3 Sample code

extern void foo(long double a);

void bar(unsigned long long a)
{
    long double b = a; /* W0211 */
    foo(a); /* W0211 */
}

6.191.4 Related message

6.191.5 Since

1.0.0


Next: , Previous: W0211, Up: Messages

6.192 W0212

6.192.1 Message body

An implicit type conversion from unsigned long long to long double.

6.192.2 Content

Under construction.

6.192.3 Sample code

extern void foo(char a);

void bar(float a)
{
    char b = a; /* W0212 */
    foo(a); /* W0212 */
}

6.192.4 Related message

6.192.5 Since

1.0.0


Next: , Previous: W0212, Up: Messages

6.193 W0213

6.193.1 Message body

An implicit type conversion from float to signed char.

6.193.2 Content

Under construction.

6.193.3 Sample code

extern void foo(signed char a);

void bar(float a)
{
    signed char b = a; /* W0213 */
    foo(a); /* W0213 */
}

6.193.4 Related message

6.193.5 Since

1.0.0


Next: , Previous: W0213, Up: Messages

6.194 W0214

6.194.1 Message body

An implicit type conversion from float to unsigned char.

6.194.2 Content

Under construction.

6.194.3 Sample code

extern void foo(unsigned char a);

void bar(float a)
{
    unsigned char b = a; /* W0214 */
    foo(a); /* W0214 */
}

6.194.4 Related message

6.194.5 Since

1.0.0


Next: , Previous: W0214, Up: Messages

6.195 W0215

6.195.1 Message body

An implicit type conversion from float to short.

6.195.2 Content

Under construction.

6.195.3 Sample code

extern void foo(short a);

void bar(float a)
{
    short b = a; /* W0215 */
    foo(a); /* W0215 */
}

6.195.4 Related message

6.195.5 Since

1.0.0


Next: , Previous: W0215, Up: Messages

6.196 W0216

6.196.1 Message body

An implicit type conversion from float to unsigned short.

6.196.2 Content

Under construction.

6.196.3 Sample code

extern void foo(unsigned short a);

void bar(float a)
{
    unsigned short b = a; /* W0216 */
    foo(a); /* W0216 */
}

6.196.4 Related message

6.196.5 Since

1.0.0


Next: , Previous: W0216, Up: Messages

6.197 W0217

6.197.1 Message body

An implicit type conversion from float to int.

6.197.2 Content

Under construction.

6.197.3 Sample code

extern void foo(int a);

void bar(float a)
{
    int b = a; /* W0217 */
    foo(a); /* W0217 */
}

6.197.4 Related message

6.197.5 Since

1.0.0


Next: , Previous: W0217, Up: Messages

6.198 W0218

6.198.1 Message body

An implicit type conversion from float to unsigned int.

6.198.2 Content

Under construction.

6.198.3 Sample code

extern void foo(unsigned int a);

void bar(float a)
{
    unsigned int b = a; /* W0218 */
    foo(a); /* W0218 */
}

6.198.4 Related message

6.198.5 Since

1.0.0


Next: , Previous: W0218, Up: Messages

6.199 W0219

6.199.1 Message body

An implicit type conversion from float to long.

6.199.2 Content

Under construction.

6.199.3 Sample code

extern void foo(long a);

void bar(float a)
{
    long b = a; /* W0219 */
    foo(a); /* W0219 */
}

6.199.4 Related message

6.199.5 Since

1.0.0


Next: , Previous: W0219, Up: Messages

6.200 W0220

6.200.1 Message body

An implicit type conversion from float to unsigned long.

6.200.2 Content

Under construction.

6.200.3 Sample code

extern void foo(unsigned long a);

void bar(float a)
{
    unsigned long b = a; /* W0220 */
    foo(a); /* W0220 */
}

6.200.4 Related message

6.200.5 Since

1.0.0


Next: , Previous: W0220, Up: Messages

6.201 W0221

6.201.1 Message body

An implicit type conversion from double to char.

6.201.2 Content

Under construction.

6.201.3 Sample code

extern void foo(char a);

void bar(double a)
{
    char b = a; /* W0221 */
    foo(a); /* W0221 */
}

6.201.4 Related message

6.201.5 Since

1.0.0


Next: , Previous: W0221, Up: Messages

6.202 W0222

6.202.1 Message body

An implicit type conversion from double to signed char.

6.202.2 Content

Under construction.

6.202.3 Sample code

extern void foo(signed char a);

void bar(double a)
{
    signed char b = a; /* W0222 */
    foo(a); /* W0222 */
}

6.202.4 Related message

6.202.5 Since

1.0.0


Next: , Previous: W0222, Up: Messages

6.203 W0223

6.203.1 Message body

An implicit type conversion from double to unsigned char.

6.203.2 Content

Under construction.

6.203.3 Sample code

extern void foo(unsigned char a);

void bar(double a)
{
    unsigned char b = a; /* W0223 */
    foo(a); /* W0223 */
}

6.203.4 Related message

6.203.5 Since

1.0.0


Next: , Previous: W0223, Up: Messages

6.204 W0224

6.204.1 Message body

An implicit type conversion from double to short.

6.204.2 Content

Under construction.

6.204.3 Sample code

extern void foo(short a);

void bar(double a)
{
    short b = a; /* W0224 */
    foo(a); /* W0224 */
}

6.204.4 Related message

6.204.5 Since

1.0.0


Next: , Previous: W0224, Up: Messages

6.205 W0225

6.205.1 Message body

An implicit type conversion from double to unsigned short.

6.205.2 Content

Under construction.

6.205.3 Sample code

extern void foo(unsigned short a);

void bar(double a)
{
    unsigned short b = a; /* W0225 */
    foo(a); /* W0225 */
}

6.205.4 Related message

6.205.5 Since

1.0.0


Next: , Previous: W0225, Up: Messages

6.206 W0226

6.206.1 Message body

An implicit type conversion from double to int.

6.206.2 Content

Under construction.

6.206.3 Sample code

extern void foo(int a);

void bar(double a)
{
    int b = a; /* W0226 */
    foo(a); /* W0226 */
}

6.206.4 Related message

6.206.5 Since

1.0.0


Next: , Previous: W0226, Up: Messages

6.207 W0227

6.207.1 Message body

An implicit type conversion from double to unsigned int.

6.207.2 Content

Under construction.

6.207.3 Sample code

extern void foo(unsigned int a);

void bar(double a)
{
    unsigned int b = a; /* W0227 */
    foo(a); /* W0227 */
}

6.207.4 Related message

6.207.5 Since

1.0.0


Next: , Previous: W0227, Up: Messages

6.208 W0228

6.208.1 Message body

An implicit type conversion from double to long.

6.208.2 Content

Under construction.

6.208.3 Sample code

extern void foo(long a);

void bar(double a)
{
    long b = a; /* W0228 */
    foo(a); /* W0228 */
}

6.208.4 Related message

6.208.5 Since

1.0.0


Next: , Previous: W0228, Up: Messages

6.209 W0229

6.209.1 Message body

An implicit type conversion from double to unsigned long.

6.209.2 Content

Under construction.

6.209.3 Sample code

extern void foo(unsigned long a);

void bar(double a)
{
    unsigned long b = a; /* W0229 */
    foo(a); /* W0229 */
}

6.209.4 Related message

6.209.5 Since

1.0.0


Next: , Previous: W0229, Up: Messages

6.210 W0230

6.210.1 Message body

An implicit type conversion from long double to char.

6.210.2 Content

Under construction.

6.210.3 Sample code

extern void foo(char a);

void bar(long double a)
{
    char b = a; /* W0230 */
    foo(a); /* W0230 */
}

6.210.4 Related message

6.210.5 Since

1.0.0


Next: , Previous: W0230, Up: Messages

6.211 W0231

6.211.1 Message body

An implicit type conversion from long double to signed char.

6.211.2 Content

Under construction.

6.211.3 Sample code

extern void foo(signed char a);

void bar(long double a)
{
    signed char b = a; /* W0231 */
    foo(a); /* W0231 */
}

6.211.4 Related message

6.211.5 Since

1.0.0


Next: , Previous: W0231, Up: Messages

6.212 W0232

6.212.1 Message body

An implicit type conversion from long double to unsigned char.

6.212.2 Content

Under construction.

6.212.3 Sample code

extern void foo(unsigned char a);

void bar(long double a)
{
    unsigned char b = a; /* W0232 */
    foo(a); /* W0232 */
}

6.212.4 Related message

6.212.5 Since

1.0.0


Next: , Previous: W0232, Up: Messages

6.213 W0233

6.213.1 Message body

An implicit type conversion from long double to short.

6.213.2 Content

Under construction.

6.213.3 Sample code

extern void foo(short a);

void bar(long double a)
{
    short b = a; /* W0233 */
    foo(a); /* W0233 */
}

6.213.4 Related message

6.213.5 Since

1.0.0


Next: , Previous: W0233, Up: Messages

6.214 W0234

6.214.1 Message body

An implicit type conversion from long double to unsigned short.

6.214.2 Content

Under construction.

6.214.3 Sample code

extern void foo(unsigned short a);

void bar(long double a)
{
    unsigned short b = a; /* W0234 */
    foo(a); /* W0234 */
}

6.214.4 Related message

6.214.5 Since

1.0.0


Next: , Previous: W0234, Up: Messages

6.215 W0235

6.215.1 Message body

An implicit type conversion from long double to int.

6.215.2 Content

Under construction.

6.215.3 Sample code

extern void foo(int a);

void bar(long double a)
{
    int b = a; /* W0235 */
    foo(a); /* W0235 */
}

6.215.4 Related message

6.215.5 Since

1.0.0


Next: , Previous: W0235, Up: Messages

6.216 W0236

6.216.1 Message body

An implicit type conversion from long double to unsigned int.

6.216.2 Content

Under construction.

6.216.3 Sample code

extern void foo(unsigned int a);

void bar(long double a)
{
    unsigned int b = a; /* W0236 */
    foo(a); /* W0236 */
}

6.216.4 Related message

6.216.5 Since

1.0.0


Next: , Previous: W0236, Up: Messages

6.217 W0237

6.217.1 Message body

An implicit type conversion from long double to long.

6.217.2 Content

Under construction.

6.217.3 Sample code

extern void foo(long a);

void bar(long double a)
{
    long b = a; /* W0237 */
    foo(a); /* W0237 */
}

6.217.4 Related message

6.217.5 Since

1.0.0


Next: , Previous: W0237, Up: Messages

6.218 W0238

6.218.1 Message body

An implicit type conversion from long double to unsigned long.

6.218.2 Content

Under construction.

6.218.3 Sample code

extern void foo(unsigned long a);

void bar(long double a)
{
    unsigned long b = a; /* W0238 */
    foo(a); /* W0238 */
}

6.218.4 Related message

6.218.5 Since

1.0.0


Next: , Previous: W0238, Up: Messages

6.219 W0239

6.219.1 Message body

An implicit type conversion from float to long long.

6.219.2 Content

Under construction.

6.219.3 Sample code

extern void foo(long long a);

void bar(float a)
{
    long long b = a; /* W0239 */
    foo(a); /* W0239 */
}

6.219.4 Related message

6.219.5 Since

1.0.0


Next: , Previous: W0239, Up: Messages

6.220 W0240

6.220.1 Message body

An implicit type conversion from float to unsigned long long.

6.220.2 Content

Under construction.

6.220.3 Sample code

extern void foo(unsigned long long a);

void bar(float a)
{
    unsigned long long b = a; /* W0240 */
    foo(a); /* W0240 */
}

6.220.4 Related message

6.220.5 Since

1.0.0


Next: , Previous: W0240, Up: Messages

6.221 W0241

6.221.1 Message body

An implicit type conversion from double to long long.

6.221.2 Content

Under construction.

6.221.3 Sample code

extern void foo(long long a);

void bar(float a)
{
    long long b = a; /* W0241 */
    foo(a); /* W0241 */
}

6.221.4 Related message

6.221.5 Since

1.0.0


Next: , Previous: W0241, Up: Messages

6.222 W0242

6.222.1 Message body

An implicit type conversion from double to unsigned long long.

6.222.2 Content

Under construction.

6.222.3 Sample code

extern void foo(unsigned long long a);

void bar(double a)
{
    unsigned long long b = a; /* W0242 */
    foo(a); /* W0242 */
}

6.222.4 Related message

6.222.5 Since

1.0.0


Next: , Previous: W0242, Up: Messages

6.223 W0243

6.223.1 Message body

An implicit type conversion from long double to long long.

6.223.2 Content

Under construction.

6.223.3 Sample code

extern void foo(long long a);

void bar(long double a)
{
    long long b = a; /* W0243 */
    foo(a); /* W0243 */
}

6.223.4 Related message

6.223.5 Since

1.0.0


Next: , Previous: W0243, Up: Messages

6.224 W0244

6.224.1 Message body

An implicit type conversion from long double to unsigned long long.

6.224.2 Content

Under construction.

6.224.3 Sample code

extern void foo(unsigned long long a);

void bar(long double a)
{
    unsigned long long b = a; /* W0244 */
    foo(a); /* W0244 */
}

6.224.4 Related message

6.224.5 Since

1.0.0


Next: , Previous: W0244, Up: Messages

6.225 W0245

6.225.1 Message body

An implicit type conversion from unsigned char to short.

6.225.2 Content

Under construction.

6.225.3 Sample code

extern void foo(short a);

void bar(unsigned char a)
{
    short b = a; /* W0245 */
    foo(a); /* W0245 */
}

6.225.4 Related message

6.225.5 Since

1.0.0


Next: , Previous: W0245, Up: Messages

6.226 W0246

6.226.1 Message body

An implicit type conversion from unsigned char to int.

6.226.2 Content

Under construction.

6.226.3 Sample code

extern void foo(int a);

void bar(unsigned char a)
{
    int b = a; /* W0246 */
    foo(a); /* W0246 */
}

6.226.4 Related message

6.226.5 Since

1.0.0


Next: , Previous: W0246, Up: Messages

6.227 W0247

6.227.1 Message body

An implicit type conversion from unsigned char to long.

6.227.2 Content

Under construction.

6.227.3 Sample code

extern void foo(long a);

void bar(unsigned char a)
{
    long b = a; /* W0247 */
    foo(a); /* W0247 */
}

6.227.4 Related message

6.227.5 Since

1.0.0


Next: , Previous: W0247, Up: Messages

6.228 W0248

6.228.1 Message body

An implicit type conversion from unsigned short to int.

6.228.2 Content

Under construction.

6.228.3 Sample code

extern void foo(int a);

void bar(unsigned short a)
{
    int b = a; /* W0248 */
    foo(a); /* W0248 */
}

6.228.4 Related message

6.228.5 Since

1.0.0


Next: , Previous: W0248, Up: Messages

6.229 W0249

6.229.1 Message body

An implicit type conversion from unsigned short to long.

6.229.2 Content

Under construction.

6.229.3 Sample code

extern void foo(long a);

void bar(unsigned short a)
{
    long b = a; /* W0249 */
    foo(a); /* W0249 */
}

6.229.4 Related message

6.229.5 Since

1.0.0


Next: , Previous: W0249, Up: Messages

6.230 W0250

6.230.1 Message body

An implicit type conversion from unsigned int to long.

6.230.2 Content

Under construction.

6.230.3 Sample code

extern void foo(long a);

void bar(unsigned int a)
{
    long b = a; /* W0250 */
    foo(a); /* W0250 */
}

6.230.4 Related message

6.230.5 Since

1.0.0


Next: , Previous: W0250, Up: Messages

6.231 W0251

6.231.1 Message body

An implicit type conversion from unsigned char to long long.

6.231.2 Content

Under construction.

6.231.3 Sample code

extern void foo(long long a);

void bar(unsigned char a)
{
    long long b = a; /* W0251 */
    foo(a); /* W0251 */
}

6.231.4 Related message

6.231.5 Since

1.0.0


Next: , Previous: W0251, Up: Messages

6.232 W0252

6.232.1 Message body

An implicit type conversion from unsigned short to long long.

6.232.2 Content

Under construction.

6.232.3 Sample code

extern void foo(long long a);

void bar(unsigned short a)
{
    long long b = a; /* W0252 */
    foo(a); /* W0252 */
}

6.232.4 Related message

6.232.5 Since

1.0.0


Next: , Previous: W0252, Up: Messages

6.233 W0253

6.233.1 Message body

An implicit type conversion from unsigned int to long long.

6.233.2 Content

Under construction.

6.233.3 Sample code

extern void foo(long long a);

void bar(unsigned int a)
{
    long long b = a; /* W0253 */
    foo(a); /* W0253 */
}

6.233.4 Related message

6.233.5 Since

1.0.0


Next: , Previous: W0253, Up: Messages

6.234 W0254

6.234.1 Message body

An implicit type conversion from unsigned long to long long.

6.234.2 Content

Under construction.

6.234.3 Sample code

extern void foo(long long a);

void bar(unsigned long a)
{
    long long b = a; /* W0254 */
    foo(a); /* W0254 */
}

6.234.4 Related message

6.234.5 Since

1.0.0


Next: , Previous: W0254, Up: Messages

6.235 W0255

6.235.1 Message body

A value of char type is returned from `signed char %s()' function.

6.235.2 Content

Under construction.

6.235.3 Sample code

signed char func(void)
{
    char a = 0;
    return a; /* W0255 */
}

6.235.4 Related message

6.235.5 Since

1.0.0


Next: , Previous: W0255, Up: Messages

6.236 W0256

6.236.1 Message body

A value of char type is returned from `unsigned char %s()' function.

6.236.2 Content

Under construction.

6.236.3 Sample code

unsigned char func(void)
{
    char a = 0;
    return a; /* W0256 */
}

6.236.4 Related message

6.236.5 Since

1.0.0


Next: , Previous: W0256, Up: Messages

6.237 W0257

6.237.1 Message body

A value of char type is returned from `short %s()' function.

6.237.2 Content

Under construction.

6.237.3 Sample code

short func(void)
{
    char a = 0;
    return a; /* W0257 */
}

6.237.4 Related message

6.237.5 Since

1.0.0


Next: , Previous: W0257, Up: Messages

6.238 W0258

6.238.1 Message body

A value of char type is returned from `unsigned short %s()' function.

6.238.2 Content

Under construction.

6.238.3 Sample code

unsigned short func(void)
{
    char a = 0;
    return a; /* W0258 */
}

6.238.4 Related message

6.238.5 Since

1.0.0


Next: , Previous: W0258, Up: Messages

6.239 W0259

6.239.1 Message body

A value of char type is returned from `int %s()' function.

6.239.2 Content

Under construction.

6.239.3 Sample code

int func(void)
{
    char a = 0;
    return a; /* W0259 */
}

6.239.4 Related message

6.239.5 Since

1.0.0


Next: , Previous: W0259, Up: Messages

6.240 W0260

6.240.1 Message body

A value of char type is returned from `unsigned int %s()' function.

6.240.2 Content

Under construction.

6.240.3 Sample code

unsigned int func(void)
{
    char a = 0;
    return a; /* W0260 */
}

6.240.4 Related message

6.240.5 Since

1.0.0


Next: , Previous: W0260, Up: Messages

6.241 W0261

6.241.1 Message body

A value of char type is returned from `long %s()' function.

6.241.2 Content

Under construction.

6.241.3 Sample code

long func(void)
{
    char a = 0;
    return a; /* W0261 */
}

6.241.4 Related message

6.241.5 Since

1.0.0


Next: , Previous: W0261, Up: Messages

6.242 W0262

6.242.1 Message body

A value of char type is returned from `unsigned long %s()' function.

6.242.2 Content

Under construction.

6.242.3 Sample code

unsigned long func(void)
{
    char a = 0;
    return a; /* W0262 */
}

6.242.4 Related message

6.242.5 Since

1.0.0


Next: , Previous: W0262, Up: Messages

6.243 W0263

6.243.1 Message body

A value of char type is returned from `float %s()' function.

6.243.2 Content

Under construction.

6.243.3 Sample code

float func(void)
{
    char a = 0;
    return a; /* W0263 */
}

6.243.4 Related message

6.243.5 Since

1.0.0


Next: , Previous: W0263, Up: Messages

6.244 W0264

6.244.1 Message body

A value of char type is returned from `double %s()' function.

6.244.2 Content

Under construction.

6.244.3 Sample code

double func(void)
{
    char a = 0;
    return a; /* W0264 */
}

6.244.4 Related message

6.244.5 Since

1.0.0


Next: , Previous: W0264, Up: Messages

6.245 W0265

6.245.1 Message body

A value of char type is returned from `long double %s()' function.

6.245.2 Content

Under construction.

6.245.3 Sample code

long double func(void)
{
    char a = 0;
    return a; /* W0265 */
}

6.245.4 Related message

6.245.5 Since

1.0.0


Next: , Previous: W0265, Up: Messages

6.246 W0266

6.246.1 Message body

A value of char type is returned from `long long %s()' function.

6.246.2 Content

Under construction.

6.246.3 Sample code

long long func(void)
{
    char a = 0;
    return a; /* W0266 */
}

6.246.4 Related message

6.246.5 Since

1.0.0


Next: , Previous: W0266, Up: Messages

6.247 W0267

6.247.1 Message body

A value of char type is returned from `unsigned long long %s()' function.

6.247.2 Content

Under construction.

6.247.3 Sample code

unsigned long long func(void)
{
    char a = 0;
    return a; /* W0267 */
}

6.247.4 Related message

6.247.5 Since

1.0.0


Next: , Previous: W0267, Up: Messages

6.248 W0268

6.248.1 Message body

A value of unsigned char type is returned from`char %s()' function.

6.248.2 Content

Under construction.

6.248.3 Sample code

char func(void)
{
    unsigned char a = 0;
    return a; /* W0268 */
}

6.248.4 Related message

6.248.5 Since

1.0.0


Next: , Previous: W0268, Up: Messages

6.249 W0269

6.249.1 Message body

A value of signed char type is returned from`char %s()' function.

6.249.2 Content

Under construction.

6.249.3 Sample code

char func(void)
{
    signed char a = 0;
    return a; /* W0269 */
}

6.249.4 Related message

6.249.5 Since

1.0.0


Next: , Previous: W0269, Up: Messages

6.250 W0270

6.250.1 Message body

A value of short type is returned from `char %s()' function.

6.250.2 Content

Under construction.

6.250.3 Sample code

char func(void)
{
    short a = 0;
    return a; /* W0270 */
}

6.250.4 Related message

6.250.5 Since

1.0.0


Next: , Previous: W0270, Up: Messages

6.251 W0271

6.251.1 Message body

A value of unsigned short type is returned from `char %s()' function.

6.251.2 Content

Under construction.

6.251.3 Sample code

char func(void)
{
    unsigned short a = 0;
    return a; /* W0271 */
}

6.251.4 Related message

6.251.5 Since

1.0.0


Next: , Previous: W0271, Up: Messages

6.252 W0272

6.252.1 Message body

A value of int type is returned from `char %s()' function.

6.252.2 Content

Under construction.

6.252.3 Sample code

char func(void)
{
    int a = 0;
    return a; /* W0272 */
}

6.252.4 Related message

6.252.5 Since

1.0.0


Next: , Previous: W0272, Up: Messages

6.253 W0273

6.253.1 Message body

A value of unsigned int type is returned from `char %s()' function.

6.253.2 Content

Under construction.

6.253.3 Sample code

char func(void)
{
    unsigned int a = 0;
    return a; /* W0273 */
}

6.253.4 Related message

6.253.5 Since

1.0.0


Next: , Previous: W0273, Up: Messages

6.254 W0274

6.254.1 Message body

A value of long type is returned from `char %s()' function.

6.254.2 Content

6.254.3 Sample code

char func(void)
{
    long a = 0;
    return a; /* W0274 */
}

6.254.4 Related message

6.254.5 Since

1.0.0


Next: , Previous: W0274, Up: Messages

6.255 W0275

6.255.1 Message body

A value of unsigned long type is returned from `char %s()' function.

6.255.2 Content

Under construction.

6.255.3 Sample code

char func(void)
{
    unsigned long a = 0;
    return a; /* W0275 */
}

6.255.4 Related message

6.255.5 Since

1.0.0


Next: , Previous: W0275, Up: Messages

6.256 W0276

6.256.1 Message body

A value of long long type is returned from `char %s()' function.

6.256.2 Content

Under construction.

6.256.3 Sample code

char func(void)
{
    long long a = 0;
    return a; /* W0276 */
}

6.256.4 Related message

6.256.5 Since

1.0.0


Next: , Previous: W0276, Up: Messages

6.257 W0277

6.257.1 Message body

A value of unsigned long long type is returned from `char %s()' function.

6.257.2 Content

Under construction.

6.257.3 Sample code

char func(void)
{
    unsigned long long a = 0;
    return a; /* W0277 */
}

6.257.4 Related message

6.257.5 Since

1.0.0


Next: , Previous: W0277, Up: Messages

6.258 W0278

6.258.1 Message body

A value of unsigned char type is returned from `signed char %s()' function.

6.258.2 Content

Under construction.

6.258.3 Sample code

signed char func(void)
{
    unsigned char a = 0;
    return a; /* W0278 */
}

6.258.4 Related message

6.258.5 Since

1.0.0


Next: , Previous: W0278, Up: Messages

6.259 W0279

6.259.1 Message body

A value of unsigned short type is returned from `signed char %s()' function.

6.259.2 Content

Under construction.

6.259.3 Sample code

signed char func(void)
{
    unsigned short a = 0;
    return a; /* W0279 */
}

6.259.4 Related message

6.259.5 Since

1.0.0


Next: , Previous: W0279, Up: Messages

6.260 W0280

6.260.1 Message body

A value of unsigned short type is returned from `short %s()' function.

6.260.2 Content

Under construction.

6.260.3 Sample code

short func(void)
{
    unsigned short a = 0;
    return a; /* W0280 */
}

6.260.4 Related message

6.260.5 Since

1.0.0


Next: , Previous: W0280, Up: Messages

6.261 W0281

6.261.1 Message body

A value of unsigned int type is returned from `signed char %s()' function.

6.261.2 Content

Under construction.

6.261.3 Sample code

signed char func(void)
{
    unsigned int a = 0;
    return a; /* W0281 */
}

6.261.4 Related message

6.261.5 Since

1.0.0


Next: , Previous: W0281, Up: Messages

6.262 W0282

6.262.1 Message body

A value of unsigned int type is returned from `short %s()' function.

6.262.2 Content

Under construction.

6.262.3 Sample code

short func(void)
{
    unsigned int a = 0;
    return a; /* W0282 */
}

6.262.4 Related message

6.262.5 Since

1.0.0


Next: , Previous: W0282, Up: Messages

6.263 W0283

6.263.1 Message body

A value of unsigned int type is returned from `int %s()' function.

6.263.2 Content

Under construction.

6.263.3 Sample code

int func(void)
{
    unsigned int a = 0;
    return a; /* W0283 */
}

6.263.4 Related message

6.263.5 Since

1.0.0


Next: , Previous: W0283, Up: Messages

6.264 W0284

6.264.1 Message body

A value of unsigned long type is returned from `signed char %s()' function.

6.264.2 Content

Under construction.

6.264.3 Sample code

signed char func(void)
{
    unsigned long a = 0;
    return a; /* W0284 */
}

6.264.4 Related message

6.264.5 Since

1.0.0


Next: , Previous: W0284, Up: Messages

6.265 W0285

6.265.1 Message body

A value of unsigned long type is returned from `short %s()' function.

6.265.2 Content

Under construction.

6.265.3 Sample code

short func(void)
{
    unsigned long a = 0;
    return a; /* W0285 */
}

6.265.4 Related message

6.265.5 Since

1.0.0


Next: , Previous: W0285, Up: Messages

6.266 W0286

6.266.1 Message body

A value of unsigned long type is returned from `int %s()' function.

6.266.2 Content

Under construction.

6.266.3 Sample code

int func(void)
{
    unsigned long a = 0;
    return a; /* W0286 */
}

6.266.4 Related message

6.266.5 Since

1.0.0


Next: , Previous: W0286, Up: Messages

6.267 W0287

6.267.1 Message body

A value of unsigned long type is returned from `long %s()' function.

6.267.2 Content

Under construction.

6.267.3 Sample code

long func(void)
{
    unsigned long a = 0;
    return a; /* W0287 */
}

6.267.4 Related message

6.267.5 Since

1.0.0


Next: , Previous: W0287, Up: Messages

6.268 W0288

6.268.1 Message body

A value of unsigned long long type is returned from `signed char %s()' function.

6.268.2 Content

Under construction.

6.268.3 Sample code

signed char func(void)
{
    unsigned long long a = 0;
    return a; /* W0288 */
}

6.268.4 Related message

6.268.5 Since

1.0.0


Next: , Previous: W0288, Up: Messages

6.269 W0289

6.269.1 Message body

A value of unsigned long long type is returned from `short %s()' function.

6.269.2 Content

Under construction.

6.269.3 Sample code

short func(void)
{
    unsigned long long a = 0;
    return a; /* W0289 */
}

6.269.4 Related message

6.269.5 Since

1.0.0


Next: , Previous: W0289, Up: Messages

6.270 W0290

6.270.1 Message body

A value of unsigned long long type is returned from `int %s()' function.

6.270.2 Content

Under construction.

6.270.3 Sample code

int func(void)
{
    unsigned long long a = 0;
    return a; /* W0290 */
}

6.270.4 Related message

6.270.5 Since

1.0.0


Next: , Previous: W0290, Up: Messages

6.271 W0291

6.271.1 Message body

A value of unsigned long long type is returned from `long %s()' function.

6.271.2 Content

Under construction.

6.271.3 Sample code

long func(void)
{
    unsigned long long a = 0;
    return a; /* W0291 */
}

6.271.4 Related message

6.271.5 Since

1.0.0


Next: , Previous: W0291, Up: Messages

6.272 W0292

6.272.1 Message body

A value of unsigned long long type is returned from `long long %s()' function.

6.272.2 Content

Under construction.

6.272.3 Sample code

long long func(void)
{
    unsigned long long a = 0;
    return a; /* W0292 */
}

6.272.4 Related message

6.272.5 Since

1.0.0


Next: , Previous: W0292, Up: Messages

6.273 W0293

6.273.1 Message body

A value of signed char type is returned from `unsigned char %s()' function.

6.273.2 Content

Under construction.

6.273.3 Sample code

unsigned char func(void)
{
    signed char a = 0;
    return a; /* W0293 */
}

6.273.4 Related message

6.273.5 Since

1.0.0


Next: , Previous: W0293, Up: Messages

6.274 W0294

6.274.1 Message body

A value of signed char type is returned from `unsigned short %s()' function.

6.274.2 Content

Under construction.

6.274.3 Sample code

unsigned short func(void)
{
    signed char a = 0;
    return a; /* W0294 */
}

6.274.4 Related message

6.274.5 Since

1.0.0


Next: , Previous: W0294, Up: Messages

6.275 W0295

6.275.1 Message body

A value of signed char type is returned from `unsigned int %s()' function.

6.275.2 Content

Under construction.

6.275.3 Sample code

unsigned int func(void)
{
    signed char a = 0;
    return a; /* W0295 */
}

6.275.4 Related message

6.275.5 Since

1.0.0


Next: , Previous: W0295, Up: Messages

6.276 W0296

6.276.1 Message body

A value of signed char type is returned from `unsigned long %s()' function.

6.276.2 Content

Under construction.

6.276.3 Sample code

unsigned long func(void)
{
    signed char a = 0;
    return a; /* W0296 */
}

6.276.4 Related message

6.276.5 Since

1.0.0


Next: , Previous: W0296, Up: Messages

6.277 W0297

6.277.1 Message body

A value of short type is returned from `unsigned char %s()' function.

6.277.2 Content

Under construction.

6.277.3 Sample code

unsigned char func(void)
{
    short a = 0;
    return a; /* W0297 */
}

6.277.4 Related message

6.277.5 Since

1.0.0


Next: , Previous: W0297, Up: Messages

6.278 W0298

6.278.1 Message body

A value of short type is returned from `unsigned short %s()' function.

6.278.2 Content

Under construction.

6.278.3 Sample code

unsigned short func(void)
{
    short a = 0;
    return a; /* W0298 */
}

6.278.4 Related message

6.278.5 Since

1.0.0


Next: , Previous: W0298, Up: Messages

6.279 W0299

6.279.1 Message body

A value of short type is returned from `unsigned int %s()' function.

6.279.2 Content

Under construction.

6.279.3 Sample code

unsigned int func(void)
{
    short a = 0;
    return a; /* W0299 */
}

6.279.4 Related message

6.279.5 Since

1.0.0


Next: , Previous: W0299, Up: Messages

6.280 W0300

6.280.1 Message body

A value of short type is returned from `unsigned long %s()' function.

6.280.2 Content

Under construction.

6.280.3 Sample code

unsigned long func(void)
{
    short a = 0;
    return a; /* W0300 */
}

6.280.4 Related message

6.280.5 Since

1.0.0


Next: , Previous: W0300, Up: Messages

6.281 W0301

6.281.1 Message body

A value of int type is returned from `unsigned char %s()' function.

6.281.2 Content

Under construction.

6.281.3 Sample code

unsigned char func(void)
{
    int a = 0;
    return a; /* W0301 */
}

6.281.4 Related message

6.281.5 Since

1.0.0


Next: , Previous: W0301, Up: Messages

6.282 W0302

6.282.1 Message body

A value of int type is returned from `unsigned short %s()' function.

6.282.2 Content

Under construction.

6.282.3 Sample code

unsigned short func(void)
{
    int a = 0;
    return a; /* W0302 */
}

6.282.4 Related message

6.282.5 Since

1.0.0


Next: , Previous: W0302, Up: Messages

6.283 W0303

6.283.1 Message body

A value of int type is returned from `unsigned int %s()' function.

6.283.2 Content

Under construction.

6.283.3 Sample code

unsigned int func(void)
{
    int a = 0;
    return a; /* W0303 */
}

6.283.4 Related message

6.283.5 Since

1.0.0


Next: , Previous: W0303, Up: Messages

6.284 W0304

6.284.1 Message body

A value of int type is returned from `unsigned long %s()' function.

6.284.2 Content

Under construction.

6.284.3 Sample code

unsigned long func(void)
{
    int a = 0;
    return a; /* W0304 */
}

6.284.4 Related message

6.284.5 Since

1.0.0


Next: , Previous: W0304, Up: Messages

6.285 W0305

6.285.1 Message body

A value of long type is returned from `unsigned char %s()' function.

6.285.2 Content

Under construction.

6.285.3 Sample code

unsigned char func(void)
{
    long a = 0;
    return a; /* W0305 */
}

6.285.4 Related message

6.285.5 Since

1.0.0


Next: , Previous: W0305, Up: Messages

6.286 W0306

6.286.1 Message body

A value of long type is returned from `unsigned short %s()' function.

6.286.2 Content

Under construction.

6.286.3 Sample code

unsigned short func(void)
{
    long a = 0;
    return a; /* W0306 */
}

6.286.4 Related message

6.286.5 Since

1.0.0


Next: , Previous: W0306, Up: Messages

6.287 W0307

6.287.1 Message body

A value of long type is returned from `unsigned int %s()' function.

6.287.2 Content

Under construction.

6.287.3 Sample code

unsigned int func(void)
{
    long a = 0;
    return a; /* W0307 */
}

6.287.4 Related message

6.287.5 Since

1.0.0


Next: , Previous: W0307, Up: Messages

6.288 W0308

6.288.1 Message body

A value of long type is returned from `unsigned long %s()' function.

6.288.2 Content

Under construction.

6.288.3 Sample code

unsigned long func(void)
{
    long a = 0;
    return a; /* W0308 */
}

6.288.4 Related message

6.288.5 Since

1.0.0


Next: , Previous: W0308, Up: Messages

6.289 W0309

6.289.1 Message body

A value of signed char type is returned from `unsigned long long %s()' function.

6.289.2 Content

Under construction.

6.289.3 Sample code

unsigned long long func(void)
{
    signed char a = 0;
    return a; /* W0309 */
}

6.289.4 Related message

6.289.5 Since

1.0.0


Next: , Previous: W0309, Up: Messages

6.290 W0310

6.290.1 Message body

A value of short type is returned from `unsigned long long %s()' function.

6.290.2 Content

Under construction.

6.290.3 Sample code

unsigned long long func(void)
{
    short a = 0;
    return a; /* W0310 */
}

6.290.4 Related message

6.290.5 Since

1.0.0


Next: , Previous: W0310, Up: Messages

6.291 W0311

6.291.1 Message body

A value of int type is returned from `unsigned long long %s()' function.

6.291.2 Content

Under construction.

6.291.3 Sample code

unsigned long long func(void)
{
    int a = 0;
    return a; /* W0311 */
}

6.291.4 Related message

6.291.5 Since

1.0.0


Next: , Previous: W0311, Up: Messages

6.292 W0312

6.292.1 Message body

A value of long type is returned from `unsigned long long %s()' function.

6.292.2 Content

Under construction.

6.292.3 Sample code

unsigned long long func(void)
{
    long a = 0;
    return a; /* W0312 */
}

6.292.4 Related message

6.292.5 Since

1.0.0


Next: , Previous: W0312, Up: Messages

6.293 W0313

6.293.1 Message body

A value of long long type is returned from `unsigned char %s()' function.

6.293.2 Content

Under construction.

6.293.3 Sample code

unsigned char func(void)
{
    long long a = 0;
    return a; /* W0313 */
}

6.293.4 Related message

6.293.5 Since

1.0.0


Next: , Previous: W0313, Up: Messages

6.294 W0314

6.294.1 Message body

A value of long long type is returned from `unsigned short %s()' function.

6.294.2 Content

Under construction.

6.294.3 Sample code

unsigned short func(void)
{
    long long a = 0;
    return a; /* W0314 */
}

6.294.4 Related message

6.294.5 Since

1.0.0


Next: , Previous: W0314, Up: Messages

6.295 W0315

6.295.1 Message body

A value of long long type is returned from `unsigned int %s()' function.

6.295.2 Content

Under construction.

6.295.3 Sample code

unsigned int func(void)
{
    long long a = 0;
    return a; /* W0315 */
}

6.295.4 Related message

6.295.5 Since

1.0.0


Next: , Previous: W0315, Up: Messages

6.296 W0316

6.296.1 Message body

A value of long long type is returned from `unsigned long %s()' function.

6.296.2 Content

Under construction.

6.296.3 Sample code

unsigned long func(void)
{
    long long a = 0;
    return a; /* W0316 */
}

6.296.4 Related message

6.296.5 Since

1.0.0


Next: , Previous: W0316, Up: Messages

6.297 W0317

6.297.1 Message body

A value of long long type is returned from `unsigned long long %s()' function.

6.297.2 Content

Under construction.

6.297.3 Sample code

unsigned long long func(void)
{
    long long a = 0;
    return a; /* W0317 */
}

6.297.4 Related message

6.297.5 Since

1.0.0


Next: , Previous: W0317, Up: Messages

6.298 W0318

6.298.1 Message body

A value of unsigned char type is returned from `float %s()' function.

6.298.2 Content

Under construction.

6.298.3 Sample code

float func(void)
{
    unsigned char a = 0;
    return a; /* W0318 */
}

6.298.4 Related message

6.298.5 Since

1.0.0


Next: , Previous: W0318, Up: Messages

6.299 W0319

6.299.1 Message body

A value of unsigned char type is returned from `double %s()' function.

6.299.2 Content

Under construction.

6.299.3 Sample code

double func(void)
{
    unsigned char a = 0;
    return a; /* W0319 */
}

6.299.4 Related message

6.299.5 Since

1.0.0


Next: , Previous: W0319, Up: Messages

6.300 W0320

6.300.1 Message body

A value of unsigned char type is returned from `long double %s()' function.

6.300.2 Content

Under construction.

6.300.3 Sample code

long double func(void)
{
    unsigned char a = 0;
    return a; /* W0320 */
}

6.300.4 Related message

6.300.5 Since

1.0.0


Next: , Previous: W0320, Up: Messages

6.301 W0321

6.301.1 Message body

A value of signed char type is returned from `float %s()' function.

6.301.2 Content

Under construction.

6.301.3 Sample code

float func(void)
{
    unsigned char a = 0;
    return a; /* W0321 */
}

6.301.4 Related message

6.301.5 Since

1.0.0


Next: , Previous: W0321, Up: Messages

6.302 W0322

6.302.1 Message body

A value of signed char type is returned from `double %s()' function.

6.302.2 Content

Under construction.

6.302.3 Sample code

double func(void)
{
    unsigned char a = 0;
    return a; /* W0322 */
}

6.302.4 Related message

6.302.5 Since

1.0.0


Next: , Previous: W0322, Up: Messages

6.303 W0323

6.303.1 Message body

A value of signed char type is returned from `long double %s()' function.

6.303.2 Content

Under construction.

6.303.3 Sample code

long double func(void)
{
    unsigned char a = 0;
    return a; /* W0323 */
}

6.303.4 Related message

6.303.5 Since

1.0.0


Next: , Previous: W0323, Up: Messages

6.304 W0324

6.304.1 Message body

A value of short type is returned from `float %s()' function.

6.304.2 Content

Under construction.

6.304.3 Sample code

float func(void)
{
    short a = 0;
    return a; /* W0324 */
}

6.304.4 Related message

6.304.5 Since

1.0.0


Next: , Previous: W0324, Up: Messages

6.305 W0325

6.305.1 Message body

A value of short type is returned from `double %s()' function.

6.305.2 Content

Under construction.

6.305.3 Sample code

double func(void)
{
    short a = 0;
    return a; /* W0325 */
}

6.305.4 Related message

6.305.5 Since

1.0.0


Next: , Previous: W0325, Up: Messages

6.306 W0326

6.306.1 Message body

A value of short type is returned from `long double %s()' function.

6.306.2 Content

Under construction.

6.306.3 Sample code

long double func(void)
{
    short a = 0;
    return a; /* W0326 */
}

6.306.4 Related message

6.306.5 Since

1.0.0


Next: , Previous: W0326, Up: Messages

6.307 W0327

6.307.1 Message body

A value of unsigned short type is returned from `float %s()' function.

6.307.2 Content

Under construction.

6.307.3 Sample code

float func(void)
{
    unsigned short a = 0;
    return a; /* W0327 */
}

6.307.4 Related message

6.307.5 Since

1.0.0


Next: , Previous: W0327, Up: Messages

6.308 W0328

6.308.1 Message body

A value of unsigned short type is returned from `double %s()' function.

6.308.2 Content

Under construction.

6.308.3 Sample code

double func(void)
{
    unsigned short a = 0;
    return a; /* W0328 */
}

6.308.4 Related message

6.308.5 Since

1.0.0


Next: , Previous: W0328, Up: Messages

6.309 W0329

6.309.1 Message body

A value of unsigned short type is returned from `long double %s()' function.

6.309.2 Content

Under construction.

6.309.3 Sample code

long double func(void)
{
    unsigned short a = 0;
    return a; /* W0329 */
}

6.309.4 Related message

6.309.5 Since

1.0.0


Next: , Previous: W0329, Up: Messages

6.310 W0330

6.310.1 Message body

A value of int type is returned from `float %s()' function.

6.310.2 Content

Under construction.

6.310.3 Sample code

float func(void)
{
    int a = 0;
    return a; /* W0330 */
}

6.310.4 Related message

6.310.5 Since

1.0.0


Next: , Previous: W0330, Up: Messages

6.311 W0331

6.311.1 Message body

A value of int type is returned from `double %s()' function.

6.311.2 Content

Under construction.

6.311.3 Sample code

double func(void)
{
    int a = 0;
    return a; /* W0331 */
}

6.311.4 Related message

6.311.5 Since

1.0.0


Next: , Previous: W0331, Up: Messages

6.312 W0332

6.312.1 Message body

A value of int type is returned from `long double %s()' function.

6.312.2 Content

Under construction.

6.312.3 Sample code

long double func(void)
{
    int a = 0;
    return a; /* W0332 */
}

6.312.4 Related message

6.312.5 Since

1.0.0


Next: , Previous: W0332, Up: Messages

6.313 W0333

6.313.1 Message body

A value of unsigned int type is returned from `float %s()' function.

6.313.2 Content

Under construction.

6.313.3 Sample code

float func(void)
{
    unsigned int a = 0;
    return a; /* W0333 */
}

6.313.4 Related message

6.313.5 Since

1.0.0


Next: , Previous: W0333, Up: Messages

6.314 W0334

6.314.1 Message body

A value of unsigned int type is returned from `double %s()' function.

6.314.2 Content

Under construction.

6.314.3 Sample code

double func(void)
{
    unsigned int a = 0;
    return a; /* W0334 */
}

6.314.4 Related message

6.314.5 Since

1.0.0


Next: , Previous: W0334, Up: Messages

6.315 W0335

6.315.1 Message body

A value of unsigned int type is returned from `long double %s()' function.

6.315.2 Content

Under construction.

6.315.3 Sample code

long double func(void)
{
    unsigned int a = 0;
    return a; /* W0335 */
}

6.315.4 Related message

6.315.5 Since

1.0.0


Next: , Previous: W0335, Up: Messages

6.316 W0336

6.316.1 Message body

A value of long type is returned from `float %s()' function.

6.316.2 Content

Under construction.

6.316.3 Sample code

float func(void)
{
    long a = 0;
    return a; /* W0336 */
}

6.316.4 Related message

6.316.5 Since

1.0.0


Next: , Previous: W0336, Up: Messages

6.317 W0337

6.317.1 Message body

A value of long type is returned from `double %s()' function.

6.317.2 Content

Under construction.

6.317.3 Sample code

double func(void)
{
    long a = 0;
    return a; /* W0337 */
}

6.317.4 Related message

6.317.5 Since

1.0.0


Next: , Previous: W0337, Up: Messages

6.318 W0338

6.318.1 Message body

A value of long type is returned from `long double %s()' function.

6.318.2 Content

Under construction.

6.318.3 Sample code

long double func(void)
{
    long a = 0;
    return a; /* W0338 */
}

6.318.4 Related message

6.318.5 Since

1.0.0


Next: , Previous: W0338, Up: Messages

6.319 W0339

6.319.1 Message body

A value of unsigned long type is returned from `float %s()' function.

6.319.2 Content

Under construction.

6.319.3 Sample code

float func(void)
{
    unsigned long a = 0;
    return a; /* W0339 */
}

6.319.4 Related message

6.319.5 Since

1.0.0


Next: , Previous: W0339, Up: Messages

6.320 W0340

6.320.1 Message body

A value of unsigned long type is returned from `double %s()' function.

6.320.2 Content

Under construction.

6.320.3 Sample code

double func(void)
{
    unsigned long a = 0;
    return a; /* W0340 */
}

6.320.4 Related message

6.320.5 Since

1.0.0


Next: , Previous: W0340, Up: Messages

6.321 W0341

6.321.1 Message body

A value of unsigned long type is returned from `long double %s()' function.

6.321.2 Content

Under construction.

6.321.3 Sample code

long double func(void)
{
    unsigned long a = 0;
    return a; /* W0341 */
}

6.321.4 Related message

6.321.5 Since

1.0.0


Next: , Previous: W0341, Up: Messages

6.322 W0342

6.322.1 Message body

A value of long long type is returned from `float %s()' function.

6.322.2 Content

Under construction.

6.322.3 Sample code

float func(void)
{
    long long a = 0;
    return a; /* W0342 */
}

6.322.4 Related message

6.322.5 Since

1.0.0


Next: , Previous: W0342, Up: Messages

6.323 W0343

6.323.1 Message body

A value of long long type is returned from `double %s()' function.

6.323.2 Content

Under construction.

6.323.3 Sample code

double func(void)
{
    long long a = 0;
    return a; /* W0343 */
}

6.323.4 Related message

6.323.5 Since

1.0.0


Next: , Previous: W0343, Up: Messages

6.324 W0344

6.324.1 Message body

A value of long long type is returned from `long double %s()' function.

6.324.2 Content

Under construction.

6.324.3 Sample code

long double func(void)
{
    long long a = 0;
    return a; /* W0344 */
}

6.324.4 Related message

6.324.5 Since

1.0.0


Next: , Previous: W0344, Up: Messages

6.325 W0345

6.325.1 Message body

A value of unsigned long long type is returned from `float %s()' function.

6.325.2 Content

Under construction.

6.325.3 Sample code

float func(void)
{
    unsigned long long a = 0;
    return a; /* W0345 */
}

6.325.4 Related message

6.325.5 Since

1.0.0


Next: , Previous: W0345, Up: Messages

6.326 W0346

6.326.1 Message body

A value of unsigned long long type is returned from `double %s()' function.

6.326.2 Content

Under construction.

6.326.3 Sample code

double func(void)
{
    unsigned long long a = 0;
    return a; /* W0346 */
}

6.326.4 Related message

6.326.5 Since

1.0.0


Next: , Previous: W0346, Up: Messages

6.327 W0347

6.327.1 Message body

A value of unsigned long long type is returned from `long double %s()' function.

6.327.2 Content

Under construction.

6.327.3 Sample code

long double func(void)
{
    unsigned long long a = 0;
    return a; /* W0347 */
}

6.327.4 Related message

6.327.5 Since

1.0.0


Next: , Previous: W0347, Up: Messages

6.328 W0348

6.328.1 Message body

A value of float type is returned from `char %s()' function.

6.328.2 Content

Under construction.

6.328.3 Sample code

char func(void)
{
    float a = 0;
    return a; /* W0348 */
}

6.328.4 Related message

6.328.5 Since

1.0.0


Next: , Previous: W0348, Up: Messages

6.329 W0349

6.329.1 Message body

A value of float type is returned from `signed char %s()' function.

6.329.2 Content

Under construction.

6.329.3 Sample code

signed char func(void)
{
    float a = 0;
    return a; /* W0349 */
}

6.329.4 Related message

6.329.5 Since

1.0.0


Next: , Previous: W0349, Up: Messages

6.330 W0350

6.330.1 Message body

A value of float type is returned from `unsigned char %s()' function.

6.330.2 Content

Under construction.

6.330.3 Sample code

unsigned char func(void)
{
    float a = 0;
    return a; /* W0350 */
}

6.330.4 Related message

6.330.5 Since

1.0.0


Next: , Previous: W0350, Up: Messages

6.331 W0351

6.331.1 Message body

A value of float type is returned from `short %s()' function.

6.331.2 Content

Under construction.

6.331.3 Sample code

short func(void)
{
    float a = 0;
    return a; /* W0351 */
}

6.331.4 Related message

6.331.5 Since

1.0.0


Next: , Previous: W0351, Up: Messages

6.332 W0352

6.332.1 Message body

A value of float type is returned from `unsigned short %s()' function.

6.332.2 Content

Under construction.

6.332.3 Sample code

unsigned short func(void)
{
    float a = 0;
    return a; /* W0352 */
}

6.332.4 Related message

6.332.5 Since

1.0.0


Next: , Previous: W0352, Up: Messages

6.333 W0353

6.333.1 Message body

A value of float type is returned from `int %s()' function.

6.333.2 Content

Under construction.

6.333.3 Sample code

int func(void)
{
    float a = 0;
    return a; /* W0353 */
}

6.333.4 Related message

6.333.5 Since

1.0.0


Next: , Previous: W0353, Up: Messages

6.334 W0354

6.334.1 Message body

A value of float type is returned from `unsigned int %s()' function.

6.334.2 Content

Under construction.

6.334.3 Sample code

unsigned int func(void)
{
    float a = 0;
    return a; /* W0354 */
}

6.334.4 Related message

6.334.5 Since

1.0.0


Next: , Previous: W0354, Up: Messages

6.335 W0355

6.335.1 Message body

A value of float type is returned from `long %s()' function.

6.335.2 Content

Under construction.

6.335.3 Sample code

long func(void)
{
    float a = 0;
    return a; /* W0355 */
}

6.335.4 Related message

6.335.5 Since

1.0.0


Next: , Previous: W0355, Up: Messages

6.336 W0356

6.336.1 Message body

A value of float type is returned from `unsigned long %s()' function.

6.336.2 Content

Under construction.

6.336.3 Sample code

unsigned long func(void)
{
    float a = 0;
    return a; /* W0356 */
}

6.336.4 Related message

6.336.5 Since

1.0.0


Next: , Previous: W0356, Up: Messages

6.337 W0357

6.337.1 Message body

A value of double type is returned from `char %s()' function.

6.337.2 Content

Under construction.

6.337.3 Sample code

char func(void)
{
    double a = 0;
    return a; /* W0357 */
}

6.337.4 Related message

6.337.5 Since

1.0.0


Next: , Previous: W0357, Up: Messages

6.338 W0358

6.338.1 Message body

A value of double type is returned from `signed char %s()' function.

6.338.2 Content

Under construction.

6.338.3 Sample code

signed char func(void)
{
    double a = 0;
    return a; /* W0358 */
}

6.338.4 Related message

6.338.5 Since

1.0.0


Next: , Previous: W0358, Up: Messages

6.339 W0359

6.339.1 Message body

A value of double type is returned from `unsigned char %s()' function.

6.339.2 Content

Under construction.

6.339.3 Sample code

unsigned char func(void)
{
    double a = 0;
    return a; /* W0359 */
}

6.339.4 Related message

6.339.5 Since

1.0.0


Next: , Previous: W0359, Up: Messages

6.340 W0360

6.340.1 Message body

A value of double type is returned from `short %s()' function.

6.340.2 Content

Under construction.

6.340.3 Sample code

short func(void)
{
    double a = 0;
    return a; /* W0360 */
}

6.340.4 Related message

6.340.5 Since

1.0.0


Next: , Previous: W0360, Up: Messages

6.341 W0361

6.341.1 Message body

A value of double type is returned from `unsigned short %s()' function.

6.341.2 Content

Under construction.

6.341.3 Sample code

unsigned short func(void)
{
    double a = 0;
    return a; /* W0361 */
}

6.341.4 Related message

6.341.5 Since

1.0.0


Next: , Previous: W0361, Up: Messages

6.342 W0362

6.342.1 Message body

A value of double type is returned from `int %s()' function.

6.342.2 Content

Under construction.

6.342.3 Sample code

int func(void)
{
    double a = 0;
    return a; /* W0362 */
}

6.342.4 Related message

6.342.5 Since

1.0.0


Next: , Previous: W0362, Up: Messages

6.343 W0363

6.343.1 Message body

A value of double type is returned from `unsigned int %s()' function.

6.343.2 Content

Under construction.

6.343.3 Sample code

unsigned int func(void)
{
    double a = 0;
    return a; /* W0363 */
}

6.343.4 Related message

6.343.5 Since

1.0.0


Next: , Previous: W0363, Up: Messages

6.344 W0364

6.344.1 Message body

A value of double type is returned from `long %s()' function.

6.344.2 Content

Under construction.

6.344.3 Sample code

long func(void)
{
    double a = 0;
    return a; /* W0364 */
}

6.344.4 Related message

6.344.5 Since

1.0.0


Next: , Previous: W0364, Up: Messages

6.345 W0365

6.345.1 Message body

A value of double type is returned from `unsigned long %s()' function.

6.345.2 Content

Under construction.

6.345.3 Sample code

unsigned long func(void)
{
    double a = 0;
    return a; /* W0365 */
}

6.345.4 Related message

6.345.5 Since

1.0.0


Next: , Previous: W0365, Up: Messages

6.346 W0366

6.346.1 Message body

A value of long double type is returned from `char %s()' function.

6.346.2 Content

Under construction.

6.346.3 Sample code

char func(void)
{
    long double a = 0;
    return a; /* W0366 */
}

6.346.4 Related message

6.346.5 Since

1.0.0


Next: , Previous: W0366, Up: Messages

6.347 W0367

6.347.1 Message body

A value of long double type is returned from `signed char %s()' function.

6.347.2 Content

Under construction.

6.347.3 Sample code

signed char func(void)
{
    long double a = 0;
    return a; /* W0367 */
}

6.347.4 Related message

6.347.5 Since

1.0.0


Next: , Previous: W0367, Up: Messages

6.348 W0368

6.348.1 Message body

A value of long double type is returned from `signed char %s()' function.

6.348.2 Content

Under construction.

6.348.3 Sample code

unsigned char func(void)
{
    long double a = 0;
    return a; /* W0368 */
}

6.348.4 Related message

6.348.5 Since

1.0.0


Next: , Previous: W0368, Up: Messages

6.349 W0369

6.349.1 Message body

A value of long double type is returned from `short %s()' function.

6.349.2 Content

Under construction.

6.349.3 Sample code

short func(void)
{
    long double a = 0;
    return a; /* W0369 */
}

6.349.4 Related message

6.349.5 Since

1.0.0


Next: , Previous: W0369, Up: Messages

6.350 W0370

6.350.1 Message body

A value of long double type is returned from `unsigned short %s()' function.

6.350.2 Content

Under construction.

6.350.3 Sample code

unsigned short func(void)
{
    long double a = 0;
    return a; /* W0370 */
}

6.350.4 Related message

6.350.5 Since

1.0.0


Next: , Previous: W0370, Up: Messages

6.351 W0371

6.351.1 Message body

A value of long double type is returned from `int %s()' function.

6.351.2 Content

Under construction.

6.351.3 Sample code

int func(void)
{
    long double a = 0;
    return a; /* W0371 */
}

6.351.4 Related message

6.351.5 Since

1.0.0


Next: , Previous: W0371, Up: Messages

6.352 W0372

6.352.1 Message body

A value of long double type is returned from `unsigned int %s()' function.

6.352.2 Content

Under construction.

6.352.3 Sample code

unsigned int func(void)
{
    long double a = 0;
    return a; /* W0372 */
}

6.352.4 Related message

6.352.5 Since

1.0.0


Next: , Previous: W0372, Up: Messages

6.353 W0373

6.353.1 Message body

A value of long double type is returned from `long %s()' function.

6.353.2 Content

Under construction.

6.353.3 Sample code

long func(void)
{
    long double a = 0;
    return a; /* W0373 */
}

6.353.4 Related message

6.353.5 Since

1.0.0


Next: , Previous: W0373, Up: Messages

6.354 W0374

6.354.1 Message body

A value of long double type is returned from `unsigned long %s()' function.

6.354.2 Content

Under construction.

6.354.3 Sample code

unsigned long func(void)
{
    long double a = 0;
    return a; /* W0374 */
}

6.354.4 Related message

6.354.5 Since

1.0.0


Next: , Previous: W0374, Up: Messages

6.355 W0375

6.355.1 Message body

A value of float type is returned from `long long %s()' function.

6.355.2 Content

Under construction.

6.355.3 Sample code

long long func(void)
{
    float a = 0;
    return a; /* W0375 */
}

6.355.4 Related message

6.355.5 Since

1.0.0


Next: , Previous: W0375, Up: Messages

6.356 W0376

6.356.1 Message body

A value of float type is returned from `unsigned long long %s()' function.

6.356.2 Content

Under construction.

6.356.3 Sample code

unsigned long long func(void)
{
    float a = 0;
    return a; /* W0376 */
}

6.356.4 Related message

6.356.5 Since

1.0.0


Next: , Previous: W0376, Up: Messages

6.357 W0377

6.357.1 Message body

A value of double type is returned from `long long %s()' function.

6.357.2 Content

Under construction.

6.357.3 Sample code

long long func(void)
{
    double a = 0;
    return a; /* W0377 */
}

6.357.4 Related message

6.357.5 Since

1.0.0


Next: , Previous: W0377, Up: Messages

6.358 W0378

6.358.1 Message body

A value of double type is returned from `unsigned long long %s()' function.

6.358.2 Content

Under construction.

6.358.3 Sample code

unsigned long long func(void)
{
    double a = 0;
    return a; /* W0378 */
}

6.358.4 Related message

6.358.5 Since

1.0.0


Next: , Previous: W0378, Up: Messages

6.359 W0379

6.359.1 Message body

A value of long double type is returned from `long long %s()' function.

6.359.2 Content

Under construction.

6.359.3 Sample code

long long func(void)
{
    long double a = 0;
    return a; /* W0379 */
}

6.359.4 Related message

6.359.5 Since

1.0.0


Next: , Previous: W0379, Up: Messages

6.360 W0380

6.360.1 Message body

A value of long double type is returned from `unsigned long long %s()' function.

6.360.2 Content

Under construction.

6.360.3 Sample code

unsigned long long func(void)
{
    long double a = 0;
    return a; /* W0380 */
}

6.360.4 Related message

6.360.5 Since

1.0.0


Next: , Previous: W0380, Up: Messages

6.361 W0381

6.361.1 Message body

A value of short type is returned from `signed char %s()' function.

6.361.2 Content

Under construction.

6.361.3 Sample code

signed char func(void)
{
    short a = 0;
    return a; /* W0381 */
}

6.361.4 Related message

6.361.5 Since

1.0.0


Next: , Previous: W0381, Up: Messages

6.362 W0382

6.362.1 Message body

A value of unsigned short type is returned from `unsigned char %s()' function.

6.362.2 Content

Under construction.

6.362.3 Sample code

unsigned char func(void)
{
    unsigned short a = 0;
    return a; /* W0382 */
}

6.362.4 Related message

6.362.5 Since

1.0.0


Next: , Previous: W0382, Up: Messages

6.363 W0383

6.363.1 Message body

A value of int type is returned from `signed char %s()' function.

6.363.2 Content

Under construction.

6.363.3 Sample code

signed char func(void)
{
    int a = 0;
    return a; /* W0383 */
}

6.363.4 Related message

6.363.5 Since

1.0.0


Next: , Previous: W0383, Up: Messages

6.364 W0384

6.364.1 Message body

A value of int type is returned from `short %s()' function.

6.364.2 Content

Under construction.

6.364.3 Sample code

short func(void)
{
    int a = 0;
    return a; /* W0384 */
}

6.364.4 Related message

6.364.5 Since

1.0.0


Next: , Previous: W0384, Up: Messages

6.365 W0385

6.365.1 Message body

A value of unsigned int type is returned from `unsigned char %s()' function.

6.365.2 Content

Under construction.

6.365.3 Sample code

unsigned char func(void)
{
    unsigned int a = 0;
    return a; /* W0385 */
}

6.365.4 Related message

6.365.5 Since

1.0.0


Next: , Previous: W0385, Up: Messages

6.366 W0386

6.366.1 Message body

A value of unsigned int type is returned from `unsigned short %s()' function.

6.366.2 Content

Under construction.

6.366.3 Sample code

unsigned short func(void)
{
    unsigned int a = 0;
    return a; /* W0386 */
}

6.366.4 Related message

6.366.5 Since

1.0.0


Next: , Previous: W0386, Up: Messages

6.367 W0387

6.367.1 Message body

A value of long type is returned from `signed char %s()' function.

6.367.2 Content

Under construction.

6.367.3 Sample code

signed char func(void)
{
    long a = 0;
    return a; /* W0387 */
}

6.367.4 Related message

6.367.5 Since

1.0.0


Next: , Previous: W0387, Up: Messages

6.368 W0388

6.368.1 Message body

A value of long type is returned from `short %s()' function.

6.368.2 Content

Under construction.

6.368.3 Sample code

short func(void)
{
    long a = 0;
    return a; /* W0388 */
}

6.368.4 Related message

6.368.5 Since

1.0.0


Next: , Previous: W0388, Up: Messages

6.369 W0389

6.369.1 Message body

A value of long type is returned from `int %s()' function.

6.369.2 Content

Under construction.

6.369.3 Sample code

int func(void)
{
    long a = 0;
    return a; /* W0389 */
}

6.369.4 Related message

6.369.5 Since

1.0.0


Next: , Previous: W0389, Up: Messages

6.370 W0390

6.370.1 Message body

A value of unsigned long type is returned from `unsigned char %s()' function.

6.370.2 Content

Under construction.

6.370.3 Sample code

unsigned char func(void)
{
    unsigned long a = 0;
    return a; /* W0390 */
}

6.370.4 Related message

6.370.5 Since

1.0.0


Next: , Previous: W0390, Up: Messages

6.371 W0391

6.371.1 Message body

A value of unsigned long type is returned from `unsigned short %s()' function.

6.371.2 Content

Under construction.

6.371.3 Sample code

unsigned short func(void)
{
    unsigned long a = 0;
    return a; /* W0391 */
}

6.371.4 Related message

6.371.5 Since

1.0.0


Next: , Previous: W0391, Up: Messages

6.372 W0392

6.372.1 Message body

A value of unsigned long type is returned from `unsigned int %s()' function.

6.372.2 Content

Under construction.

6.372.3 Sample code

unsigned int func(void)
{
    unsigned long a = 0;
    return a; /* W0392 */
}

6.372.4 Related message

6.372.5 Since

1.0.0


Next: , Previous: W0392, Up: Messages

6.373 W0393

6.373.1 Message body

A value of long long type is returned from `signed char %s()' function.

6.373.2 Content

Under construction.

6.373.3 Sample code

signed char func(void)
{
    long long a = 0;
    return a; /* W0393 */
}

6.373.4 Related message

6.373.5 Since

1.0.0


Next: , Previous: W0393, Up: Messages

6.374 W0394

6.374.1 Message body

A value of long long type is returned from `short %s()' function.

6.374.2 Content

Under construction.

6.374.3 Sample code

short func(void)
{
    long long a = 0;
    return a; /* W0394 */
}

6.374.4 Related message

6.374.5 Since

1.0.0


Next: , Previous: W0394, Up: Messages

6.375 W0395

6.375.1 Message body

A value of long long type is returned from `int %s()' function.

6.375.2 Content

Under construction.

6.375.3 Sample code

int func(void)
{
    long long a = 0;
    return a; /* W0395 */
}

6.375.4 Related message

6.375.5 Since

1.0.0


Next: , Previous: W0395, Up: Messages

6.376 W0396

6.376.1 Message body

A value of long long type is returned from `long %s()' function.

6.376.2 Content

Under construction.

6.376.3 Sample code

long func(void)
{
    long long a = 0;
    return a; /* W0396 */
}

6.376.4 Related message

6.376.5 Since

1.0.0


Next: , Previous: W0396, Up: Messages

6.377 W0397

6.377.1 Message body

A value of unsigned long long type is returned from `unsigned char %s()' function.

6.377.2 Content

Under construction.

6.377.3 Sample code

unsigned char func(void)
{
    unsigned long long a = 0;
    return a; /* W0397 */
}

6.377.4 Related message

6.377.5 Since

1.0.0


Next: , Previous: W0397, Up: Messages

6.378 W0398

6.378.1 Message body

A value of unsigned long long type is returned from `unsigned short %s()' function.

6.378.2 Content

Under construction.

6.378.3 Sample code

unsigned short func(void)
{
    unsigned long long a = 0;
    return a; /* W0398 */
}

6.378.4 Related message

6.378.5 Since

1.0.0


Next: , Previous: W0398, Up: Messages

6.379 W0399

6.379.1 Message body

A value of unsigned long long type is returned from `unsigned int %s()' function.

6.379.2 Content

Under construction.

6.379.3 Sample code

unsigned int func(void)
{
    unsigned long long a = 0;
    return a; /* W0399 */
}

6.379.4 Related message

6.379.5 Since

1.0.0


Next: , Previous: W0399, Up: Messages

6.380 W0400

6.380.1 Message body

A value of unsigned long long type is returned from `unsigned long %s()' function.

6.380.2 Content

Under construction.

6.380.3 Sample code

unsigned long func(void)
{
    unsigned long long a = 0;
    return a; /* W0400 */
}

6.380.4 Related message

6.380.5 Since

1.0.0


Next: , Previous: W0400, Up: Messages

6.381 W0401

6.381.1 Message body

A value of unsigned char type is returned from `short %s()' function.

6.381.2 Content

Under construction.

6.381.3 Sample code

short func(void)
{
    unsigned char a = 0;
    return a; /* W0401 */
}

6.381.4 Related message

6.381.5 Since

1.0.0


Next: , Previous: W0401, Up: Messages

6.382 W0402

6.382.1 Message body

A value of unsigned char type is returned from `int %s()' function.

6.382.2 Content

Under construction.

6.382.3 Sample code

int func(void)
{
    unsigned char a = 0;
    return a; /* W0402 */
}

6.382.4 Related message

6.382.5 Since

1.0.0


Next: , Previous: W0402, Up: Messages

6.383 W0403

6.383.1 Message body

A value of unsigned char type is returned from `long %s()' function.

6.383.2 Content

Under construction.

6.383.3 Sample code

long func(void)
{
    unsigned char a = 0;
    return a; /* W0403 */
}

6.383.4 Related message

6.383.5 Since

1.0.0


Next: , Previous: W0403, Up: Messages

6.384 W0404

6.384.1 Message body

A value of unsigned short type is returned from `int %s()' function.

6.384.2 Content

Under construction.

6.384.3 Sample code

int func(void)
{
    unsigned short a = 0;
    return a; /* W0404 */
}

6.384.4 Related message

6.384.5 Since

1.0.0


Next: , Previous: W0404, Up: Messages

6.385 W0405

6.385.1 Message body

A value of unsigned short type is returned from `long %s()' function.

6.385.2 Content

Under construction.

6.385.3 Sample code

long func(void)
{
    unsigned short a = 0;
    return a; /* W0405 */
}

6.385.4 Related message

6.385.5 Since

1.0.0


Next: , Previous: W0405, Up: Messages

6.386 W0406

6.386.1 Message body

A value of unsigned int type is returned from `long %s()' function.

6.386.2 Content

Under construction.

6.386.3 Sample code

long func(void)
{
    unsigned int a = 0;
    return a; /* W0406 */
}

6.386.4 Related message

6.386.5 Since

1.0.0


Next: , Previous: W0406, Up: Messages

6.387 W0407

6.387.1 Message body

A value of unsigned char type is returned from `long long %s()' function.

6.387.2 Content

Under construction.

6.387.3 Sample code

long long func(void)
{
    unsigned char a = 0;
    return a; /* W0407 */
}

6.387.4 Related message

6.387.5 Since

1.0.0


Next: , Previous: W0407, Up: Messages

6.388 W0408

6.388.1 Message body

A value of unsigned short type is returned from `long long %s()' function.

6.388.2 Content

Under construction.

6.388.3 Sample code

long long func(void)
{
    unsigned short a = 0;
    return a; /* W0408 */
}

6.388.4 Related message

6.388.5 Since

1.0.0


Next: , Previous: W0408, Up: Messages

6.389 W0409

6.389.1 Message body

A value of unsigned int type is returned from `long long %s()' function.

6.389.2 Content

Under construction.

6.389.3 Sample code

long long func(void)
{
    unsigned int a = 0;
    return a; /* W0409 */
}

6.389.4 Related message

6.389.5 Since

1.0.0


Next: , Previous: W0409, Up: Messages

6.390 W0410

6.390.1 Message body

A value of unsigned long type is returned from `long long %s()' function.

6.390.2 Content

Under construction.

6.390.3 Sample code

long long func(void)
{
    unsigned long a = 0;
    return a; /* W0410 */
}

6.390.4 Related message

6.390.5 Since

1.0.0


Next: , Previous: W0410, Up: Messages

6.391 W0411

6.391.1 Message body

The initialization of enumeration should be only the starting, whole or not at all.

6.391.2 Content

Under construction.

6.391.3 Sample code

enum SEASON1 { /* W0411 */
    SPRING,
    SUMMER = 4,
    AUTUMN = 8,
    WINTER
};

enum SEASON2 { /* OK */
    SPRING,
    SUMMER,
    AUTUMN,
    WINTER
};

enum SEASON3 { /* OK */
    SPRING = 0,
    SUMMER = 1,
    AUTUMN = 2,
    WINTER = 3
};

enum SEASON4 { /* OK */
    SPRING = 1,
    SUMMER,
    AUTUMN,
    WINTER
};

6.391.4 Related message

None.

6.391.5 Since

1.0.0


Next: , Previous: W0411, Up: Messages

6.392 W0413

6.392.1 Message body

The body of control statement is unenclosed by curly brace `{}' block.

6.392.2 Content

Under construction.

6.392.3 Sample code

if (x > 0)
    x++; /* W0413 */

6.392.4 Related message

6.392.5 Since

1.0.0


Next: , Previous: W0413, Up: Messages

6.393 W0414

6.393.1 Message body

The body of control statement is in a line. It unenclosed by curly brace`{}' block.

6.393.2 Content

Under construction.

6.393.3 Sample code

if (x > 0) x++; /* W0414 */

6.393.4 Related message

6.393.5 Since

1.0.0


Next: , Previous: W0414, Up: Messages

6.394 W0421

6.394.1 Message body

Indirect reference is being made to the pointer which its value will be NULL.

6.394.2 Content

Under construction.

6.394.3 Sample code

void func(int a, int *p)
{
    int b;

    if (p) {
        b = *p; /* OK */
    }
    else {
        b = *p; /* W0421 */
    }
}

6.394.4 Related message

None.

6.394.5 Since

1.0.0


Next: , Previous: W0421, Up: Messages

6.395 W0422

6.395.1 Message body

Indirect reference is being made to the pointer which its value might be NULL.

6.395.2 Content

Under construction.

6.395.3 Sample code

void func(int a, int *p)
{
    int b;

    if (p) {
        b = *p; /* OK */
    }

    b = *p; /* W0422 */
}

6.395.4 Related message

None.

6.395.5 Since

1.0.0


Next: , Previous: W0422, Up: Messages

6.396 W0423

6.396.1 Message body

Arithmetic operation is being made to the pointer which its value will be NULL.

6.396.2 Content

Under construction.

6.396.3 Sample code

int *func(int *p)
{
    if (p) {
        return p + 1; /* OK */
    }
    else {
        return p + 1; /* W0423 */
    }
}

6.396.4 Related message

None.

6.396.5 Since

1.0.0


Next: , Previous: W0423, Up: Messages

6.397 W0424

6.397.1 Message body

Arithmetic operation is being made to the pointer which its value might be NULL.

6.397.2 Content

Under construction.

6.397.3 Sample code

int *func(int *p)
{
    int a;

    if (p) {
        a = *(p + 1); /* OK */
    }

    return p + 1; /* W0424 */
}

6.397.4 Related message

None.

6.397.5 Since

1.0.0


Next: , Previous: W0424, Up: Messages

6.398 W0425

6.398.1 Message body

There are several definitions or statements in a line.

6.398.2 Content

Under construction.

6.398.3 Sample code

int a, b; /* W0425 */
int a; int b; /* W0425 */
struct C { int i; } c = { 0 }; c.i = a; /* W0425 */

6.398.4 Related message

None.

6.398.5 Since

1.0.0


Next: , Previous: W0425, Up: Messages

6.399 W0431

6.399.1 Message body

This line begins at more left than previous lines of the same indentation level.

6.399.2 Content

Under construction.

6.399.3 Sample code

void func()
{
    int a;
int b; /* W0431 */
    a = var();
}

6.399.4 Related message

6.399.5 Since

1.0.0


Next: , Previous: W0431, Up: Messages

6.400 W0432

6.400.1 Message body

Indentation of this line does not comply with the project's indent style.

6.400.2 Content

Under construction.

6.400.3 Sample code

void func()
{
    int a;
      int b; /* W0432 */
    a = var();
}

6.400.4 Related message

6.400.5 Since

1.0.0


Next: , Previous: W0432, Up: Messages

6.401 W0440

6.401.1 Message body

An indent of this close bracket `}' is not correspond to the open bracket `{'.

6.401.2 Content

Under construction.

6.401.3 Sample code

void func()
{
    if (x == 0)
    {
        if (y == 0)
        {
            ...snip...
    } /* W0440 */
        } /* W0440 */
}

6.401.4 Related message

None.

6.401.5 Since

1.0.0


Next: , Previous: W0440, Up: Messages

6.402 W0441

6.402.1 Message body

The type of integer literal which doesn't have a suffix is not int type.

6.402.2 Content

Under construction.

6.402.3 Sample code

int i = 0x1234; /* W0441 */

6.402.4 Related message

None.

6.402.5 Since

1.0.0


Next: , Previous: W0441, Up: Messages

6.403 W0442

6.403.1 Message body

A function-like macro is defined.

6.403.2 Content

Under construction.

6.403.3 Sample code

#define MAX(a, b) (a < b ? b : a) /* W0442 */

6.403.4 Related message

6.403.5 Since

1.0.0


Next: , Previous: W0442, Up: Messages

6.404 W0443

6.404.1 Message body

This function-like macro might be replaced with a function.

6.404.2 Content

Under construction.

6.404.3 Sample code

#define MACRO(a, b) (a * b) /* W0443 */

6.404.4 Related message

6.404.5 Since

1.0.0


Next: , Previous: W0443, Up: Messages

6.405 W0444

6.405.1 Message body

`#'operator and `##'operator is used in a macro definition.

6.405.2 Content

Under construction.

6.405.3 Sample code

#define MACRO(a) L ## #a /* W0444 */

6.405.4 Related message

6.405.5 Since

1.0.0


Next: , Previous: W0444, Up: Messages

6.406 W0445

6.406.1 Message body

Multiple `##'operator is used in a macro definition.

6.406.2 Content

Under construction.

6.406.3 Sample code

#define MACRO(prefix, name, suffix) int i = prefix##name##suffix /* W0445 */

6.406.4 Related message

6.406.5 Since

1.0.0


Next: , Previous: W0445, Up: Messages

6.407 W0446

6.407.1 Message body

The result value of assignment operation is used.

6.407.2 Content

Under construction.

6.407.3 Sample code

void func(void)
{
    int a;
    int b;

    a = b += 3; /* W0446 */
}

6.407.4 Related message

None.

6.407.5 Since

1.0.0


Next: , Previous: W0446, Up: Messages

6.408 W0447

6.408.1 Message body

A comma operator is used except 'for' statement.

6.408.2 Content

Under construction.

6.408.3 Sample code

int a = 1;
int b = 0;

int c = (b = a, a); /* W0447 */

6.408.4 Related message

None.

6.408.5 Since

1.0.0


Next: , Previous: W0447, Up: Messages

6.409 W0456

6.409.1 Message body

An object or a function `%s which has external coupling is defined in a header file.

6.409.2 Content

Under construction.

6.409.3 Sample code

test.h

int num = 1; /* W0456 */

int func(void) /* W0456 */
{
    return num;
}

test.c

#include "test.h"

6.409.4 Related message

None.

6.409.5 Since

1.0.0


Next: , Previous: W0456, Up: Messages

6.410 W0457

6.410.1 Message body

The return value doesn't define explicitly in the function declaration or definition. It defined as 'int' implicitly.

6.410.2 Content

Under construction.

6.410.3 Sample code

func1(void); /* W0457 */

func2(void) /* W0457 */
{
    return 0;
}

6.410.4 Related message

None.

6.410.5 Since

1.0.0


Next: , Previous: W0457, Up: Messages

6.411 W0458

6.411.1 Message body

The type doesn't define explicitly in the object declaration or definition. It defined as 'int' implicitly.

6.411.2 Content

Under construction.

6.411.3 Sample code

a; /* W0458 */
b = 0; /* W0458 */
extern c; /* W0458 */
static d; /* W0458 */

int func(e) /* W0458 */
{
    const f = e; /* W0458 */
    return f;
}

6.411.4 Related message

None.

6.411.5 Since

1.0.0


Next: , Previous: W0458, Up: Messages

6.412 W0459

6.412.1 Message body

A value of variable `%s' doesn't set when this expression is evaluated. This program is danger.

6.412.2 Content

Under construction.

6.412.3 Sample code

int a;

if(a > 0) { /* W0459 */
}

6.412.4 Related message

6.412.5 Since

1.0.0


Next: , Previous: W0459, Up: Messages

6.413 W0460

6.413.1 Message body

A value of variable `%s' wouldn't set when this expression is evaluated.

6.413.2 Content

Under construction.

6.413.3 Sample code

void func(int a)
{
    int b;

    if (a == 0) {
        b = 1;
    }

    if (b > 0) { /* W0460 */
    }
}

6.413.4 Related message

6.413.5 Since

1.0.0


Next: , Previous: W0460, Up: Messages

6.414 W0461

6.414.1 Message body

A pointer which points the undetermined variable is used for the actual argument of the function. This program is danger.

6.414.2 Content

Under construction.

6.414.3 Sample code

extern int func1(const int *);

void func2(int a)
{
  int b;

  func1(&a); /* OK */
  func1(&b); /* W0461 */
}

6.414.4 Related message

6.414.5 Since

1.0.0


Next: , Previous: W0461, Up: Messages

6.415 W0462

6.415.1 Message body

A pointer which the value will probably not set is used for the actual argument of the function.

6.415.2 Content

Under construction.

6.415.3 Sample code

extern int func1(const int *);

int func2(int a)
{
    int b;

    if (a > 10) {
        b = a + 10;
    }

    func1(&b); /* W0462 */
}

6.415.4 Related message

6.415.5 Since

1.0.0


Next: , Previous: W0462, Up: Messages

6.416 W0477

6.416.1 Message body

There are unpaired `[]',`()',`{}' in macro definition.

6.416.2 Content

Under construction.

6.416.3 Sample code

#define BEGIN { /* W0477 */
#define END } /* W0477 */

void func()
BEGIN
    ...snip...
END

6.416.4 Related message

6.416.5 Since

1.0.0


Next: , Previous: W0477, Up: Messages

6.417 W0478

6.417.1 Message body

This macro defines scraps of unrecognized codes.

6.417.2 Content

Under construction.

6.417.3 Sample code

#define MALLOC_OR_DIE(ptr, size) ptr = malloc(size); if (!ptr) exit(1); /* W0478 */

6.417.4 Related message

6.417.5 Since

1.0.0


Next: , Previous: W0478, Up: Messages

6.418 W0479

6.418.1 Message body

This macro definition might be replaced with 'typedef' declaration.

6.418.2 Content

Under construction.

6.418.3 Sample code

#define foo unsigned int /* W0479 */

6.418.4 Related message

6.418.5 Since

1.0.0


Next: , Previous: W0479, Up: Messages

6.419 W0480

6.419.1 Message body

This macro defines keyword of control statement or punctuator.

6.419.2 Content

Under construction.

6.419.3 Sample code

#define PLUS + /* W0480 */
#define LOOP while /* W0480 */

6.419.4 Related message

6.419.5 Since

1.0.0


Next: , Previous: W0480, Up: Messages

6.420 W0481

6.420.1 Message body

This macro defines the block around by `{}'.

6.420.2 Content

Under construction.

6.420.3 Sample code

#define SETUP(a, b) /* W0481 */ \
    { \
        if (a) \
            b = 0; \
        else \
            b = 1; \
    }

6.420.4 Related message

6.420.5 Since

1.0.0


Next: , Previous: W0481, Up: Messages

6.421 W0482

6.421.1 Message body

This macro defines either type specifier.

6.421.2 Content

Under construction.

6.421.3 Sample code

#define COMPOSITE struct /* W0482 */

6.421.4 Related message

6.421.5 Since

1.0.0


Next: , Previous: W0482, Up: Messages

6.422 W0483

6.422.1 Message body

This macro defines the pair of storage class specifier and type specifier.

6.422.2 Content

Under construction.

6.422.3 Sample code

#define PRIVATE_FINAL static const /* W0483 */

6.422.4 Related message

6.422.5 Since

1.0.0


Next: , Previous: W0483, Up: Messages

6.423 W0488

6.423.1 Message body

A function call`()', array's index operation`[]', or structure/union operation `->' or `.' are used with && or ||. It had better clear the coupling by using `()'.

6.423.2 Content

Under construction.

6.423.3 Sample code

while (func(&a, &b) < 0 && i > 0) { /* W0488 */
    ...snip...
}

6.423.4 Related message

6.423.5 Since

1.0.0


Next: , Previous: W0488, Up: Messages

6.424 W0489

6.424.1 Message body

A monadic operator is used with `&&' or `||'. It had better clear the coupling by using `()'.

6.424.2 Content

Under construction.

6.424.3 Sample code

void func(unsigned int a, unsigned int b)
{
    unsigned int c = !a && b; /* W0489 */
}

6.424.4 Related message

6.424.5 Since

1.0.0


Next: , Previous: W0489, Up: Messages

6.425 W0490

6.425.1 Message body

A binary operator is used with `&&' or `||'. It had better clear the coupling by using `()'.

6.425.2 Content

Under construction.

6.425.3 Sample code

void func(unsigned int a, unsigned int b, unsigned int c)
{
    unsigned int d = a && b || c; /* W0490 */
}

6.425.4 Related message

6.425.5 Since

1.0.0


Next: , Previous: W0490, Up: Messages

6.426 W0491

6.426.1 Message body

The same identifier name `%s' is also used in the declaration of other namespace.

6.426.2 Content

Under construction.

6.426.3 Sample code

extern int foo;

struct foo { /* W0491 */
    int a;
    int b;
};

6.426.4 Related message

6.426.5 Since

1.0.0


Next: , Previous: W0491, Up: Messages

6.427 W0492

6.427.1 Message body

The same identifier name `%s' is also used in the member of structure/union, label, tag or normal identifier.

6.427.2 Content

Under construction.

6.427.3 Sample code

extern int foo;

struct a {
    int foo; /* W0492 */
    int b;
};

void func(void)
{
    struct a a;
    int b; /* W0492 */
}

6.427.4 Related message

6.427.5 Since

1.0.0


Next: , Previous: W0492, Up: Messages

6.428 W0493

6.428.1 Message body

The value of structure or union is passed as the actual argument of the function.

6.428.2 Content

Under construction.

6.428.3 Sample code

struct STR {
    long a;
    long b;
};

extern int foo(struct STR s);

void func(void)
{
    struct STR s = { 0 };

    foo(s); /* W0493 */
}

6.428.4 Related message

None.

6.428.5 Since

1.0.0


Next: , Previous: W0493, Up: Messages

6.429 W0495

6.429.1 Message body

operator%% is used with other arithmetic operator. It had better clear the coupling by using `()'.

6.429.2 Content

Under construction.

6.429.3 Sample code

void func(int a, int b, int c)
{
    int x = a % b  * c; /* W0495 */
}

6.429.4 Related message

6.429.5 Since

1.0.0


Next: , Previous: W0495, Up: Messages

6.430 W0496

6.430.1 Message body

A ternary operator is used several times. It had better clear the coupling by using `()'.

6.430.2 Content

Under construction.

6.430.3 Sample code

void func(int a, int b, int c, int d, int e)
{
    int f = a ? b : c ? d : e; /* W0496 */
}

6.430.4 Related message

6.430.5 Since

1.0.0


Next: , Previous: W0496, Up: Messages

6.431 W0497

6.431.1 Message body

Shift operator, relational operator or equivalent operator is used in several times. It had better clear the coupling by using `()'.

6.431.2 Content

Under construction.

6.431.3 Sample code

void func(int a, int b, int c)
{
    int d = a << b << c; /* W0497 */
}

6.431.4 Related message

6.431.5 Since

1.0.0


Next: , Previous: W0497, Up: Messages

6.432 W0498

6.432.1 Message body

The different operator of same priority in the binary operator '+','-', '*','/' is used. It had better clear the coupling by using `()'.

6.432.2 Content

Under construction.

6.432.3 Sample code

void func(int a, int b, int c)
{
    int d = a - b + c; /* W0498 */
}

6.432.4 Related message

6.432.5 Since

1.0.0


Next: , Previous: W0498, Up: Messages

6.433 W0499

6.433.1 Message body

The different operator of same priority in the binary operator except '+','-', '*','/' is used. It had better clear the coupling by using `()'.

6.433.2 Content

Under construction.

6.433.3 Sample code

void func(int a, int b, int c)
{
    int d = a << b >> c; /* W0499 */
}

6.433.4 Related message

6.433.5 Since

1.0.0


Next: , Previous: W0499, Up: Messages

6.434 W0500

6.434.1 Message body

The operator of different priority in the binary operator '+','-','*','/' is used. It had better clear the coupling by using `()'.

6.434.2 Content

Under construction.

6.434.3 Sample code

void func(int a, int b, int c)
{
    int d = a * b + c;  /* W0500 */
}

6.434.4 Related message

6.434.5 Since

1.0.0


Next: , Previous: W0500, Up: Messages

6.435 W0501

6.435.1 Message body

A ternary operator is used with binary operator. It had better clear the coupling by using `()'.

6.435.2 Content

Under construction.

6.435.3 Sample code

void func(int a, int b, int c)
{
    int d = a ? a : a + c; /* W0501 */
}

6.435.4 Related message

6.435.5 Since

1.0.0


Next: , Previous: W0501, Up: Messages

6.436 W0502

6.436.1 Message body

A binary operator except '+', '-', '*', '/', '%%' is used with the different priority of binary operator. It had better clear the coupling by using `()'.

6.436.2 Content

Under construction.

6.436.3 Sample code

void func(int a, int b, int c)
{
    int d = a != b << c; /* W0502 */
}

6.436.4 Related message

6.436.5 Since

1.0.0


Next: , Previous: W0502, Up: Messages

6.437 W0508

6.437.1 Message body

There's a side effect at the right operand of `&&' or `||'operator.

6.437.2 Content

Under construction.

6.437.3 Sample code

if ((a == b) && ((c = func()) == d)) /* W0508 */

if a==b is true, the return value of func() is substituted for the c.

6.437.4 Related message

None.

6.437.5 Since

1.0.0


Next: , Previous: W0508, Up: Messages

6.438 W0511

6.438.1 Message body

C++ style comment of `//' is used.

6.438.2 Content

Under construction.

6.438.3 Sample code

// W0511

6.438.4 Related message

None.

6.438.5 Since

1.0.0


Next: , Previous: W0511, Up: Messages

6.439 W0512

6.439.1 Message body

The result of `++' or `–' operator is used in the statement.

6.439.2 Content

Under construction.

6.439.3 Sample code

a = b++ + --c + d++; /* W0512 */

6.439.4 Related message

None.

6.439.5 Since

1.0.0


Next: , Previous: W0512, Up: Messages

6.440 W0525

6.440.1 Message body

A field named 1bit is declared by signed type.

6.440.2 Content

Under construction.

6.440.3 Sample code

struct ST {
    int bit:1; /* W0525 */
};

6.440.4 Related message

None.

6.440.5 Since

1.0.0


Next: , Previous: W0525, Up: Messages

6.441 W0528

6.441.1 Message body

This macro defines octal constant value.

6.441.2 Content

Under construction.

6.441.3 Sample code

#define MACRO 0123 /* W0528 */

6.441.4 Related message

6.441.5 Since

1.0.0


Next: , Previous: W0528, Up: Messages

6.442 W0529

6.442.1 Message body

An octal literal is used.

6.442.2 Content

Under construction.

6.442.3 Sample code

#define MACRO 0123

int a = 0123; /* W0529 */
int b = MACRO; /* W0529 */

6.442.4 Related message

6.442.5 Since

1.0.0


Next: , Previous: W0529, Up: Messages

6.443 W0530

6.443.1 Message body

An octal escape sequence is used in a character constant or a string literal.

6.443.2 Content

Under construction.

6.443.3 Sample code

char *s = "\012"; /* W0530 */

6.443.4 Related message

6.443.5 Since

1.0.0


Next: , Previous: W0530, Up: Messages

6.444 W0532

6.444.1 Message body

'break' statement is used to exits 'case' or 'default' section, but it's not described at the end of 'case' section.

6.444.2 Content

Under construction.

6.444.3 Sample code

switch (x) {
case 1:
    if (y == 0) {
        break; /* W0532 */
    }
    ...snip...
    break;
case 2:
    ...snip...
    break;
}

6.444.4 Related message

None.

6.444.5 Since

1.0.0


Next: , Previous: W0532, Up: Messages

6.445 W0534

6.445.1 Message body

A control variable `%s' is not initialized in this 'for' statement.

6.445.2 Content

Under construction.

6.445.3 Sample code

int i = 0;
int j;

for (; i < 10; i++) { /* W0534 */
}

for (j = 0; i < 20; i++) { /* W0534 */
}

6.445.4 Related message

None.

6.445.5 Since

1.0.0


Next: , Previous: W0534, Up: Messages

6.446 W0535

6.446.1 Message body

A comma operator is used in a 'for' statement.

6.446.2 Content

Under construction.

6.446.3 Sample code

int i, j, k = 0;

for (i = 0, j = 0; i < 10; i++, j++, k--) { /* W0535 */
}

6.446.4 Related message

None.

6.446.5 Since

1.0.0


Next: , Previous: W0535, Up: Messages

6.447 W0538

6.447.1 Message body

This 'default' label is not final label in this 'switch' statement.

6.447.2 Content

Under construction.

6.447.3 Sample code

switch (x) {
default: /* W0538 */
    ...snip...
case 1:
    ...snip...
}

6.447.4 Related message

None.

6.447.5 Since

1.0.0


Next: , Previous: W0538, Up: Messages

6.448 W0540

6.448.1 Message body

A function which the blank formal argument list is declared. `void' is omitted.

6.448.2 Content

Under construction.

6.448.3 Sample code

void func() /* W0540 */
{
    ...snip...
}

6.448.4 Related message

None.

6.448.5 Since

1.0.0


Next: , Previous: W0540, Up: Messages

6.449 W0541

6.449.1 Message body

Inline assembly code should be encapsulated by macro.

6.449.2 Content

Under construction.

6.449.3 Sample code

#define ASM_CODE asm("movl %ecx, %eax")

void foo(int arg1, int *arg2, int arg3)
{
    asm("movl %ecx, %eax"); /* W0541 */
    __asm__("movl %ecx, (%eax)"); /* W0541 */

    asm { /* W0541 */
        xorl eax, eax
    }

    ASM_CODE; /* OK */

    __asm__ volatile ( /* W0541 */
            "int $0x80"
            : "=a" (r)
              "+b" (arg1),
              "+c" (arg2),
              "+d" (arg3)
            : "a" (128)
            : "memory", "cc");
}

6.449.4 Related message

None.

6.449.5 Since

1.6.0


Next: , Previous: W0541, Up: Messages

6.450 W0542

6.450.1 Message body

There are identifiers in the part of formal argument in a function declaration.

6.450.2 Content

Under construction.

6.450.3 Sample code

void func(int i, char, int, char c); /* W0542 */

6.450.4 Related message

None.

6.450.5 Since

1.0.0


Next: , Previous: W0542, Up: Messages

6.451 W0543

6.451.1 Message body

The identifier of formal argument in this function declaration is different from the past declaration of it.

6.451.2 Content

Under construction.

6.451.3 Sample code

void func(int i1, int i2);

void func(int i2, int i1) /* W0543 */
{
    ...snip...
}

6.451.4 Related message

6.451.5 Since

1.0.0


Next: , Previous: W0543, Up: Messages

6.452 W0544

6.452.1 Message body

The identifier of formal argument in the function declaration is different from the declaration of function pointer.

6.452.2 Content

Under construction.

6.452.3 Sample code

void func(int i1, int i2);
void (*p)(int i2, int i1) = &func; /* W0544 */

6.452.4 Related message

6.452.5 Since

1.0.0


Next: , Previous: W0544, Up: Messages

6.453 W0546

6.453.1 Message body

There is 'case' or 'default' label of switch statement in a nested block.

6.453.2 Content

Under construction.

6.453.3 Sample code

switch (x) {
case 1:
    if (y > 0) {
    case 2: /* W0546 */
        break;
    }
    ...snip...
    break;
default:
    ...snip...
}

6.453.4 Related message

None.

6.453.5 Since

1.0.0


Next: , Previous: W0546, Up: Messages

6.454 W0549

6.454.1 Message body

A formal argument of macro doesn't enclosed by `()'.

6.454.2 Content

Under construction.

6.454.3 Sample code

#define ADD(a, b) a + b /* W0549 */

int x = 3 * ADD(1, 2);

(3 * 1) + 2 = 5 is substituted for the x instead of 3 * (1 + 2) = 9.

6.454.4 Related message

None.

6.454.5 Since

1.0.0


Next: , Previous: W0549, Up: Messages

6.455 W0551

6.455.1 Message body

An union type specifier is defined.

6.455.2 Content

Under construction.

6.455.3 Sample code

union UNI { /* W0551 */
    int a;
    short b;
    long c;
};

6.455.4 Related message

6.455.5 Since

1.0.0


Next: , Previous: W0551, Up: Messages

6.456 W0552

6.456.1 Message body

An union type object is defined.

6.456.2 Content

Under construction.

6.456.3 Sample code

union UNI {
    int a;
    short b;
    long c;
};

union UNI u; /* W0552 */

6.456.4 Related message

6.456.5 Since

1.0.0


Next: , Previous: W0552, Up: Messages

6.457 W0553

6.457.1 Message body

A pointer points to the function cast to other function pointer type.

6.457.2 Content

Under construction.

6.457.3 Sample code

extern int func(void);

void (*p)(int) = (void (*)(int)) &func; /* W0553 */

6.457.4 Related message

None.

6.457.5 Since

1.0.0


Next: , Previous: W0553, Up: Messages

6.458 W0554

6.458.1 Message body

An actual argument `%s' in `#pragma' is unrecognized. This `#pragma' command will be ignored.

6.458.2 Content

Under construction.

6.458.3 Sample code

#pragma SystemSpecificPragmaName 5 /* W0544 */

6.458.4 Related message

None.

6.458.5 Since

1.0.0


Next: , Previous: W0554, Up: Messages

6.459 W0555

6.459.1 Message body

This function is called recursive with indirectly.

6.459.2 Content

Under construction.

6.459.3 Sample code

test1.c

int func1(int i) /* W0555 */
{
    if (i < 10) {
        return i + 1;
    }
    else {
        return func3(i);
    }
}

test2.c

int func2(int i) /* W0555 */
{
    return func1(i) + 2;
}

test3.c

int func3(int i) /* W0555 */
{
    return func2(i) + 3;
}

6.459.4 Related message

6.459.5 Since

1.0.0


Next: , Previous: W0555, Up: Messages

6.460 W0556

6.460.1 Message body

The function which includes this call is called recursively.

6.460.2 Content

Under construction.

6.460.3 Sample code

int func(int i)
{
    if (i == 0) {
        return 0;
    }
    else {
        return func(i - 1); /* W0556 */
    }
}

6.460.4 Related message

6.460.5 Since

1.0.0


Next: , Previous: W0556, Up: Messages

6.461 W0559

6.461.1 Message body

The operand of `!' operator is the expression of bit operation or arithmetic operation.

6.461.2 Content

Under construction.

6.461.3 Sample code

int func(int a, int b)
{
    if (!(a || b)) {
        return 0;
    }
    else {
        return !(a & b); /* W0559 */
    }
}

6.461.4 Related message

6.461.5 Since

1.0.0


Next: , Previous: W0559, Up: Messages

6.462 W0560

6.462.1 Message body

The operand of `~' operator is boolean type expression.

6.462.2 Content

Under construction.

6.462.3 Sample code

int func(int a, int b)
{
    return ~((a < b) && (b > 0)); /* W0560 */
}

6.462.4 Related message

6.462.5 Since

1.0.0


Next: , Previous: W0560, Up: Messages

6.463 W0561

6.463.1 Message body

The meaning of `*p++' is `*(p++)'. It is not `(*p)++'. `*' operator is verbose.

6.463.2 Content

Under construction.

6.463.3 Sample code

*p++; /* W0561 */

6.463.4 Related message

None.

6.463.5 Since

1.0.0


Next: , Previous: W0561, Up: Messages

6.464 W0562

6.464.1 Message body

There are verbose `{}' in the initializer.

6.464.2 Content

Under construction.

6.464.3 Sample code

int ng[3][2] = { { {1, 2}, { 3, 4}, { 5, 6 } } }; /* W0562 */

int ok[3][2] = { { 1, 2 }, { 3, 4 }, { 5, 6 } }; /* OK */

6.464.4 Related message

None.

6.464.5 Since

1.0.0


Next: , Previous: W0562, Up: Messages

6.465 W0563

6.465.1 Message body

If it jumps from outside of this block to `%s' label,the local variable will not be initialized.

6.465.2 Content

Under construction.

6.465.3 Sample code

void func(int a, int b)
{
    if (a == 0) {
        if (b != 0) {
            goto ERR;
        }
    }
    else {
        int c = 0;
    ERR:  /* W0563 */
        b = c;
    }
}

6.465.4 Since

1.0.0


Next: , Previous: W0563, Up: Messages

6.466 W0564

6.466.1 Message body

If this 'goto' statement jumps to `%s' label,local variable will not be initialized.

6.466.2 Content

Under construction.

6.466.3 Sample code

void func(int a, int b)
{
    if (a == 0) {
        int c = 0;
    RETRY:
        b = c;
    }

    if (b != 0) {
        goto RETRY; /* W0564 */
    }
}

6.466.4 Related message

6.466.5 Since

1.0.0


Next: , Previous: W0564, Up: Messages

6.467 W0565

6.467.1 Message body

A volatile integer type cast to volatile pointer type and vice versa.

6.467.2 Content

Under construction.

6.467.3 Sample code

unsigned int a = 0xFFFFU;
volatile unsigned int *b = (volatile unsigned int *) a; /* W0565 */
unsigned int c = (unsigned int) b; /* W0565 */

6.467.4 Related message

6.467.5 Since

1.0.0


Next: , Previous: W0565, Up: Messages

6.468 W0566

6.468.1 Message body

A volatile integer type cast to function pointer type and vice versa.

6.468.2 Content

Under construction.

6.468.3 Sample code

unsigned int addr = 0xFFFFFFFFU;
void (*p)(int, long) = (void (*)(int, long)) addr; /* W0566 */
int i = (int) p; /* W0566 */

6.468.4 Related message

6.468.5 Since

1.0.0


Next: , Previous: W0566, Up: Messages

6.469 W0567

6.469.1 Message body

A volatile integer type cast to pointer to object and vice versa.

6.469.2 Content

Under construction.

6.469.3 Sample code

unsigned int addr = 0xFFFFFFFFU;
void (*p)(int, long) = (void (*)(int, long)) addr; /* W0567 */
int i = (int) p; /* W0567 */

6.469.4 Related message

6.469.5 Since

1.0.0


Next: , Previous: W0567, Up: Messages

6.470 W0568

6.470.1 Message body

The result of left shift operation against the signed constant expression value is undefined.

6.470.2 Content

Under construction.

6.470.3 Sample code

int a = 0x7FFFFFFF << 1; /* W0568 */
int b = -5 << 1; /* W0568 */

6.470.4 Related message

6.470.5 Since

1.0.0


Next: , Previous: W0568, Up: Messages

6.471 W0569

6.471.1 Message body

The result of left shift operation against the signed expression value is undefined.

6.471.2 Content

Under construction.

6.471.3 Sample code

int func(int a)
{
    if (a >= 0x40000000) {
        return a << 1; /* W0569 */
    }

    if (a < 0) {
        return a << 1; /* W0569 */
    }

    return a << 1;
}

6.471.4 Related message

6.471.5 Since

1.0.0


Next: , Previous: W0569, Up: Messages

6.472 W0570

6.472.1 Message body

The result of left shift operation against the signed expression value might be undefined.

6.472.2 Content

Under construction.

6.472.3 Sample code

int func(int a)
{
    if (a >= 0x10000000) {
        return a << 1; /* W0570 */
    }

    if (a < 10) {
        return a << 1; /* W0570 */
    }

    return a << 1;
}

6.472.4 Related message

6.472.5 Since

1.0.0


Next: , Previous: W0570, Up: Messages

6.473 W0571

6.473.1 Message body

The result of right shift operation against the signed data is a possibility the both logical shift and arithmetic shift by implementation.

6.473.2 Content

Under construction.

6.473.3 Sample code

int func(int a)
{
    return a >> 3; /* W0571 */
}

6.473.4 Related message

6.473.5 Since

1.0.0


Next: , Previous: W0571, Up: Messages

6.474 W0572

6.474.1 Message body

The result of bit operation against the signed data is defined by implementation.

6.474.2 Content

Under construction.

6.474.3 Sample code

void func(short a)
{
    short b;

    b = a >> 8; /* W0572 */
    b <<= 1; /* W0572 */
    b = a & 15; /* W0572 */
    b = a | 15; /* W0572 */
    b = a ^ 15; /* W0572 */
    b = ~a; /* W0572 */
}

6.474.4 Related message

6.474.5 Since

1.0.0


Next: , Previous: W0572, Up: Messages

6.475 W0573

6.475.1 Message body

A `-' character in scanset in `[]' is implementation defined.

6.475.2 Content

Under construction.

6.475.3 Sample code

char c;
scanf("%[a-z]", &c); /* W0573 */

6.475.4 Related message

None.

6.475.5 Since

1.6.0


Next: , Previous: W0573, Up: Messages

6.476 W0574

6.476.1 Message body

The character except for basic source character is used in the character constant.

6.476.2 Content

Under construction.

6.476.3 Sample code

const char c = '$'; /* W0574 */

6.476.4 Related message

6.476.5 Since

1.0.0


Next: , Previous: W0574, Up: Messages

6.477 W0575

6.477.1 Message body

The character except for basic source character is used in the string literal.

6.477.2 Content

Under construction.

6.477.3 Sample code

const char *str = "@$"; /* W0575 */

6.477.4 Related message

6.477.5 Since

1.0.0


Next: , Previous: W0575, Up: Messages

6.478 W0576

6.478.1 Message body

The character except for basic source character is used in the comment of source file `%s'.

6.478.2 Content

Under construction.

6.478.3 Sample code

/* $ W0576 */

6.478.4 Related message

6.478.5 Since

1.0.0


Next: , Previous: W0576, Up: Messages

6.479 W0577

6.479.1 Message body

The character except for basic source character is used in preprocessing directive of source file `%s'.

6.479.2 Content

Under construction.

6.479.3 Sample code

#define MACRO $ /* W0577 */

6.479.4 Related message

6.479.5 Since

1.0.0


Next: , Previous: W0577, Up: Messages

6.480 W0578

6.480.1 Message body

An implicit type conversion from volatile integer type of compound expression to bigger type.

6.480.2 Content

Under construction.

6.480.3 Sample code

void func(int a)
{
    long b = a * a; /* W0578 */
}

6.480.4 Related message

None.

6.480.5 Since

1.0.0


Next: , Previous: W0578, Up: Messages

6.481 W0579

6.481.1 Message body

Cast from compound expression of volatile integer type to bigger type.

6.481.2 Content

Under construction.

6.481.3 Sample code

void func(int a)
{
    long b = (long) (a * a); /* W0579 */
}

6.481.4 Related message

None.

6.481.5 Since

1.6.0


Next: , Previous: W0579, Up: Messages

6.482 W0580

6.482.1 Message body

An address of local static variable is substituted for a pointer which has a wider scope.

6.482.2 Content

Under construction.

6.482.3 Sample code

int *p;

void func(void)
{
    static int i = 0;

    p = &i; /* W0580 */
}

6.482.4 Related message

None.

6.482.5 Since

1.0.0


Next: , Previous: W0580, Up: Messages

6.483 W0581

6.483.1 Message body

The number or type of actual argument is different from the past.

6.483.2 Content

Under construction.

6.483.3 Sample code

int func(int a, short b, long c)
{
    switch (a) {
    case 0:
        return foo(a, b, c);
    case 1:
        return foo(a, c, b); /* W0581 */
    default:
        return foo(b, c); /* W0581 */
    }
}

6.483.4 Related message

6.483.5 Since

1.0.0


Next: , Previous: W0581, Up: Messages

6.484 W0582

6.484.1 Message body

The number or type of actual argument is different from the function prototype declaration at the following.

6.484.2 Content

Under construction.

6.484.3 Sample code

int func(int a, short b, long c)
{
    switch (a) {
    case 0:
        return foo(a, b, c);
    case 1:
        return foo(a, c, b); /* W0582 */
    default:
        return foo(b, c); /* W0582 */
    }
}

extern int foo(int, short, long);

6.484.4 Related message

6.484.5 Since

1.0.0


Next: , Previous: W0582, Up: Messages

6.485 W0583

6.485.1 Message body

The number or type of actual argument is different from the function declaration at the following.

6.485.2 Content

Under construction.

6.485.3 Sample code

int func(int a, short b, long c)
{
    switch (a) {
    case 0:
        return foo(a, b, c);
    case 1:
        return foo(a, c, b); /* W0583 */
    default:
        return foo(b, c); /* W0583 */
    }
}

int foo(int a, short b, long c)
{
    return a + b + c;
}

6.485.4 Related message

6.485.5 Since

1.0.0


Next: , Previous: W0583, Up: Messages

6.486 W0584

6.486.1 Message body

The type of %s actual argument is different from the type of formal argument in function definition.

6.486.2 Content

Under construction.

6.486.3 Sample code

extern void func1(a, b)
long a;
double b;
{
    ...snip...
}

void func2(void)
{
    int a = 0;
    long b = 0;

    func1(a, b); /* W0584 */
}

6.486.4 Related message

6.486.5 Since

1.0.0


Next: , Previous: W0584, Up: Messages

6.487 W0585

6.487.1 Message body

A control variable `%s' doesn't appear increment expression.

6.487.2 Content

Under construction.

6.487.3 Sample code

int i, j;

for (i = j = 0; i < 10; j++) { /* W0585 */
    i++;
}

6.487.4 Related message

None.

6.487.5 Since

1.0.0


Next: , Previous: W0585, Up: Messages

6.488 W0586

6.488.1 Message body

A typedef `%s' is declared in more than one place.

6.488.2 Content

Under construction.

6.488.3 Sample code

test1.c

typedef int *INT_PTR; /* W0586 */

void func1(INT_PTR)
{
    ...snip...
}

test2.c

typedef int *INT_PTR; /* W0586 */

void func2(INT_PTR)
{
    ...snip...
}

6.488.4 Related message

None.

6.488.5 Since

1.0.0


Next: , Previous: W0586, Up: Messages

6.489 W0589

6.489.1 Message body

An object `%s' is only referenced by function `%s' in the defined translation unit.

6.489.2 Content

Under construction.

6.489.3 Sample code

test1.c

void func1(void) /* W0589 & W0591 */
{
    ...snip...
}

void func2(void)
{
    func1();
}

test2.c

extern void func2(void);

void func3(void)
{
    func2();
}

6.489.4 Related message

None.

6.489.5 Since

1.0.0


Next: , Previous: W0589, Up: Messages

6.490 W0591

6.490.1 Message body

A function `%s' is only referenced by the defined translation unit.

6.490.2 Content

Under construction.

6.490.3 Sample code

test1.c

void func1(void) /* W0589 & W0591 */
{
    ...snip...
}

void func2(void)
{
    func1();
}

test2.c

extern void func2(void);

void func3(void)
{
    func2();
}

6.490.4 Related message

None.

6.490.5 Since

1.0.0


Next: , Previous: W0591, Up: Messages

6.491 W0593

6.491.1 Message body

An object `%s' is only referenced by the defined translation unit.

6.491.2 Content

Under construction.

6.491.3 Sample code

test1.c

int a = 100; /* W0593 */

void func1(void)
{
    a += 1;
}

void func2(void)
{
    func1();
    a += 2;
}

test2.c

extern void func2(void);

void func3(void)
{
    func2();
}

6.491.4 Related message

None.

6.491.5 Since

1.0.0


Next: , Previous: W0593, Up: Messages

6.492 W0597

6.492.1 Message body

`%s' is modified more than once between the side-effects completion point. The evaluation order is undefined.

6.492.2 Content

Under construction.

6.492.3 Sample code

extern int bar(int *);
extern int baz(const int *);

void foo(int a, int b)
{
    a = b * a++; /* W0597 */
    a = bar(&a) * a++; /* W0597 */
    b = bar(&a) * (a++ + --a); /* W0597, W0599 */
}

6.492.4 Related message

6.492.5 Since

1.2.0


Next: , Previous: W0597, Up: Messages

6.493 W0598

6.493.1 Message body

`%s' might be modified more than once between the side-effects completion point. The evaluation order is undefined.

6.493.2 Content

Under construction.

6.493.3 Sample code

extern int bar(int *);
extern int baz(const int *);

void foo(int a, int b)
{
    b = bar(&a) * a++; /* W0598 */
    b = bar(&a) + bar(&a); /* W0598 */
    b = bar(&a) + baz(&a); /* W0600 */
    b = baz(&a) + baz(&a);
}

6.493.4 Related message

6.493.5 Since

1.2.0


Next: , Previous: W0598, Up: Messages

6.494 W0599

6.494.1 Message body

`%s' is modified and referenced between the side-effects completion point. The evaluation order is undefined.

6.494.2 Content

Under construction.

6.494.3 Sample code

extern void bar(int, int, int);

void foo(int a, int b, int *c)
{
    b = (a + 1) + a++; /* W0599 */
    b = c[a] + c[++a]; /* W0599 */
    bar(a, a++, c[a]); /* W0599 */
    bar(a, a, c[a++]); /* W0599 */
    a = a + b;
    c[a] = a++ + b; /* W0599 */
}

6.494.4 Related message

6.494.5 Since

1.2.0


Next: , Previous: W0599, Up: Messages

6.495 W0600

6.495.1 Message body

`%s' is modified and might be referenced between the side-effects completion point. The evaluation order is undefined.

6.495.2 Content

Under construction.

6.495.3 Sample code

extern int bar(int *);
extern int baz(const int *);

void foo(int a, int b)
{
    b = bar(&a) * a; /* W0600 */
    b = baz(&a) * a;
}

6.495.4 Related message

6.495.5 Since

1.2.0


Next: , Previous: W0600, Up: Messages

6.496 W0605

6.496.1 Message body

A 'break' statement is used more than once to finish the repetition statement.

6.496.2 Content

Under construction.

6.496.3 Sample code

while (n > 0) {
    if (n == 1) {
        break;
    }

    if (n == 2) {
        break; /* W0605 */
    }
}

6.496.4 Related message

None.

6.496.5 Since

1.0.0


Next: , Previous: W0605, Up: Messages

6.497 W0606

6.497.1 Message body

An union has a member which type is floating-point.

6.497.2 Content

Under construction.

6.497.3 Sample code

union UNI { /* W0606 */
    float a;
    int b;
};

6.497.4 Related message

None.

6.497.5 Since

1.4.0


Next: , Previous: W0606, Up: Messages

6.498 W0607

6.498.1 Message body

An integer expression which the value which the value is minus converted to unsigned type.

6.498.2 Content

Under construction.

6.498.3 Sample code

void func(int a)
{
    if (a < 0) {
        unsigned int b = (unsigned int) a; /* W0607 */
    }
}

6.498.4 Related message

6.498.5 Since

1.8.0


Next: , Previous: W0607, Up: Messages

6.499 W0608

6.499.1 Message body

An integer expression which the value might be minus converted to unsigned type.

6.499.2 Content

Under construction.

6.499.3 Sample code

void fuu(int a)
{
    unsigned char b;

    if (a < 256) {
        b = (unsigned char) a; /* W0608 */
    }
}

6.499.4 Related message

6.499.5 Since

1.8.0


Next: , Previous: W0608, Up: Messages

6.500 W0609

6.500.1 Message body

The result of this logical operation is always true.

6.500.2 Content

Under construction.

6.500.3 Sample code

void func(int a)
{
    if (a < 0) {
        if (a != 0) { /* W0609 */
            ...snip...
        }
    }
}

6.500.4 Related message

6.500.5 Since

1.0.0


Next: , Previous: W0609, Up: Messages

6.501 W0610

6.501.1 Message body

The result of this logical operation is always false.

6.501.2 Content

Under construction.

6.501.3 Sample code

void func(int a)
{
    if (a < 0) {
        if (a == 0) { /* W0610 */
        }
    }
}

6.501.4 Related message

6.501.5 Since

1.0.0


Next: , Previous: W0610, Up: Messages

6.502 W0611

6.502.1 Message body

The value of this 'for' control expression is always true.

6.502.2 Content

Under construction.

6.502.3 Sample code

void func(int a)
{
    if ( a > 0 ) {
        while (a != 0) { /* W0611 */
            ...snip...
        }
    }
}

6.502.4 Since

1.0.0


Next: , Previous: W0611, Up: Messages

6.503 W0612

6.503.1 Message body

The value of this 'if' conditional expression is always true.

6.503.2 Content

Under construction.

6.503.3 Sample code

int i;

for (i = 0; i < 10; i++) {
    if (i < 20) { /* W0612 */
        ...snip...
    }
}

6.503.4 Related message

6.503.5 Since

1.0.0


Next: , Previous: W0612, Up: Messages

6.504 W0613

6.504.1 Message body

The value of this control expression is always false.

6.504.2 Content

Under construction.

6.504.3 Sample code

int i;

for (i = 0; i < 10; i++) {
    if (i > 10) { /* W0613 */
        ...snip...
    }
}

6.504.4 Related message

6.504.5 Since

1.0.0


Next: , Previous: W0613, Up: Messages

6.505 W0614

6.505.1 Message body

The value of this \"do-while\" control expression is always false. The body of repetition statement executed only once.

6.505.2 Content

Under construction.

6.505.3 Sample code

void func(int a)
{
    if (a == 0) {
        do {
        } while (a > 0); /* W0614 */
    }
}

6.505.4 Related message

6.505.5 Since

1.0.0


Next: , Previous: W0614, Up: Messages

6.506 W0622

6.506.1 Message body

A function is declared in the block scope.

6.506.2 Content

Under construction.

6.506.3 Sample code

int func1(void)
{
    extern int func2(void); /* W0622 */
}

6.506.4 Related message

None.

6.506.5 Since

1.0.0


Next: , Previous: W0622, Up: Messages

6.507 W0623

6.507.1 Message body

An external coupling object is declared in the block scope.

6.507.2 Content

Under construction.

6.507.3 Sample code

int func(void)
{
    extern int i; /* W0623 */
}

6.507.4 Related message

None.

6.507.5 Since

1.0.0


Next: , Previous: W0623, Up: Messages

6.508 W0624

6.508.1 Message body

There is '#define' or '#undef' in a block.

6.508.2 Content

Under construction.

6.508.3 Sample code

#define MACRO 0

int foo(void)
{
#if defined(MACRO)
#undef MACRO    /* W0624 */
#define MACRO 1 /* W0624 */
#endif

    return MACRO;
}

6.508.4 Related message

None.

6.508.5 Since

1.0.0


Next: , Previous: W0624, Up: Messages

6.509 W0625

6.509.1 Message body

`%s' is using in the declaration or definition of external coupling. But its 'typedef' doesn't declare in the header file.

6.509.2 Content

Under construction.

6.509.3 Sample code

typedef int *INT_PTR; /* W0625 */

extern INT_PTR func(void);

INT_PTR func(void)
{
    return 0;
}

6.509.4 Related message

None.

6.509.5 Since

1.8.0


Next: , Previous: W0625, Up: Messages

6.510 W0626

6.510.1 Message body

A wide character or wide string literal is used.

6.510.2 Content

Under construction.

6.510.3 Sample code

const wchar_t a = L'あ'; /* W0626 */

6.510.4 Related message

None.

6.510.5 Since

1.0.0


Next: , Previous: W0626, Up: Messages

6.511 W0627

6.511.1 Message body

There is a dead letter (only `;') in the following other code.

6.511.2 Content

Under construction.

6.511.3 Sample code

if (0); /* W0627 */
{
    ...snip...
}

6.511.4 Related message

None.

6.511.5 Since

1.0.0


Next: , Previous: W0627, Up: Messages

6.512 W0628

6.512.1 Message body

A function `%s' is defined, but this is not used in this project.

6.512.2 Content

Under construction.

6.512.3 Sample code

test1.c

int func1(void)
{
    return 0;
}

void func2(void) /* W0628 */
{
    ...snip...
}

test2.c

extern int func1(void);

int main(void)
{
    return func1();
}

6.512.4 Related message

6.512.5 Since

1.0.0


Next: , Previous: W0628, Up: Messages

6.513 W0629

6.513.1 Message body

A static function `%s()' is not used in this translation unit.

6.513.2 Content

Under construction.

6.513.3 Sample code

static int func1(void) /* W0629 */
{
    return 1;
}

int func2(void)
{
    return 1;
}

6.513.4 Related message

6.513.5 Since

1.0.0


Next: , Previous: W0629, Up: Messages

6.514 W0632

6.514.1 Message body

Using ' or " characters in `#include <%s>' directive makes undefined behavior.

6.514.2 Content

Under construction.

6.514.3 Sample code

#include <NG'_header.h> /* W0632 */

6.514.4 Related message

6.514.5 Since

1.8.0


Next: , Previous: W0632, Up: Messages

6.515 W0633

6.515.1 Message body

Using ' character in `#include "%s"' directive makes undefined behavior.

6.515.2 Content

Under construction.

6.515.3 Sample code

#include "NG'_header.h" /* W0633 */

6.515.4 Related message

6.515.5 Since

1.8.0


Next: , Previous: W0633, Up: Messages

6.516 W0634

6.516.1 Message body

`\' is used in `#include' line. `/' is recommended for the path delimiter.

6.516.2 Content

Under construction.

6.516.3 Sample code

#include "..\ng\header.h" /* W0634 */
#include "..\\ng\\header.h" /* W0634 */

6.516.4 Related message

6.516.5 Since

1.8.0


Next: , Previous: W0634, Up: Messages

6.517 W0635

6.517.1 Message body

The type doesn't match with %sth conversion specifier and the corresponding actual argument.

6.517.2 Content

Under construction.

6.517.3 Sample code

void func(int a)
{
    printf("Apple %f\n", a); /* W0635 */
}

Under construction.

6.517.4 Related message

6.517.5 Since

1.0.0


Next: , Previous: W0635, Up: Messages

6.518 W0636

6.518.1 Message body

An actual argument doesn't exist correspond to %sth conversion specifier.

6.518.2 Content

Under construction.

6.518.3 Sample code

void func(int a, int b, int c)
{
    printf("Banana %d, %d, %d\n", a, b); /* W0636 */
}

6.518.4 Related message

6.518.5 Since

1.0.0


Next: , Previous: W0636, Up: Messages

6.519 W0637

6.519.1 Message body

There is more actual argument than the number of conversion specifier in function call.

6.519.2 Content

Under construction.

6.519.3 Sample code

void func(int a, int b)
{
    printf("Orange %d\n", a, b); /* W0637 */
}

6.519.4 Related message

6.519.5 Since

1.0.0


Next: , Previous: W0637, Up: Messages

6.520 W0638

6.520.1 Message body

This function call requiring at least one actual argument.

6.520.2 Content

Under construction.

6.520.3 Sample code

printf(); /* W0638 */

6.520.4 Related message

6.520.5 Since

1.0.0


Next: , Previous: W0638, Up: Messages

6.521 W0639

6.521.1 Message body

%sth conversion specifier doesn't match with corresponding type of actual argument.

6.521.2 Content

Under construction.

6.521.3 Sample code

int a;

scanf("%f",  &a); /* W0639 */

6.521.4 Related message

6.521.5 Since

1.0.0


Next: , Previous: W0639, Up: Messages

6.522 W0640

6.522.1 Message body

%sth conversion specifier doesn't match with corresponding type of actual argument.

6.522.2 Content

Under construction.

6.522.3 Sample code

int a;

fscanf(stdin, "%d", a); /* W0640 */

6.522.4 Related message

6.522.5 Since

1.0.0


Next: , Previous: W0640, Up: Messages

6.523 W0641

6.523.1 Message body

Floating-point number type cast to pointer to object and vice versa.

6.523.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.523.3 Sample code

/* will be added */

6.523.4 Related message

None.

6.523.5 Since

2.0.0 (planned)


Next: , Previous: W0641, Up: Messages

6.524 W0642

6.524.1 Message body

It is impossible to get the array's address which declared with 'register'.

6.524.2 Content

Under construction.

6.524.3 Sample code

void func(void)
{
    register int a[3];

    int *p1 = a; /* W0642 */
    int *p2 = &a[1]; /* W0642 */
}

6.524.4 Related message

6.524.5 Since

1.8.0


Next: , Previous: W0642, Up: Messages

6.525 W0643

6.525.1 Message body

This string literal constituted by a macro is illegal form unenclosed by `\"'. `#'operator may apply to actual argument which has '\' at the end.

6.525.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.525.3 Sample code

/* will be added */

6.525.4 Related message

6.525.5 Since

2.0.0 (planned)


Next: , Previous: W0643, Up: Messages

6.526 W0644

6.526.1 Message body

A value in void statement is going to use. 'void' statement doesn't have a value.

6.526.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.526.3 Sample code

extern void func(void);

if(func() == 0) { /* W0644 */
    ...snip...
}

6.526.4 Related message

6.526.5 Since

2.0.0 (planned)


Next: , Previous: W0644, Up: Messages

6.527 W0645

6.527.1 Message body

'void' type cannot use in the type of formal argument.

6.527.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.527.3 Sample code

/* will be added */

6.527.4 Related message

6.527.5 Since

2.0.0 (planned)


Next: , Previous: W0645, Up: Messages

6.528 W0646

6.528.1 Message body

A normal string literal and a wide string literal are contiguous.

6.528.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.528.3 Sample code

/* will be added */

6.528.4 Related message

6.528.5 Since

2.0.0 (planned)


Next: , Previous: W0646, Up: Messages

6.529 W0649

6.529.1 Message body

A right operand value of shift operand is negative constant value. This result is undefined.

6.529.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.529.3 Sample code

short a; /* 16bit */
a <<= -4; /* W0649 */

6.529.4 Related message

6.529.5 Since

2.0.0 (planned)


Next: , Previous: W0649, Up: Messages

6.530 W0650

6.530.1 Message body

A right operand value of shift operator is much bigger than the bit size represented in left operand type. This result is undefined.

6.530.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.530.3 Sample code

char b; /* 8bit */
a = b << 16; /* W0650 */

6.530.4 Related message

6.530.5 Since

2.0.0 (planned)


Next: , Previous: W0650, Up: Messages

6.531 W0653

6.531.1 Message body

The initial value of an array, structure or union is not enclosed by `{}'.

6.531.2 Content

Under construction.

6.531.3 Sample code

struct ST {
    int i;
};

int a[3] = 0; /* W0653 */
struct ST s = 0; /* W0653 */

6.531.4 Related message

6.531.5 Since

1.0.0


Next: , Previous: W0653, Up: Messages

6.532 W0654

6.532.1 Message body

The initializer of structure or union must the value of the same structure type or union type.

6.532.2 Content

Under construction.

6.532.3 Sample code

struct A {
    int i;
};

struct B {
    int j;
};

struct A a = { 0 };
struct B b = a; /* W0654 */

6.532.4 Related message

6.532.5 Since

1.0.0


Next: , Previous: W0654, Up: Messages

6.533 W0655

6.533.1 Message body

This is bit field statement which the size is undefined.

6.533.2 Content

Under construction.

6.533.3 Sample code

struct ST {
    unsigned int a:2;
    unsigned int b:4;
};

void func(void)
{
    struct ST s = { 0 };
    int i = sizeof(s.a); /* W0655 */
}

6.533.4 Related message

6.533.5 Since

1.0.0


Next: , Previous: W0655, Up: Messages

6.534 W0656

6.534.1 Message body

%sth conversion specifier in scanf, fscanf or sscanf is not supported by ISO C standards.

6.534.2 Content

Under construction.

6.534.3 Sample code

void func(int count)
{
    printf("There are %Ld apples\n", count); /* W0656 */
}

6.534.4 Related message

6.534.5 Since

1.0.0


Next: , Previous: W0656, Up: Messages

6.535 W0657

6.535.1 Message body

An invalid flag is used in %sth conversion specifier of `i' or 'd'.

6.535.2 Content

Under construction.

6.535.3 Sample code

void func(int count)
{
    printf("There are %Ld apples\n", count); /* W0657 */
}

6.535.4 Related message

6.535.5 Since

1.0.0


Next: , Previous: W0657, Up: Messages

6.536 W0658

6.536.1 Message body

An invalid flag is used in %sth conversion specifier of `o'.

6.536.2 Content

Under construction.

6.536.3 Sample code

void func(unsigned int count)
{
    printf("There are %Lo apples\n", count); /* W0658 */
}

6.536.4 Related message

6.536.5 Since

1.0.0


Next: , Previous: W0658, Up: Messages

6.537 W0659

6.537.1 Message body

An invalid flag is used in %sth conversion specifier of `u'.

6.537.2 Content

Under construction.

6.537.3 Sample code

void func(unsigned int count)
{
    printf("There are %Lu apples\n", count); /* W0659 */
}

6.537.4 Related message

6.537.5 Since

1.0.0


Next: , Previous: W0659, Up: Messages

6.538 W0660

6.538.1 Message body

An invalid flag is used in %sth conversion specifier of `x'.

6.538.2 Content

Under construction.

6.538.3 Sample code

void func(unsigned int count)
{
    printf("There are %Lx apples\n", count); /* W0660 */
}

6.538.4 Related message

6.538.5 Since

1.0.0


Next: , Previous: W0660, Up: Messages

6.539 W0661

6.539.1 Message body

An invalid flag is used in %sth conversion specifier of `X'.

6.539.2 Content

Under construction.

6.539.3 Sample code

void func(unsigned int count)
{
    printf("There are %LX apples\n", count); /* W0661 */
}

6.539.4 Related message

6.539.5 Since

1.0.0


Next: , Previous: W0661, Up: Messages

6.540 W0662

6.540.1 Message body

An invalid flag is used in %sth conversion specifier of `f'.

6.540.2 Content

Under construction.

6.540.3 Sample code

void func(double count)
{
    printf("There are %lf apples\n", count); /* W0662 */
}

6.540.4 Related message

6.540.5 Since

1.0.0


Next: , Previous: W0662, Up: Messages

6.541 W0663

6.541.1 Message body

An invalid flag is used in %sth conversion specifier of `e'.

6.541.2 Content

Under construction.

6.541.3 Sample code

void func(double count)
{
    printf("There are %le apples\n", count); /* W0663 */
}

6.541.4 Related message

6.541.5 Since

1.0.0


Next: , Previous: W0663, Up: Messages

6.542 W0664

6.542.1 Message body

An invalid flag is used in %sth conversion specifier of `E'.

6.542.2 Content

Under construction.

6.542.3 Sample code

void func(double count)
{
    printf("There are %lE apples\n", count); /* W0664 */
}

6.542.4 Related message

6.542.5 Since

1.0.0


Next: , Previous: W0664, Up: Messages

6.543 W0665

6.543.1 Message body

An invalid flag is used in %sth conversion specifier of `g'.

6.543.2 Content

Under construction.

6.543.3 Sample code

void func(double count)
{
    printf("There are %lg apples\n", count); /* W0665 */
}

6.543.4 Related message

6.543.5 Since

1.0.0


Next: , Previous: W0665, Up: Messages

6.544 W0666

6.544.1 Message body

An invalid flag is used in %sth conversion specifier of `G'.

6.544.2 Content

Under construction.

6.544.3 Sample code

void func(double count)
{
    printf("There are %lG apples\n", count); /* W0666 */
}

6.544.4 Related message

6.544.5 Since

1.0.0


Next: , Previous: W0666, Up: Messages

6.545 W0667

6.545.1 Message body

An invalid flag is used in %sth conversion specifier of `c'.

6.545.2 Content

Under construction.

6.545.3 Sample code

void func(char count)
{
    printf("There are %hc apples\n", count); /* W0667 */
}

6.545.4 Related message

6.545.5 Since

1.0.0


Next: , Previous: W0667, Up: Messages

6.546 W0668

6.546.1 Message body

An invalid flag is used in %sth conversion specifier of `%%'.

6.546.2 Content

Under construction.

6.546.3 Sample code

void func(double percent)
{
    printf("There is %f%l% apple juice\n", percent); /* W0668 */
}

6.546.4 Related message

6.546.5 Since

1.0.0


Next: , Previous: W0668, Up: Messages

6.547 W0669

6.547.1 Message body

An invalid flag is used in %sth conversion specifier of `s'.

6.547.2 Content

Under construction.

6.547.3 Sample code

void func(char *s)
{
    printf("There are %hs apples\n", s); /* W0669 */
}

6.547.4 Related message

6.547.5 Since

1.0.0


Next: , Previous: W0669, Up: Messages

6.548 W0670

6.548.1 Message body

An invalid flag is used in %sth conversion specifier of `n'.

6.548.2 Content

Under construction.

6.548.3 Sample code

void func(void)
{
    int n;

    printf("There are %Ln apples\n", &n); /* W0670 */
}

6.548.4 Related message

6.548.5 Since

1.0.0


Next: , Previous: W0670, Up: Messages

6.549 W0671

6.549.1 Message body

An invalid flag is used in %sth conversion specifier of `p'.

6.549.2 Content

Under construction.

6.549.3 Sample code

void func(char *p)
{
    printf("p points to %lp\n", p); /* W0671 */
}

6.549.4 Related message

6.549.5 Since

1.0.0


Next: , Previous: W0671, Up: Messages

6.550 W0672

6.550.1 Message body

An invalid flag is used in %sth conversion specifier in scanf, fscanf, sscanf.

6.550.2 Content

Under construction.

6.550.3 Sample code

void func(void)
{
    int a;

    printf("%0", &a); /* W0672 */
}

6.550.4 Related message

6.550.5 Since

1.0.0


Next: , Previous: W0672, Up: Messages

6.551 W0673

6.551.1 Message body

%sth conversion specifier in printf, fprintf or sprintf is not supported by ISO C standards.

6.551.2 Content

Under construction.

6.551.3 Sample code

void func(void)
{
    int a;

    scanf("%y", &a); /* W0673 */
}

6.551.4 Related message

6.551.5 Since

1.0.0


Next: , Previous: W0673, Up: Messages

6.552 W0674

6.552.1 Message body

An invalid flag is used in %sth conversion specifier of `d/i/n'.

6.552.2 Content

Under construction.

6.552.3 Sample code

void func(void)
{
    int a;

    scanf("%Ld", &a); /* W0674 */
}

6.552.4 Related message

6.552.5 Since

1.0.0


Next: , Previous: W0674, Up: Messages

6.553 W0675

6.553.1 Message body

An invalid flag is used in %sth conversion specifier of `o'.

6.553.2 Content

Under construction.

6.553.3 Sample code

void func(void)
{
    int a;

    scanf("%Lo", &a); /* W0675 */
}

6.553.4 Related message

6.553.5 Since

1.0.0


Next: , Previous: W0675, Up: Messages

6.554 W0676

6.554.1 Message body

An invalid flag is used in %sth conversion specifier of `u'.

6.554.2 Content

Under construction.

6.554.3 Sample code

void func(void)
{
    int a;

    scanf("%Lu", &a); /* W0676 */
}

6.554.4 Related message

6.554.5 Since

1.0.0


Next: , Previous: W0676, Up: Messages

6.555 W0677

6.555.1 Message body

An invalid flag is used in %sth conversion specifier of `x/X.'

6.555.2 Content

Under construction.

6.555.3 Sample code

void func(void)
{
    int a;

    scanf("%Lx", &a); /* W0677 */
}

6.555.4 Related message

6.555.5 Since

1.0.0


Next: , Previous: W0677, Up: Messages

6.556 W0678

6.556.1 Message body

An invalid flag is used in %sth conversion specifier of `e/E/f/g/G'.

6.556.2 Content

Under construction.

6.556.3 Sample code

void func(void)
{
    double a;

    scanf("%lle", &a); /* W0678 */
}

6.556.4 Related message

6.556.5 Since

1.0.0


Next: , Previous: W0678, Up: Messages

6.557 W0679

6.557.1 Message body

An invalid flag is used in %sth conversion specifier of `s'.

6.557.2 Content

Under construction.

6.557.3 Sample code

void func(void)
{
    char a[256];

    scanf("%lls", a); /* W0679 */
}

6.557.4 Related message

6.557.5 Since

1.0.0


Next: , Previous: W0679, Up: Messages

6.558 W0680

6.558.1 Message body

An invalid flag is used in %sth conversion specifier of `p'.

6.558.2 Content

Under construction.

6.558.3 Sample code

void func(void)
{
    void *a;

    scanf("%lp", &a); /* W0680 */
}

6.558.4 Related message

6.558.5 Since

1.0.0


Next: , Previous: W0680, Up: Messages

6.559 W0681

6.559.1 Message body

An invalid flag is used in %sth conversion specifier of `%%'.

6.559.2 Content

Under construction.

6.559.3 Sample code

void func(void)
{
    int a;

    scanf("%d%l%", &a); /* W0681 */
}

6.559.4 Related message

6.559.5 Since

1.0.0


Next: , Previous: W0681, Up: Messages

6.560 W0682

6.560.1 Message body

An invalid flag is used in %sth conversion specifier of `['.

6.560.2 Content

Under construction.

6.560.3 Sample code

void func(void)
{
    char buf[256];

    scanf("%L[0-9]", buf); /* W0682 */
}

6.560.4 Related message

6.560.5 Since

1.0.0


Next: , Previous: W0682, Up: Messages

6.561 W0683

6.561.1 Message body

An invalid flag is used in %sth conversion specifier of `c'.

6.561.2 Content

Under construction.

6.561.3 Sample code

void func(void)
{
    char a;

    scanf("%Lc", &a); /* W0683 */
}

6.561.4 Related message

6.561.5 Since

1.0.0


Next: , Previous: W0683, Up: Messages

6.562 W0684

6.562.1 Message body

An invalid flag is used in %sth conversion specifier in printf, fprintf, sprintf.

6.562.2 Content

Under construction.

6.562.3 Sample code

void func(void)
{
    long a;

    scanf("%l", &a); /* W0684 */
}

6.562.4 Related message

6.562.5 Since

1.0.0


Next: , Previous: W0684, Up: Messages

6.563 W0685

6.563.1 Message body

A character preceding the `-' in scanset o `[]' is bigger than a character following the `-'.

6.563.2 Content

Under construction.

6.563.3 Sample code

char c;
scanf("%[z-a]", &c); /* W0685 */

6.563.4 Related message

6.563.5 Since

1.6.0


Next: , Previous: W0685, Up: Messages

6.564 W0686

6.564.1 Message body

The same characters are described in scanset (characters enclosed by `[]').

6.564.2 Content

Under construction.

6.564.3 Sample code

char c;
scanf("%[abcda]", &c); /* W0686 */

6.564.4 Related message

6.564.5 Since

1.6.0


Next: , Previous: W0686, Up: Messages

6.565 W0687

6.565.1 Message body

#undef is using to delete #defined operator.

6.565.2 Content

Under construction.

6.565.3 Sample code

#undef defined /* W0687 */

6.565.4 Related message

6.565.5 Since

1.4.0


Next: , Previous: W0687, Up: Messages

6.566 W0688

6.566.1 Message body

There is no line number in 1 to 32767 ranges after #line directive.

6.566.2 Content

Under construction.

6.566.3 Sample code

#line 35000 "test.c" /* W0688 */

6.566.4 Related message

6.566.5 Since

1.2.0


Next: , Previous: W0688, Up: Messages

6.567 W0689

6.567.1 Message body

#line directive syntax doesn't match `#line integer constant \"string\"'.

6.567.2 Content

Under construction.

6.567.3 Sample code

#line 35 * 100 /* W0689 */
#line 35 * 100 "test.c" /* W0689 */
#line 35 L"あいう.c" /* W0689 */
#line __FILE__ 35 /* W0689 */

6.567.4 Related message

6.567.5 Since

1.2.0


Next: , Previous: W0689, Up: Messages

6.568 W0690

6.568.1 Message body

No line number after #line directive.

6.568.2 Content

Under construction.

6.568.3 Sample code

#line LINE1000 /* W0690 */
#line __FILE__ 35 /* W0690 */

6.568.4 Related message

6.568.5 Since

1.2.0


Next: , Previous: W0690, Up: Messages

6.569 W0691

6.569.1 Message body

The result of `##' operator is not valid preprocessing token.

6.569.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.569.3 Sample code

/* will be added */

6.569.4 Related message

6.569.5 Since

2.0.0 (planned)


Next: , Previous: W0691, Up: Messages

6.570 W0692

6.570.1 Message body

A function-like macro doesn't given an actual argument.

6.570.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.570.3 Sample code

/* will be added */

6.570.4 Related message

6.570.5 Since

2.0.0 (planned)


Next: , Previous: W0692, Up: Messages

6.571 W0693

6.571.1 Message body

A function-like macro is called by actual argument which its definition is smaller.

6.571.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.571.3 Sample code

/* will be added */

6.571.4 Related message

6.571.5 Since

2.0.0 (planned)


Next: , Previous: W0693, Up: Messages

6.572 W0694

6.572.1 Message body

'assert' macro is inhibited to call the function named `assert'. This result is undefined.

6.572.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.572.3 Sample code

/* will be added */

6.572.4 Related message

None.

6.572.5 Since

2.0.0 (planned)


Next: , Previous: W0694, Up: Messages

6.573 W0695

6.573.1 Message body

If #undef the 'assert' macro, and enable to call its name function, the result is undefined.

6.573.2 Content

Under construction.

6.573.3 Sample code

#undef assert /* W0695 */
extern void assert(int a);

6.573.4 Related message

None.

6.573.5 Since

1.4.0


Next: , Previous: W0695, Up: Messages

6.574 W0696

6.574.1 Message body

This macro using in `#if...' is undefined.

6.574.2 Content

Under construction.

6.574.3 Sample code

#define MACRO (1)

#if MACRO == 1
    ...snip...
#endif

#undef MACRO

#if MACRO == 2 /* W0696 */
    ...snip...
#endif

6.574.4 Related message

None.

6.574.5 Since

1.0.0


Next: , Previous: W0696, Up: Messages

6.575 W0697

6.575.1 Message body

There is a path with exits with an implicit `return;' statement in a function `%s' which has a return value.

6.575.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.575.3 Sample code

int func(int value) /* W0697 */
{
    if (value == 0) {
        return 0;
    }
    // No return statement at the end of the function.
}

6.575.4 Related message

6.575.5 Since

2.0.0 (planned)


Next: , Previous: W0697, Up: Messages

6.576 W0698

6.576.1 Message body

A `return;' statement is found in a function `%s' which has a return value.

6.576.2 Content

Under construction.

6.576.3 Sample code

int func(void)
{
    return; /* W0698 */
}

6.576.4 Related message

6.576.5 Since

1.4.0


Next: , Previous: W0698, Up: Messages

6.577 W0699

6.577.1 Message body

The return value of function `%s()' is unspecified. The return value is implicitly int. There is no expression to set the value to 'return' statement.

6.577.2 Content

Under construction.

6.577.3 Sample code

extern func(void)
{
    return; /* W0699 */
}

6.577.4 Related message

6.577.5 Since

1.4.0


Next: , Previous: W0699, Up: Messages

6.578 W0700

6.578.1 Message body

The return value of function `%s()' is unspecified. The return value is implicitly int. There is no 'return' statement to return value.

6.578.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.578.3 Sample code

/* will be added */

6.578.4 Related message

6.578.5 Since

2.0.0 (planned)


Next: , Previous: W0700, Up: Messages

6.579 W0703

6.579.1 Message body

The tag `%s' hides the declaration of same identifier which has wider scope.

6.579.2 Content

Under construction.

6.579.3 Sample code

union FOO {
    ...snip...
};

void func(void)
{
    struct FOO { /* W0703 */
        ...snip...
    };
}

6.579.4 Related message

6.579.5 Since

1.0.0


Next: , Previous: W0703, Up: Messages

6.580 W0704

6.580.1 Message body

This `%s' declaration hides the declaration of same identifier which has wider scope.

6.580.2 Content

Under construction.

6.580.3 Sample code

int a;

void func(void)
{
    double a; /* W0704 */
}

6.580.4 Related message

6.580.5 Since

1.0.0


Next: , Previous: W0704, Up: Messages

6.581 W0705

6.581.1 Message body

An array's index might be out of range.

6.581.2 Content

Under construction.

6.581.3 Sample code

void func(unsigned int a)
{
    int buf[10];

    if (a < 10) {
        buf[a] = 0;
    }

    ...snip...

    buf[a] = 5; /* W0705 */
}

6.581.4 Related message

None.

6.581.5 Since

1.0.0


Next: , Previous: W0705, Up: Messages

6.582 W0707

6.582.1 Message body

An array's index is out of range.

6.582.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.582.3 Sample code

int arr[10];

arr[15] = 0; /* W0707 */

6.582.4 Related message

None.

6.582.5 Since

2.0.0 (planned)


Next: , Previous: W0707, Up: Messages

6.583 W0708

6.583.1 Message body

A value of control variable `%s' in 'for' statement is changed in the body of repetition.

6.583.2 Content

Under construction.

6.583.3 Sample code

int i, j;

for (i = j = 0; i < 10; j++) {
    i++; /* W0708 */
}

6.583.4 Related message

None.

6.583.5 Since

1.0.0


Next: , Previous: W0708, Up: Messages

6.584 W0711

6.584.1 Message body

Right operand of relational operator is a substantive 'boolean' expression.

6.584.2 Content

Under construction.

6.584.3 Sample code

int func(int a, int b, int c, int d)
{
    return (a + b) > (c > d); /* W0711 */
}

6.584.4 Related message

6.584.5 Since

1.8.0


Next: , Previous: W0711, Up: Messages

6.585 W0712

6.585.1 Message body

Left operand of relational operator is a substantive 'boolean' expression.

6.585.2 Content

Under construction.

6.585.3 Sample code

int func(int a, int b, int c, int d)
{
    return (a > b) > (c + d); /* W0712 */
}

6.585.4 Related message

6.585.5 Since

1.8.0


Next: , Previous: W0712, Up: Messages

6.586 W0713

6.586.1 Message body

Both sides of relational operator is substantive 'boolean' expressions.

6.586.2 Content

Under construction.

6.586.3 Sample code

int func(int a, int b, int c, int d)
{
    return (a > b) > (c > d); /* W0713 */
}

6.586.4 Related message

6.586.5 Since

1.8.0


Next: , Previous: W0713, Up: Messages

6.587 W0714

6.587.1 Message body

Both sides of `&' operator is substantive 'boolean' expressions.

6.587.2 Content

Under construction.

6.587.3 Sample code

int func(int a, int b, int c, int d)
{
    return (a > b) & (c > d); /* W0714 */
}

6.587.4 Related message

6.587.5 Since

1.8.0


Next: , Previous: W0714, Up: Messages

6.588 W0715

6.588.1 Message body

Both sides of `|' operator is substantive 'boolean' expressions.

6.588.2 Content

Under construction.

6.588.3 Sample code

int func(int a, int b, int c, int d)
{
    return (a > b) | (c > d); /* W0715 */
}

6.588.4 Related message

6.588.5 Since

1.8.0


Next: , Previous: W0715, Up: Messages

6.589 W0716

6.589.1 Message body

A bit operator or both sides operand of arithmetic operator is a substantive 'boolean' expression.

6.589.2 Content

Under construction.

6.589.3 Sample code

int func(int a, int b, int c, int d)
{
    return (a > b) + (c > d); /* W0716 */
}

6.589.4 Related message

6.589.5 Since

1.10.0


Next: , Previous: W0716, Up: Messages

6.590 W0717

6.590.1 Message body

A bit operator or left side operand of arithmetic operator is a substantive 'boolean' expression.

6.590.2 Content

Under construction.

6.590.3 Sample code

int func(int a, int b, int c)
{
    return (a > b) + c; /* W0717 */
}

6.590.4 Related message

6.590.5 Since

1.10.0


Next: , Previous: W0717, Up: Messages

6.591 W0718

6.591.1 Message body

A bit operator or right side operand of arithmetic operator is a substantive 'boolean' expression.

6.591.2 Content

Under construction.

6.591.3 Sample code

int func(int a, int b, int c)
{
    return a + (b > c);  /* W0718 */
}

6.591.4 Related message

6.591.5 Since

1.10.0


Next: , Previous: W0718, Up: Messages

6.592 W0719

6.592.1 Message body

A right operand of shift operator is a constant value of the above bit field of latency type.

6.592.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.592.3 Sample code

unsigned char uc;
unsigned int ui = uc >> 8; /* W0719 */

6.592.4 Related message

None.

6.592.5 Since

2.0.0 (planned)


Next: , Previous: W0719, Up: Messages

6.593 W0720

6.593.1 Message body

The value with floating-point type doesn't fit in the range of converted type.

6.593.2 Content

Under construction.

6.593.3 Sample code

signed char sc1 = (signed char) 127.5; /* OK */
signed char sc2 = (signed char) 128.5; /* W0720 */

signed char sc3 = (signed char) -128.5; /* OK */
signed char sc4 = (signed char) -129.5; /* W0720 */

6.593.4 Related message

None.

6.593.5 Since

1.4.0


Next: , Previous: W0720, Up: Messages

6.594 W0721

6.594.1 Message body

This volatile integer type doesn't have enough size to keep pointer value.

6.594.2 Content

Under construction.

6.594.3 Sample code

void func(int *p)
{
    /* when short is 16 bit long and pointer is 32 bit long */
    unsigned short us = (unsigned short) p; /* W0721 */
}

6.594.4 Related message

None.

6.594.5 Since

1.4.0


Next: , Previous: W0721, Up: Messages

6.595 W0722

6.595.1 Message body

A value of signed statement is overflow.

6.595.2 Content

Under construction.

6.595.3 Sample code

int func(int a)
{
    /* when int is 32 bit long */
    if (a < 0) {
        return a + 1; /* OK */
    }
    else if (a < 2147483647) {
        return a + 1; /* OK */
    }

    return a + 1; /* W0722 */
}

6.595.4 Related message

6.595.5 Since

1.4.0


Next: , Previous: W0722, Up: Messages

6.596 W0723

6.596.1 Message body

A value of signed statement might be overflow.

6.596.2 Content

Under construction.

6.596.3 Sample code

int func(int a)
{
    /* when int is 32 bit long */
    if (a < 0) {
        return a + 1; /* OK */
    }
    else if (a < 2000000000) {
        return a + 1; /* OK */
    }

    return a + 1; /* W0723 */
}

6.596.4 Related message

6.596.5 Since

1.4.0


Next: , Previous: W0723, Up: Messages

6.597 W0724

6.597.1 Message body

An unrecognized preprocessing directive is ignored by conditional include directive.

6.597.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.597.3 Sample code

/* will be added */

6.597.4 Related message

None.

6.597.5 Since

2.0.0 (planned)


Next: , Previous: W0724, Up: Messages

6.598 W0726

6.598.1 Message body

A function `%s()' which return value is declared as qualified void type, `return expression;' is found.

6.598.2 Content

Under construction.

6.598.3 Sample code

const void func(int a)
{
    if (a == 0) {
        return 0; /* W0726 */
    }
}

6.598.4 Related message

None.

6.598.5 Since

1.4.0


Next: , Previous: W0726, Up: Messages

6.599 W0727

6.599.1 Message body

The value not part of the enumeration type is used.

6.599.2 Content

Under construction.

6.599.3 Sample code

enum Fruits {
    APPLE = 1,
    BANANA,
    ORANGE
};

enum Fruits fruit = 5; /* W0727 */

6.599.4 Related message

6.599.5 Since

1.4.0


Next: , Previous: W0727, Up: Messages

6.600 W0728

6.600.1 Message body

Other enumeration literal of enumeration type is passed to enumeration literal of formal argument as actual argument.

6.600.2 Content

Under construction.

6.600.3 Sample code

enum Color { RED, BLUE, GREEN };
enum Fruits { APPLE, BANANA, ORANGE };

extern void func1(enum Color);

void func2(void)
{
    func1(ORANGE); /* W0728 */
}

6.600.4 Related message

6.600.5 Since

1.4.0


Next: , Previous: W0728, Up: Messages

6.601 W0729

6.601.1 Message body

An enumeration literal of the other enumeration type is substituted for enumeration type object.

6.601.2 Content

Under construction.

6.601.3 Sample code

enum Color { RED, BLUE, GREEN };
enum Fruits { APPLE, BANANA, ORANGE };

void func(void)
{
    enum Color c;

    c = ORANGE; /* W0729 */
}

6.601.4 Related message

6.601.5 Since

1.4.0


Next: , Previous: W0729, Up: Messages

6.602 W0730

6.602.1 Message body

A function declared return value to enumeration type returned an enumeration literal of the other enumeration type.

6.602.2 Content

Under construction.

6.602.3 Sample code

enum Color { RED, BLUE, GREEN };
enum Fruits { APPLE, BANANA, ORANGE };

enum Color func(void)
{
    return ORANGE; /* W0730 */
}

6.602.4 Related message

6.602.5 Since

1.4.0


Next: , Previous: W0730, Up: Messages

6.603 W0731

6.603.1 Message body

The value of `%s' in 'case' label of 'switch' statement doesn't belong enumeration type of the control statement.

6.603.2 Content

Under construction.

6.603.3 Sample code

enum Color { RED, BLUE, GREEN };
enum Fruits { APPLE, BANANA, ORANGE, GRAPE };

int func(enum Color c)
{
    switch (c) {
    case RED:
        return 1;
    case GRAPE: /* W0731 */
        return 2;
    }

    return 0;
}

6.603.4 Related message

6.603.5 Since

1.4.0


Next: , Previous: W0731, Up: Messages

6.604 W0732

6.604.1 Message body

Both operand of `&&'operator is bit operator or arithmetic operator.

6.604.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.604.3 Sample code

/* will be added */

6.604.4 Related message

6.604.5 Since

2.0.0 (planned)


Next: , Previous: W0732, Up: Messages

6.605 W0733

6.605.1 Message body

Both operand of `||'operator is bit operator or arithmetic operator.

6.605.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.605.3 Sample code

/* will be added */

6.605.4 Related message

6.605.5 Since

2.0.0 (planned)


Next: , Previous: W0733, Up: Messages

6.606 W0734

6.606.1 Message body

A left operand of logical operator is bit operator or arithmetic operator.

6.606.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.606.3 Sample code

/* will be added */

6.606.4 Related message

6.606.5 Since

2.0.0 (planned)


Next: , Previous: W0734, Up: Messages

6.607 W0735

6.607.1 Message body

A right operand of logical operator is the expression of bit operator or arithmetic operator.

6.607.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.607.3 Sample code

/* will be added */

6.607.4 Related message

6.607.5 Since

2.0.0 (planned)


Next: , Previous: W0735, Up: Messages

6.608 W0736

6.608.1 Message body

A static variable `%s' which declared in file scope is read and write in one function only.

6.608.2 Content

Under construction.

6.608.3 Sample code

static int a = 10; /* W0736 */

int func1(void)
{
    return 0;
}

int func2(void)
{
    return ++a;
}

6.608.4 Related message

None.

6.608.5 Since

1.0.0


Next: , Previous: W0736, Up: Messages

6.609 W0737

6.609.1 Message body

The content of `enum %s' is unknown. The enumeration tag is declared without define the content.

6.609.2 Content

Under construction.

6.609.3 Sample code

extern enum Foo foo; /* W0737 */

6.609.4 Related message

None.

6.609.5 Since

1.4.0


Next: , Previous: W0737, Up: Messages

6.610 W0738

6.610.1 Message body

An implicit type conversion from positive integer constant expression to smaller unsigned type. The value is rounded.

6.610.2 Content

Under construction.

6.610.3 Sample code

/* when char is 8 bit long */
const unsigned char uc1 = 255; /* OK */
const unsigned char uc2 = 256; /* W0738 */

/* when int is 32 bit long */
const unsigned int ui1 = 4294967295; /* OK */
const unsigned int ui2 = 4294967296; /* W0738 */

6.610.4 Related message

None.

6.610.5 Since

1.4.0


Next: , Previous: W0738, Up: Messages

6.611 W0739

6.611.1 Message body

The result of unsigned subtraction in constant expression is minus.

6.611.2 Content

Under construction.

6.611.3 Sample code

const unsigned int ui1 = 3U - 3U; /* OK */
const unsigned int ui2 = 3U - 5U; /* W0739 */

6.611.4 Related message

6.611.5 Since

1.4.0


Next: , Previous: W0739, Up: Messages

6.612 W0740

6.612.1 Message body

The result of unsigned addition in constant expression beyond the maximum.

6.612.2 Content

Under construction.

6.612.3 Sample code

/* when int is 32 bit long */
const unsigned int ui1 = 4294967294U + 1U; /* OK */
const unsigned int ui2 = 4294967295U + 1U; /* W0740 */

6.612.4 Related message

6.612.5 Since

1.4.0


Next: , Previous: W0740, Up: Messages

6.613 W0741

6.613.1 Message body

The result of unsigned multiplication in constant expression beyond the maximum.

6.613.2 Content

Under construction.

6.613.3 Sample code

/* when int is 32 bit long */
const unsigned int ui1 = 2000000000U * 2U; /* OK */
const unsigned int ui2 = 3000000000U * 2U; /* W0741 */

6.613.4 Related message

6.613.5 Since

1.4.0


Next: , Previous: W0741, Up: Messages

6.614 W0742

6.614.1 Message body

A negative integer constant expression converted to unsigned type.

6.614.2 Content

Under construction.

6.614.3 Sample code

#define MACRO (50)

unsigned int ui;

ui = MACRO - 100; /* W0742 */

6.614.4 Related message

None.

6.614.5 Since

1.0.0


Next: , Previous: W0742, Up: Messages

6.615 W0743

6.615.1 Message body

The value of integer constant expression beyond the range of might be expressed with converted signed type.

6.615.2 Content

Under construction.

6.615.3 Sample code

/* when char is 8 bit long */
const signed char sc1 = 127; /* OK */
const signed char sc2 = 128; /* W0743 */

/* when int is 32 bit long */
const int si1 = 2147483647; /* OK */
const int si2 = 2147483648; /* W0743 */

6.615.4 Related message

None.

6.615.5 Since

1.4.0


Next: , Previous: W0743, Up: Messages

6.616 W0744

6.616.1 Message body

The value of this control expression is constant value to be false. This control statement is not run.

6.616.2 Content

Under construction.

6.616.3 Sample code

#define MACRO1 (0)
#define MACRO2 (1)

if (MACRO1 == MACRO2) { /* W0744 */
    ...snip...
}

6.616.4 Related message

None.

6.616.5 Since

1.0.0


Next: , Previous: W0744, Up: Messages

6.617 W0745

6.617.1 Message body

The array's index points out of domain.

6.617.2 Content

Under construction.

6.617.3 Sample code

void func(unsigned int a)
{
    int buf[10];

    if (a > 5 && a < 10) {
        buf[a + 5] = 0; /* W0745 */
    }
}

6.617.4 Related message

None.

6.617.5 Since

1.0.0


Next: , Previous: W0745, Up: Messages

6.618 W0747

6.618.1 Message body

An implicit type conversion from short to signed char.

6.618.2 Content

Under construction.

6.618.3 Sample code

extern void foo(signed char a);

void bar(short a)
{
    signed char b = a; /* W0747 */
    foo(a); /* W0747 */
}

6.618.4 Related message

6.618.5 Since

1.0.0


Next: , Previous: W0747, Up: Messages

6.619 W0748

6.619.1 Message body

An implicit type conversion from unsigned short to unsigned char.

6.619.2 Content

Under construction.

6.619.3 Sample code

extern void foo(unsigned char a);

void bar(unsigned short a)
{
      unsigned char b = a; /* W0748 */
      foo(a); /* W0748 */
}

6.619.4 Related message

6.619.5 Since

1.0.0


Next: , Previous: W0748, Up: Messages

6.620 W0749

6.620.1 Message body

An implicit type conversion from int to signed char.

6.620.2 Content

Under construction.

6.620.3 Sample code

extern void foo(signed char a);

void bar(int a)
{
    signed char b = a; /* W0749 */
    foo(a); /* W0749 */
}

6.620.4 Related message

6.620.5 Since

1.0.0


Next: , Previous: W0749, Up: Messages

6.621 W0750

6.621.1 Message body

An implicit type conversion from int to short.

6.621.2 Content

Under construction.

6.621.3 Sample code

extern void foo(short a);

void bar(int a)
{
    short b = a; /* W0750 */
    foo(a); /* W0750 */
}

6.621.4 Related message

6.621.5 Since

1.0.0


Next: , Previous: W0750, Up: Messages

6.622 W0751

6.622.1 Message body

An implicit type conversion from unsigned int to unsigned char.

6.622.2 Content

Under construction.

6.622.3 Sample code

extern void foo(unsigned char a);

void bar(unsigned int a)
{
    unsigned char b = a; /* W0751 */
    foo(a); /* W0751 */
}

6.622.4 Related message

6.622.5 Since

1.0.0


Next: , Previous: W0751, Up: Messages

6.623 W0752

6.623.1 Message body

An implicit type conversion from unsigned int to unsigned short.

6.623.2 Content

Under construction.

6.623.3 Sample code

extern void foo(unsigned short a);

void bar(unsigned int a)
{
    unsigned short b = a; /* W0752 */
    foo(a); /* W0752 */
}

6.623.4 Related message

6.623.5 Since

1.0.0


Next: , Previous: W0752, Up: Messages

6.624 W0753

6.624.1 Message body

An implicit type conversion from long to signed char.

6.624.2 Content

Under construction.

6.624.3 Sample code

extern void foo(signed char a);

void bar(long a)
{
    signed char b = a; /* W0753 */
    foo(a); /* W0753 */
}

6.624.4 Related message

6.624.5 Since

1.0.0


Next: , Previous: W0753, Up: Messages

6.625 W0754

6.625.1 Message body

An implicit type conversion from long to short.

6.625.2 Content

Under construction.

6.625.3 Sample code

extern void foo(short a);

void bar(long a)
{
    short b = a; /* W0754 */
    foo(a); /* W0754 */
}

6.625.4 Related message

6.625.5 Since

1.0.0


Next: , Previous: W0754, Up: Messages

6.626 W0755

6.626.1 Message body

An implicit type conversion from long to int.

6.626.2 Content

Under construction.

6.626.3 Sample code

extern void foo(int a);

void bar(long a)
{
    int b = a; /* W0755 */
    foo(a); /* W0755 */
}

6.626.4 Related message

6.626.5 Since

1.0.0


Next: , Previous: W0755, Up: Messages

6.627 W0756

6.627.1 Message body

An implicit type conversion from unsigned long to unsigned char.

6.627.2 Content

Under construction.

6.627.3 Sample code

extern void foo(unsigned char a);

void bar(unsigned long a)
{
    unsigned char b = a; /* W0756 */
    foo(a); /* W0756 */
}

6.627.4 Related message

6.627.5 Since

1.0.0


Next: , Previous: W0756, Up: Messages

6.628 W0757

6.628.1 Message body

An implicit type conversion from unsigned long to unsigned short.

6.628.2 Content

Under construction.

6.628.3 Sample code

extern void foo(unsigned short a);

void bar(unsigned long a)
{
    unsigned short b = a; /* W0757 */
    foo(a); /* W0757 */
}

6.628.4 Related message

6.628.5 Since

1.0.0


Next: , Previous: W0757, Up: Messages

6.629 W0758

6.629.1 Message body

An implicit type conversion from unsigned long to unsigned int.

6.629.2 Content

Under construction.

6.629.3 Sample code

extern void foo(unsigned int a);

void bar(unsigned long a)
{
    unsigned int b = a; /* W0758 */
    foo(a); /* W0758 */
}

6.629.4 Related message

6.629.5 Since

1.0.0


Next: , Previous: W0758, Up: Messages

6.630 W0759

6.630.1 Message body

An implicit type conversion from long long to signed char.

6.630.2 Content

Under construction.

6.630.3 Sample code

extern void foo(signed char a);

void bar(long long a)
{
    signed char b = a; /* W0759 */
    foo(a); /* W0759 */
}

6.630.4 Related message

6.630.5 Since

1.0.0


Next: , Previous: W0759, Up: Messages

6.631 W0760

6.631.1 Message body

An implicit type conversion from long long to short.

6.631.2 Content

Under construction.

6.631.3 Sample code

extern void foo(short a);

void bar(long long a)
{
    short b = a; /* W0760 */
    foo(a); /* W0760 */
}

6.631.4 Related message

6.631.5 Since

1.0.0


Next: , Previous: W0760, Up: Messages

6.632 W0761

6.632.1 Message body

An implicit type conversion from long long to int.

6.632.2 Content

Under construction.

6.632.3 Sample code

extern void foo(int a);

void bar(long long a)
{
    int b = a; /* W0761 */
    foo(a); /* W0761 */
}

6.632.4 Related message

6.632.5 Since

1.0.0


Next: , Previous: W0761, Up: Messages

6.633 W0762

6.633.1 Message body

An implicit type conversion from long long to long.

6.633.2 Content

Under construction.

6.633.3 Sample code

extern void foo(long a);

void bar(long long a)
{
    long b = a; /* W0762 */
    foo(a); /* W0762 */
}

6.633.4 Related message

6.633.5 Since

1.0.0


Next: , Previous: W0762, Up: Messages

6.634 W0763

6.634.1 Message body

An implicit type conversion from unsigned long long to unsigned char.

6.634.2 Content

Under construction.

6.634.3 Sample code

extern void foo(unsigned char a);

void bar(unsigned long long a)
{
    unsigned char b = a; /* W0763 */
    foo(a); /* W0763 */
}

6.634.4 Related message

6.634.5 Since

1.0.0


Next: , Previous: W0763, Up: Messages

6.635 W0764

6.635.1 Message body

An implicit type conversion from unsigned long long to unsigned short.

6.635.2 Content

Under construction.

6.635.3 Sample code

extern void foo(unsigned short a);

void bar(unsigned long long a)
{
    unsigned short b = a; /* W0764 */
    foo(a); /* W0764 */
}

6.635.4 Related message

6.635.5 Since

1.0.0


Next: , Previous: W0764, Up: Messages

6.636 W0765

6.636.1 Message body

An implicit type conversion from unsigned long long to unsigned int.

6.636.2 Content

Under construction.

6.636.3 Sample code

extern void foo(unsigned int a);

void bar(unsigned long long a)
{
    unsigned int b = a; /* W0765 */
    foo(a); /* W0765 */
}

6.636.4 Related message

6.636.5 Since

1.0.0


Next: , Previous: W0765, Up: Messages

6.637 W0766

6.637.1 Message body

An implicit type conversion from unsigned long long to unsigned long.

6.637.2 Content

Under construction.

6.637.3 Sample code

extern void foo(unsigned long a);

void bar(unsigned long long a)
{
    unsigned long b = a; /* W0766 */
    foo(a); /* W0766 */
}

6.637.4 Related message

6.637.5 Since

1.0.0


Next: , Previous: W0766, Up: Messages

6.638 W0767

6.638.1 Message body

An implicit type conversion from double to float.

6.638.2 Content

Under construction.

6.638.3 Sample code

extern void foo(float a);

void bar(double a)
{
    float b = a; /* W0767 */
    foo(a); /* W0767 */
}

6.638.4 Related message

6.638.5 Since

1.0.0


Next: , Previous: W0767, Up: Messages

6.639 W0768

6.639.1 Message body

An implicit type conversion from long double to float.

6.639.2 Content

Under construction.

6.639.3 Sample code

extern void foo(float a);

void bar(long double a)
{
    float b = a; /* W0768 */
    foo(a); /* W0768 */
}

6.639.4 Related message

6.639.5 Since

1.0.0


Next: , Previous: W0768, Up: Messages

6.640 W0769

6.640.1 Message body

An implicit type conversion from long double to double.

6.640.2 Content

Under construction.

6.640.3 Sample code

extern void foo(double a);

void bar(long double a)
{
    double b = a; /* W0769 */
    foo(a); /* W0769 */
}

6.640.4 Related message

6.640.5 Since

1.0.0


Next: , Previous: W0769, Up: Messages

6.641 W0770

6.641.1 Message body

A declaration of identifier `%s' which has external coupling exists more than one.

6.641.2 Content

Under construction.

6.641.3 Sample code

test1.h

extern int func(void); /* W0770 */

test2.h

extern int func(void); /* W0770 */

test.c

#include "test1.h"
#include "test2.h"

int func(void)
{
    return 0;
}

6.641.4 Related message

6.641.5 Since

1.0.0


Next: , Previous: W0770, Up: Messages

6.642 W0771

6.642.1 Message body

A global identifier `%s' is declared in more than one file.

6.642.2 Content

Under construction.

6.642.3 Sample code

test1.h

extern int func(void); /* W0771 */
extern int a; /* W0771 */

test2.h

extern int func(void); /* W0771 */
extern int a; /* W0771 */

test.c

#include "test1.h"
#include "test2.h"

6.642.4 Related message

6.642.5 Since

1.0.0


Next: , Previous: W0771, Up: Messages

6.643 W0774

6.643.1 Message body

A value of double type is returned from `float %s()'function.

6.643.2 Content

Under construction.

6.643.3 Sample code

extern double foo(void);

float bar(void)
{
    return foo(); /* W0774 */
}

6.643.4 Related message

6.643.5 Since

1.0.0


Next: , Previous: W0774, Up: Messages

6.644 W0775

6.644.1 Message body

A value of long double type is returned from `float %s()' function.

6.644.2 Content

Under construction.

6.644.3 Sample code

extern long double foo(void);

float bar(void)
{
    return foo(); /* W0775 */
}

6.644.4 Related message

6.644.5 Since

1.0.0


Next: , Previous: W0775, Up: Messages

6.645 W0776

6.645.1 Message body

A value of long double type is returned from `double %s()'function.

6.645.2 Content

Under construction.

6.645.3 Sample code

extern long double foo(void);

double bar(void)
{
    return foo(); /* W0776 */
}

6.645.4 Related message

6.645.5 Since

1.0.0


Next: , Previous: W0776, Up: Messages

6.646 W0777

6.646.1 Message body

An implicit type conversion from compound expression of float to double.

6.646.2 Content

Under construction.

6.646.3 Sample code

Under construction.

void func(float a, float b)
{
    double c = a + b; /* W0777 */
}

6.646.4 Related message

6.646.5 Since

1.0.0


Next: , Previous: W0777, Up: Messages

6.647 W0778

6.647.1 Message body

An implicit type conversion from compound expression of float to long double.

6.647.2 Content

Under construction.

6.647.3 Sample code

void func(float a, float b)
{
    long double c = a + b; /* W0778 */
}

Under construction.

6.647.4 Related message

6.647.5 Since

1.0.0


Next: , Previous: W0778, Up: Messages

6.648 W0779

6.648.1 Message body

An implicit type conversion from compound expression of to long double.

6.648.2 Content

Under construction.

6.648.3 Sample code

Under construction.

void func(double a, double b)
{
    long double c = a + b; /* W0779 */
}

6.648.4 Related message

6.648.5 Since

1.0.0


Next: , Previous: W0779, Up: Messages

6.649 W0780

6.649.1 Message body

Unsigned left shift operator `<<' in constant expression truncate non-zero high-order bit.

6.649.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.649.3 Sample code

unsigned int ui = 0x0F000000U << 8; /* W0780 */

6.649.4 Related message

None.

6.649.5 Since

2.0.0 (planned)


Next: , Previous: W0780, Up: Messages

6.650 W0781

6.650.1 Message body

This 'switch' statement have only one path. It's verbose.

6.650.2 Content

Under construction.

6.650.3 Sample code

int foo(const int i)
{
    if (i > 5) {
        switch (i) { /* W0781 */
        case 0:
            return 1;
        case 5:
            return 2;
        default:
            return 3;
        }
    }

    switch (i) { /* OK */
    case 0:
        return 4;
    default:
        switch (i) { /* W0781 */
        case 10:
            return 5;
        default:
            return 6;
        }
    }
}

6.650.4 Related message

None.

6.650.5 Since

1.6.0


Next: , Previous: W0781, Up: Messages

6.651 W0783

6.651.1 Message body

Cast is being made including the pointer point to incomplete type. This program is not portable.

6.651.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.651.3 Sample code

/* will be added */

6.651.4 Related message

None.

6.651.5 Since

2.0.0 (planned)


Next: , Previous: W0783, Up: Messages

6.652 W0784

6.652.1 Message body

The nonstandard escape sequence is used.

6.652.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.652.3 Sample code

/* will be added */

6.652.4 Related message

None.

6.652.5 Since

2.0.0 (planned)


Next: , Previous: W0784, Up: Messages

6.653 W0785

6.653.1 Message body

This declaration of `%s' is different from a former declaration

6.653.2 Content

Under construction.

6.653.3 Sample code

struct AAA {
    int a;
};

union AAA { /* W0785 */
    long a;
    int b;
};

6.653.4 Related message

None.

6.653.5 Since

1.0.0


Next: , Previous: W0785, Up: Messages

6.654 W0786

6.654.1 Message body

A bit field which having the type of except 'int', 'signed int' or 'unsigned int' doesn't support in ISO C standards

6.654.2 Content

Under construction.

6.654.3 Sample code

struct ST { /* W0786 */
    unsigned int a:3;
    unsigned long b:1;
};

6.654.4 Related message

None.

6.654.5 Since

1.0.0


Next: , Previous: W0786, Up: Messages

6.655 W0787

6.655.1 Message body

A type of `%s' is different from the past declaration in the different scope.

6.655.2 Content

Under construction.

6.655.3 Sample code

void func1(void)
{
    extern int num;
    extern void func3(void);
}

void func2(void)
{
    extern double num; /* W0787 */
    extern void func3(int); /* W0787 */
}

6.655.4 Related message

6.655.5 Since

1.6.0


Next: , Previous: W0787, Up: Messages

6.656 W0788

6.656.1 Message body

A type of `%s' is different from the past declaration in the same scope.

6.656.2 Content

Under construction.

6.656.3 Sample code

extern int func(void);

void func(void) /* W0788 */
{
    typedef int num;
    double num; /* W0788 */
}

6.656.4 Related message

6.656.5 Since

1.6.0


Next: , Previous: W0788, Up: Messages

6.657 W0789

6.657.1 Message body

A type of `%s' is different from the past declaration in the wider scope.

6.657.2 Content

Under construction.

6.657.3 Sample code

int num = 0;
extern int func1(void);

void func2(void)
{
    extern double num; /* W0789 */
    extern void func1(void); /* W0789 */
}

6.657.4 Related message

6.657.5 Since

1.6.0


Next: , Previous: W0789, Up: Messages

6.658 W0790

6.658.1 Message body

An global object or a function `%s' is declared in more than one file.

6.658.2 Content

Under construction.

6.658.3 Sample code

int func(void)
{
    return 0;
}

int a = 0;

int func(void) /* W0790 */
{
    return 1;
}

int a = 1; /* W0790 */

6.658.4 Related message

6.658.5 Since

1.0.0


Next: , Previous: W0790, Up: Messages

6.659 W0791

6.659.1 Message body

An global object or a function `%s' is declared in more than one file.

6.659.2 Content

Under construction.

6.659.3 Sample code

test1.c

int func(void) /* W0791 */
{
    return 0;
}

int a = 0; /* W0791 */

test2.c

int func(void) /* W0791 */
{
    return 1;
}

int a = 1; /* W0791 */

6.659.4 Related message

6.659.5 Since

1.0.0


Next: , Previous: W0791, Up: Messages

6.660 W0792

6.660.1 Message body

A floating point type object cast to function pointer and vice versa.

6.660.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.660.3 Sample code

/* will be added */

6.660.4 Related message

None.

6.660.5 Since

2.0.0 (planned)


Next: , Previous: W0792, Up: Messages

6.661 W0793

6.661.1 Message body

A function pointer cast to pointer to point an object and vice versa.

6.661.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.661.3 Sample code

/* will be added */

6.661.4 Related message

None.

6.661.5 Since

2.0.0 (planned)


Next: , Previous: W0793, Up: Messages

6.662 W0794

6.662.1 Message body

Left shift operation to signed operand.

6.662.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.662.3 Sample code

int a = 0x40000000;
a <<= 3; /* W0794 */

6.662.4 Related message

None.

6.662.5 Since

2.0.0 (planned)


Next: , Previous: W0794, Up: Messages

6.663 W0795

6.663.1 Message body

The number of an actual argument in function call is smaller than the number of a formal argument in the function prototype declaration.

6.663.2 Content

Under construction.

6.663.3 Sample code

extern void foo(int, int, int);

static void bar(void)
{
    foo(1, 2); /* W0795 */
}

6.663.4 Related message

6.663.5 Since

1.0.0


Next: , Previous: W0795, Up: Messages

6.664 W0796

6.664.1 Message body

The number of an actual argument in function call is bigger than the number of a formal argument in the function prototype declaration.

6.664.2 Content

Under construction.

6.664.3 Sample code

extern void foo(int, int);

static void bar(void)
{
    foo(1, 2, 3); /* W0796 */
}

6.664.4 Related message

6.664.5 Since

1.0.0


Next: , Previous: W0796, Up: Messages

6.665 W0797

6.665.1 Message body

The number of an actual argument in function call is different from the number of a formal argument in the function declaration.

6.665.2 Content

Under construction.

6.665.3 Sample code

static int foo(int, int);

static int bar(void)
{
    int a = foo(1); /* W0795 */
    int b = foo(1, 2);
    int c = foo(1, 2, 3); /* W0795 */
}

static int foo(int a, int b)
{
    return a + b;
}

6.665.4 Related message

6.665.5 Since

1.0.0


Next: , Previous: W0797, Up: Messages

6.666 W0798

6.666.1 Message body

Must not use the value with incomplete union object.

6.666.2 Content

Under construction.

6.666.3 Sample code

extern union UN *p;

void func(void)
{
    int i = 0;

    if (p) {
        i = p->i; /* W0798 */
    }
}

6.666.4 Related message

6.666.5 Since

1.0.0


Next: , Previous: W0798, Up: Messages

6.667 W0799

6.667.1 Message body

Must not use the value with incomplete structure object.

6.667.2 Content

Under construction.

6.667.3 Sample code

extern struct ST *p;

void func(void)
{
    int i = 0;

    if (p) {
        i = p->i; /* W0799 */
    }
}

6.667.4 Related message

6.667.5 Since

1.0.0


Next: , Previous: W0799, Up: Messages

6.668 W0800

6.668.1 Message body

`%s' is incomplete type which doesn't have a linkage.This is undefined.

6.668.2 Content

Under construction.

6.668.3 Sample code

int a[]; /* W0800 */
struct ST s = { 0 }; /* W0800 */

6.668.4 Related message

6.668.5 Since

1.0.0


Next: , Previous: W0800, Up: Messages

6.669 W0801

6.669.1 Message body

This structure or union doesn't have a named member.

6.669.2 Content

Under construction.

6.669.3 Sample code

struct foo { /* W0801 */
};

struct bar { /* W0801 */
    int;
    int :1;
    long;
    double;
};

6.669.4 Related message

None.

6.669.5 Since

1.4.0


Next: , Previous: W0801, Up: Messages

6.670 W0802

6.670.1 Message body

A form of after `#include' preprocessing directive is not <file name> nor \"file name\".

6.670.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.670.3 Sample code

#include fruits.h /* W0802 */

#define MACRO 1
#include MACRO /* W0802 */

6.670.4 Related message

None.

6.670.5 Since

2.0.0 (planned)


Next: , Previous: W0802, Up: Messages

6.671 W0803

6.671.1 Message body

A preprocessing directive is described in actual argument of function-like macro.

6.671.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.671.3 Sample code

/* will be added */

6.671.4 Related message

None.

6.671.5 Since

2.0.0 (planned)


Next: , Previous: W0803, Up: Messages

6.672 W0804

6.672.1 Message body

The 'defined' syntax is not `defined (identifier)' nor `defined identifier'.

6.672.2 Content

Under construction.

6.672.3 Sample code

#if defined "MACRO" /* W0804 */
#endif

6.672.4 Related message

6.672.5 Since

1.0.0


Next: , Previous: W0804, Up: Messages

6.673 W0805

6.673.1 Message body

An identifier to be actual argument doesn't find in `defined'.

6.673.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.673.3 Sample code

#if defined() /* W0805 */

6.673.4 Related message

6.673.5 Since

2.0.0 (planned)


Next: , Previous: W0805, Up: Messages

6.674 W0806

6.674.1 Message body

It is trying to define a macro named `defined'.

6.674.2 Content

Under construction.

6.674.3 Sample code

#define defined !defined /* W0806 */

6.674.4 Related message

6.674.5 Since

1.4.0


Next: , Previous: W0806, Up: Messages

6.675 W0807

6.675.1 Message body

It is trying to delete pre-defined macro `%s'.

6.675.2 Content

Under construction.

6.675.3 Sample code

#undef __STDC_VERSION__ /* W0807 */

6.675.4 Related message

6.675.5 Since

1.6.0


Next: , Previous: W0807, Up: Messages

6.676 W0808

6.676.1 Message body

It is trying to redefine pre-defined macro `%s'.

6.676.2 Content

Under construction.

6.676.3 Sample code

#define __FILE__ "test.c" /* W0808 */

6.676.4 Related message

6.676.5 Since

1.6.0


Next: , Previous: W0808, Up: Messages

6.677 W0809

6.677.1 Message body

An identifier `%s' is reserved by the library.

6.677.2 Content

Under construction.

6.677.3 Sample code

extern int __value; /* W0809 */
int _VAL = 10; /* W0809 */
static void _func(void); /* W0809 */

6.677.4 Related message

None.

6.677.5 Since

1.6.0


Next: , Previous: W0809, Up: Messages

6.678 W0810

6.678.1 Message body

`{}' is required to clarify this structure of `if-if-else' statement.

6.678.2 Content

Under construction.

6.678.3 Sample code

int foo(int i, int j) {
    if (i < 0) /* W0810 */
        if (j > 0) {
            return 0;
        }
    else {
        return 1;
    }

    if (i > 0) /* W0810 */
        if (j < 0) {
            return 2;
        }
        else {
            return 3;
        }

    return 4;
}

6.678.4 Related message

None.

6.678.5 Since

1.0.0


Next: , Previous: W0810, Up: Messages

6.679 W0811

6.679.1 Message body

The `defined' token which the expanded result of this macro doesn't allowed.

6.679.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.679.3 Sample code

/* will be added */

6.679.4 Related message

None.

6.679.5 Since

2.0.0 (planned)


Next: , Previous: W0811, Up: Messages

6.680 W0827

6.680.1 Message body

An initial value of nested structure's element doesn't enclosed in curly brace `{}'.

6.680.2 Content

Under construction.

6.680.3 Sample code

struct ST {
    int i;
    int j;
};

struct ST a[2] = { 10, 20, 30, 40 }; /* W0827 */

6.680.4 Related message

6.680.5 Since

1.0.0


Next: , Previous: W0827, Up: Messages

6.681 W0828

6.681.1 Message body

An initial value of nested array's element doesn't enclosed in curly brace `{}'.

6.681.2 Content

Under construction.

6.681.3 Sample code

int a[3][2] = { {1, 2}, {3, 4}, {5, 6} };
int b[3][2] = { 1, 2, 3, 4, 5, 6 }; /* W0828 */

6.681.4 Related message

6.681.5 Since

1.0.0


Next: , Previous: W0828, Up: Messages

6.682 W0830

6.682.1 Message body

There is comma `,' at the end of the enumerator list.

6.682.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.682.3 Sample code

enum COLOR {
    RED,
    BLUE,
    GREEN, /* W0830 */
};

6.682.4 Related message

None.

6.682.5 Since

2.0.0 (planned)


Next: , Previous: W0830, Up: Messages

6.683 W0831

6.683.1 Message body

This is language extension for inline assembly. It will be ignored between #asm and #endasm.

6.683.2 Content

Under construction.

6.683.3 Sample code

/* will be added */

6.683.4 Related message

6.683.5 Since

1.0.0


Next: , Previous: W0831, Up: Messages

6.684 W0832

6.684.1 Message body

An inline assembly syntax is using. This is the language extension. This code will be ignored.

6.684.2 Content

Under construction.

6.684.3 Sample code

#define ASM_CODE asm("movl %ecx, %eax")

void foo(int arg1, int *arg2, int arg3)
{
    asm("movl %ecx, %eax"); /* W0832 */
    __asm__("movl %ecx, (%eax)"); /* W0832 */

    asm { /* W0832 */
        xorl eax, eax
    }

    ASM_CODE; /* W0832 */

    __asm__ volatile ( /* W0832 */
            "int $0x80"
            : "=a" (r)
              "+b" (arg1),
              "+c" (arg2),
              "+d" (arg3)
            : "a" (128)
            : "memory", "cc");
}

6.684.4 Related message

6.684.5 Since

1.8.0


Next: , Previous: W0832, Up: Messages

6.685 W0833

6.685.1 Message body

A suffix 'LL' is using.

6.685.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.685.3 Sample code

long long int a = 0LL; /* W0833 */

6.685.4 Related message

6.685.5 Since

2.0.0 (planned)


Next: , Previous: W0833, Up: Messages

6.686 W0834

6.686.1 Message body

A long long type is using.

6.686.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.686.3 Sample code

long long a = 0; /* W0834 */

6.686.4 Related message

6.686.5 Since

2.0.0 (planned)


Next: , Previous: W0834, Up: Messages

6.687 W0835

6.687.1 Message body

A macro which receives variable argument is defined.

6.687.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.687.3 Sample code

/* will be added */

6.687.4 Related message

None.

6.687.5 Since

2.0.0 (planned)


Next: , Previous: W0835, Up: Messages

6.688 W0947

6.688.1 Message body

A string literal is used directly.

6.688.2 Content

Under construction.

6.688.3 Sample code

func("Apple, Banana, Chocolate"); /* W0947 */

6.688.4 Related message

6.688.5 Since

1.0.0


Next: , Previous: W0947, Up: Messages

6.689 W0948

6.689.1 Message body

A character constant `%s' is used directly.

6.689.2 Content

Under construction.

6.689.3 Sample code

func('a'); /* W0948 */

6.689.4 Related message

6.689.5 Since

1.0.0


Next: , Previous: W0948, Up: Messages

6.690 W0949

6.690.1 Message body

A value `%s' is used directly for size definition of bit field.

6.690.2 Content

Under construction.

6.690.3 Sample code

struct ST {
    unsigned int a:1;
    unsigned int a:2; /* W0949 */
    unsigned int a:3; /* W0949 */
};

6.690.4 Related message

6.690.5 Since

1.0.0


Next: , Previous: W0949, Up: Messages

6.691 W0950

6.691.1 Message body

A value `%s' is used directly for size definition of the array.

6.691.2 Content

Under construction.

6.691.3 Sample code

int a[10]; /* W0950 */

6.691.4 Related message

6.691.5 Since

1.0.0


Next: , Previous: W0950, Up: Messages

6.692 W1026

6.692.1 Message body

%sth actual argument is not object type.

6.692.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.692.3 Sample code

/* will be added */

6.692.4 Related message

None.

6.692.5 Since

2.0.0 (planned)


Next: , Previous: W1026, Up: Messages

6.693 W1027

6.693.1 Message body

A base type of array is function type. This is meaningless.

6.693.2 Content

Under construction.

6.693.3 Sample code

int (fun_tbl[20])(void); /* W1027 */

6.693.4 Related message

6.693.5 Since

1.0.0


Next: , Previous: W1027, Up: Messages

6.694 W1028

6.694.1 Message body

A base type of array is an array with unknown size. Incomplete type of array will not build.

6.694.2 Content

Under construction.

6.694.3 Sample code

int a[4][]; /* W1028 */

6.694.4 Related message

6.694.5 Since

1.0.0


Next: , Previous: W1028, Up: Messages

6.695 W1029

6.695.1 Message body

A base type of array is an obscure structure or union. Incomplete type of array will not build.

6.695.2 Content

Under construction.

6.695.3 Sample code

struct ST a[5]; /* W1029 */

6.695.4 Related message

6.695.5 Since

1.0.0


Next: , Previous: W1029, Up: Messages

6.696 W1030

6.696.1 Message body

A label `%s' is used more than two times in this function.

6.696.2 Content

Under construction.

6.696.3 Sample code

void func(int a, int b)
{
    if (a == 0) {
        int c = 0;
RETRY:
        b = 10;
    }

    if (b != 0) {
        goto RETRY;
    }
RETRY: /* W1030 */
    b = 1;

    ...snip...
}

6.696.4 Related message

None.

6.696.5 Since

1.6.0


Next: , Previous: W1030, Up: Messages

6.697 W1031

6.697.1 Message body

An Object `%s' is declared both external coupling and internal coupling. This action is undefined.

6.697.2 Content

Under construction.

6.697.3 Sample code

test.h

extern int a;

test.c

#include "test.h"

static int a; /* W1031 */

6.697.4 Related message

None.

6.697.5 Since

1.0.0


Next: , Previous: W1031, Up: Messages

6.698 W1032

6.698.1 Message body

A tentative definition of variable '%s' which has internal linkage must not incomplete type.

6.698.2 Content

Under construction.

6.698.3 Sample code

static struct ST a[3]; /* W1032 */

6.698.4 Related message

None.

6.698.5 Since

1.0.0


Next: , Previous: W1032, Up: Messages

6.699 W1033

6.699.1 Message body

A 'volatile' or 'const' qualifier is used for the type of function return value. This action is undefined.

6.699.2 Content

Under construction.

6.699.3 Sample code

extern const int func1(int); /* W1033 */

const int func2(int i) /* W1033 */
{
    return i + 1;
}

const int *func3(int i) /* OK */
{
    static int j;

    j = i;
    return &j;
}

6.699.4 Related message

None.

6.699.5 Since

1.4.0


Next: , Previous: W1033, Up: Messages

6.700 W1034

6.700.1 Message body

It is declared at function `%s()' with static storage class specifier in block scope. This usage is meaningless.

6.700.2 Content

Under construction.

6.700.3 Sample code

int func(void)
{
    static int func1(void); /* W1034 */
    extern int func2(void);
}

6.700.4 Related message

None.

6.700.5 Since

1.0.0


Next: , Previous: W1034, Up: Messages

6.701 W1035

6.701.1 Message body

`%s' declared typedef. It cannot be redeclared inside an inner scope without using explicit type.

6.701.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.701.3 Sample code

/* will be added */

6.701.4 Related message

6.701.5 Since

2.0.0 (planned)


Next: , Previous: W1035, Up: Messages

6.702 W1036

6.702.1 Message body

`%s' declared typedef. It cannot be redeclared as a member of structure or union without using explicit type.

6.702.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.702.3 Sample code

/* will be added */

6.702.4 Related message

6.702.5 Since

2.0.0 (planned)


Next: , Previous: W1036, Up: Messages

6.703 W1037

6.703.1 Message body

`%s' which has external coupling is declared more than one, this is incompatible.

6.703.2 Content

Under construction.

6.703.3 Sample code

test1.c

extern void func(void); /* W1037 */
extern int a; /* W1037 */

test2.c

extern int func(int); /* W1037 */
extern long a; /* W1037 */

6.703.4 Related message

None.

6.703.5 Since

1.0.0


Next: , Previous: W1037, Up: Messages

6.704 W1039

6.704.1 Message body

`ll' is used in conversion specifier.

6.704.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.704.3 Sample code

/* will be added */

6.704.4 Related message

None.

6.704.5 Since

2.0.0 (planned)


Next: , Previous: W1039, Up: Messages

6.705 W1040

6.705.1 Message body

An unrecognizable string is described after preprocessing directive.

6.705.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.705.3 Sample code

/* will be added */

6.705.4 Related message

6.705.5 Since

2.0.0 (planned)


Next: , Previous: W1040, Up: Messages

6.706 W1041

6.706.1 Message body

`#%s' is not official preprocessing directive of ISO C standards.

6.706.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.706.3 Sample code

/* will be added */

6.706.4 Related message

6.706.5 Since

2.0.0 (planned)


Next: , Previous: W1041, Up: Messages

6.707 W1042

6.707.1 Message body

'sizeof' operator is using in preprocessing directive. This is the language extension.

6.707.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.707.3 Sample code

/* will be added */

6.707.4 Related message

6.707.5 Since

2.0.0 (planned)


Next: , Previous: W1042, Up: Messages

6.708 W1043

6.708.1 Message body

`@ address' is not supported ISO C standards. It will be considered as language extension.

6.708.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.708.3 Sample code

/* will be added */

6.708.4 Related message

6.708.5 Since

2.0.0 (planned)


Next: , Previous: W1043, Up: Messages

6.709 W1044

6.709.1 Message body

An expression which includes the statement is not supported ISO C standards. It will be considered as language extension.

6.709.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.709.3 Sample code

/* will be added */

6.709.4 Related message

6.709.5 Since

2.0.0 (planned)


Next: , Previous: W1044, Up: Messages

6.710 W1045

6.710.1 Message body

This `@ word' syntax will be ignored.

6.710.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.710.3 Sample code

/* will be added */

6.710.4 Related message

6.710.5 Since

2.0.0 (planned)


Next: , Previous: W1045, Up: Messages

6.711 W1046

6.711.1 Message body

A space character is ignored between `\' and line feed.

6.711.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.711.3 Sample code

/* will be added */

6.711.4 Related message

None.

6.711.5 Since

2.0.0 (planned)


Next: , Previous: W1046, Up: Messages

6.712 W1047

6.712.1 Message body

The struct, union or array's initializer is not literal.

6.712.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.712.3 Sample code

/* will be added */

6.712.4 Related message

None.

6.712.5 Since

2.0.0 (planned)


Next: , Previous: W1047, Up: Messages

6.713 W1048

6.713.1 Message body

The multi byte string literal is an implementation defined value.

6.713.2 Content

This message will be supported in AdLint 2.0.0

Under construction.

6.713.3 Sample code

/* will be added */

6.713.4 Related message

None.

6.713.5 Since

2.0.0 (planned)


Next: , Previous: W1048, Up: Messages

6.714 W1049

6.714.1 Message body

The result of conversion to signed integer type in integer expression might not be expressed by a signed type.

6.714.2 Content

Under construction.

6.714.3 Sample code

example 1

void func1(signed int si)
{
    signed char sc = (signed char) si + 10; /* W1049 */
}

example 2

void func(unsigned int ui)
{
    unsigned int a = ui * ui;
}

6.714.4 Related message

6.714.5 Since

1.0.0


Next: , Previous: W1049, Up: Messages

6.715 W1050

6.715.1 Message body

The result of conversion to signed integer type in integer expression is not express by a signed type.

6.715.2 Content

Under construction.

6.715.3 Sample code

example 1

void func(signed int si)
{
    signed char sc = 0;

    if (si > 127) {
        sc = (signed char) si + 1; /* W1050 */
    }
}

example 2

void func(unsigned int ui)
{
    unsigned int a = ui * ui;
}

6.715.4 Related message

6.715.5 Since

1.0.0


Next: , Previous: W1050, Up: Messages

6.716 W1051

6.716.1 Message body

The result of arithmetic operation in unsigned type is going around 0 by overflow.

6.716.2 Content

Under construction.

6.716.3 Sample code

unsigned int func(unsigned int ui)
{
    if (ui > 0xEFFFFFFFU) {
        return ui + 0x10000000U; /* W1051 */
    }

    return 0U;
}

6.716.4 Related message

6.716.5 Since

1.0.0


Next: , Previous: W1051, Up: Messages

6.717 W1052

6.717.1 Message body

The result of arithmetic operation in unsigned type can be going around by overflow.

6.717.2 Content

Under construction.

6.717.3 Sample code

unsigned int func(unsigned int a, unsigned int b)
{
    if (a > 0xEFFFFFFFU && b < 0x20000000U) {
        return a + b; /* W1052 */
    }

    return 0U;
}

6.717.4 Related message

6.717.5 Since

1.0.0


Next: , Previous: W1052, Up: Messages

6.718 W1053

6.718.1 Message body

A numeric constants is passed to an actual argument which formal argument is enumeration type.

6.718.2 Content

Under construction.

6.718.3 Sample code

enum Color { RED = 1, GREEN = 2, BLUE = 4 };

extern void func1(enum Color);

void func2(void)
{
    func1(4); /* W1053 */
}

6.718.4 Related message

6.718.5 Since

1.6.0


Next: , Previous: W1053, Up: Messages

6.719 W1054

6.719.1 Message body

A non enumeration type expression is substituted for the enumeration type.

6.719.2 Content

Under construction.

6.719.3 Sample code

enum Color { RED = 1, GREEN = 2, BLUE = 4 };

extern enum Color col;

void func2(void)
{
    col = 4; /* W1054 */
}

6.719.4 Related message

6.719.5 Since

1.6.0


Next: , Previous: W1054, Up: Messages

6.720 W1055

6.720.1 Message body

A non enumeration type expression is returned from the function which return value is enumeration type.

6.720.2 Content

Under construction.

6.720.3 Sample code

enum Color { RED = 1, GREEN = 2, BLUE = 4 };

enum Color func(void)
{
    return 4; /* W1055 */
}

6.720.4 Related message

6.720.5 Since

1.6.0


Next: , Previous: W1055, Up: Messages

6.721 W1056

6.721.1 Message body

An object of actual argument is different enumeration type which formal argument is enumeration type.

6.721.2 Content

Under construction.

6.721.3 Sample code

enum Color { RED = 1, GREEN= 2, BLUE = 4 };
enum Season { SPRING = 1, SUMMER, AUTUMN, WINTER };

extern void func1(enum Color);

void func2(enum Season ssn)
{
    func1(ssn); /* W1056 */
}

6.721.4 Related message

6.721.5 Since

1.6.0


Next: , Previous: W1056, Up: Messages

6.722 W1057

6.722.1 Message body

An enumeration value is substituted for different enumeration type object.

6.722.2 Content

Under construction.

6.722.3 Sample code

enum Color { RED = 1, GREEN = 2, BLUE = 4 };
enum Season { SPRING = 1, SUMMER, AUTUMN, WINTER };

extern enum Color col;

void func(enum Season ssn)
{
    col = ssn; /* W1057 */
}

6.722.4 Related message

6.722.5 Since

1.6.0


Next: , Previous: W1057, Up: Messages

6.723 W1058

6.723.1 Message body

A different enumeration type of value is returned from a function which return value is enumeration type.

6.723.2 Content

Under construction.

6.723.3 Sample code

enum Color { RED  = 1, GREEN = 2, BLUE = 4 };
enum Season { SPRING = 1, SUMMER, AUTUMN, WINTER };

enum Color func(enum Season ssn)
{
    return ssn; /* W1058 */
}

6.723.4 Related message

6.723.5 Since

1.6.0


Next: , Previous: W1058, Up: Messages

6.724 W1059

6.724.1 Message body

An enumeration value is passed to actual argument which formal argument is not enumeration type.

6.724.2 Content

Under construction.

6.724.3 Sample code

enum Color { RED = 1, GREEN = 2, BLUE = 4 };

extern void func1(int num);

void func2(enum Color col)
{
    func1(col); /* W1059 */
}

6.724.4 Related message

6.724.5 Since

1.6.0


Next: , Previous: W1059, Up: Messages

6.725 W1060

6.725.1 Message body

An enumeration value is returned from a function which return value is not enumeration type .

6.725.2 Content

Under construction.

6.725.3 Sample code

enum Color { RED = 1, GREEN = 2, BLUE = 4 };

int func2(enum Color col)
{
    return col; /* W1060 */
}

6.725.4 Related message

6.725.5 Since

1.6.0


Next: , Previous: W1060, Up: Messages

6.726 W1061

6.726.1 Message body

Non constant expression of non enumeration type is passed to actual argument which formal argument is enumeration type.

6.726.2 Content

Under construction.

6.726.3 Sample code

enum Color { RED = 1, GREEN = 2, BLUE = 4 };

extern void func1(enum Color);

void func2(int num)
{
    func1(num); /* W1061 */
}

6.726.4 Related message

6.726.5 Since

1.6.0


Next: , Previous: W1061, Up: Messages

6.727 W1062

6.727.1 Message body

Non constant expression is substituted for the enumeration type object.

6.727.2 Content

Under construction.

6.727.3 Sample code

enum Color { RED = 1, GREEN = 2, BLUE = 4 };

extern enum Color col;

void func(int num)
{
    col = num + 1; /* W1062 */
}

6.727.4 Related message

6.727.5 Since

1.6.0


Next: , Previous: W1062, Up: Messages

6.728 W1063

6.728.1 Message body

The return value returned from enumeration type function to non constant expression.

6.728.2 Content

Under construction.

6.728.3 Sample code

enum Color { RED = 1, GREEN = 2, BLUE = 4 };

enum Color func(int num)
{
    return num / 2; /* W1063 */
}

6.728.4 Related message

6.728.5 Since

1.6.0


Next: , Previous: W1063, Up: Messages

6.729 W1064

6.729.1 Message body

A integer constant is used in switch statement where case label is enumeration type.

6.729.2 Content

Under construction.

6.729.3 Sample code

enum Color { RED, BLUE, GREEN };

int func(enum Color c)
{
    switch (c) {
    case RED: /* OK */
        return 1;
    case 1: /* W1064 */
        return 2;
    }

    return 0;
}

6.729.4 Related message

6.729.5 Since

1.4.0


Next: , Previous: W1064, Up: Messages

6.730 W1065

6.730.1 Message body

A value of different enumeration type is used in switch statement where case label is an enumeration type.

6.730.2 Content

Under construction.

6.730.3 Sample code

enum Color { RED, BLUE, GREEN };
enum Fruits { APPLE, BANANA, ORANGE, GRAPE };

int func(enum Color c)
{
    switch (c) {
    case RED: /* OK */
        return 1;
    case ORANGE: /* W1065 */
        return 2;
    }

    return 0;
}

6.730.4 Related message

6.730.5 Since

1.4.0


Next: , Previous: W1065, Up: Messages

6.731 W9001

6.731.1 Message body

This statement doesn't reach the control.

6.731.2 Content

Under construction.

6.731.3 Sample code

extern int all_possible_values_of_int(void);
extern unsigned int zero_if_succeeded(void);

void func(void)
{
    int i = all_possible_values_of_int();

    if (i < 0) {
        unsigned int ui = zero_if_succeeded();

        if (ui > 0) {
            return;
        }

        /* "ui" is equal to zero at this point */

        /* Always be true?  No, it'll be false all the time */
        if (i < ui) {
            return; /* W9001: Control never reaches here! */
        }
        /*
         * ISO standard saids;
         *   Usual Arithmetic Conversion performed before evaluating
         *   the expression "i < ui".
         * Usual Arithmetic Conversion makes "i < ui" into
         * "(unsigned int) i < ui" and then the value of "i" which
         * is less than 0 will be converted into a new value which
         * is greater than 0 because of the wrap-around.
         * So, the expression ("a value greater than 0" < 0) makes
         * always false.
         */
    }
}

6.731.4 Related message

None.

6.731.5 Since

1.0.0


Next: , Previous: W9001, Up: Messages

6.732 W9002

6.732.1 Message body

There is no line feed character at the end of file.

6.732.2 Content

Under construction.

6.732.3 Sample code

Under construction.

6.732.4 Related message

None.

6.732.5 Since

1.0.0


Previous: W9002, Up: Messages

6.733 C0001

6.733.1 Message body

A warning is detected in external identifier name `%s'.

6.733.2 Content

Under construction.

6.733.3 Sample code

int very_long_long_long_long_long_long_long_identifier_1 = 0; /* C0001 */
int very_long_long_long_long_long_long_long_identifier_2 = 1; /* W0052 */

6.733.4 Related message

6.733.5 Since

1.0.0


Next: , Previous: Messages, Up: Top

7 Metrics List


Next: , Up: Metrics

7.1 FL_STMT

7.1.1 Metric name

Number of statements

7.1.2 Content

The number which it recognized as statements by syntax rule in a file.

7.1.3 Sample code

int foo(int a)
{
    int i = 0;  /* A declaration is not a statement */

    if (a > 0) {  /* An if-else-statement makes FL_STMT += 1 */
        i = a + 1;  /* An expression-statement makes FL_STMT += 1 */
    }
    else {
        ;  /* An empty expression-statement makes FL_STMT += 1 */
    }

    return i;  /* A jump-statement makes FL_STMT += 1 */
}

/* Now, FL_STMT == 4 */

void bar(int a)
{
    struct {  /* A declaration is not a statement */
        int i;
    } s;

    /* A for-statement which has 2 expression-statements (`s.i=0;' and `s.i<a;') makes FL_STMT += 3 */
    for (s.i = 0; s.i < a; s.i++) {
        switch (s.i % 3) {  /* A switch-statement makes FL_STMT += 1 */
        case 0:             /* A label is part of a labeled-statement, but it makes FL_STMT += 1 */
            puts("A\n");    /* A labeled expression-statement makes FL_STMT += 1 */
            break;          /* A jump-statement makes FL_STMT += 1 */
        case 1:             /* A label is part of a labeled-statement, but it makes FL_STMT += 1 */
            puts("B\n");    /* A labeled expression-statement makes FL_STMT += 1 */
            break;          /* A jump-statement makes FL_STMT += 1 */
        case 2:             /* A label is part of a labeled-statement, but it makes FL_STMT += 1 */
            puts("C\n");    /* A labeled expression-statement makes FL_STMT += 1 */
            break;          /* A jump-statement makes FL_STMT += 1 */
        }
    }
}

/* Finally, FL_STMT == 17 */
     MET,FL_STMT,test.c,17

7.1.4 Since

1.0.0


Next: , Previous: FL_STMT, Up: Metrics

7.2 FL_FUNC

7.2.1 Metric name

Number of functions

7.2.2 Content

The number of function which defined in a file.

7.2.3 Sample code

void foo(void) {}  /* A function-definition makes FL_FUNC += 1 */

static void bar(void) {}  /* A function-definition makes FL_FUNC += 1 */

extern void baz(void);  /* A declaration is not a function-definition */

int qux(a, b)  /* An old style function-definition makes FL_FUNC += 1 */
    int a, b;
{
    return a + b;
}

/* FL_FUNC == 3 */
     MET,FL_FUNC,test.c,3

7.2.4 Since

1.0.0


Next: , Previous: FL_FUNC, Up: Metrics

7.3 FN_STMT

7.3.1 Metric name

Number of statements

7.3.2 Content

The number which it recognized as statements by syntax rule in a function.

7.3.3 Sample code

int foo(int a)
{
    int i = 0;  /* A declaration is not a statement */

    if (a > 0) {  /* An if-else-statement makes foo's FN_STMT += 1 */
        i = a + 1;  /* An expression-statement makes foo's FN_STMT += 1 */
    }
    else {
        ;  /* An empty expression-statement makes foo's FN_STMT += 1 */
    }

    return i;  /* A jump-statement makes foo's FN_STMT += 1 */

    /* foo's FN_STMT == 4 */
}

void bar(int a)
{
    struct {  /* A declaration is not a statement */
        int i;
    } s;

    /* A for-statement which has 2 expression-statements (`s.i=0;' and * `s.i<a;') makes bar's FN_STMT += 3 */
    for (s.i = 0; s.i < a; s.i++) {
        switch (s.i % 3) {  /* A switch-statement makes bar's FN_STMT += 1 */
        case 0:             /* A label is part of a labeled-statement, but it makes bar's FN_STMT += 1 */
            puts("A\n");    /* A labeled expression-statement makes bar's FN_STMT += 1 */
            break;          /* A jump-statement makes bar's FN_STMT += 1 */
        case 1:             /* A label is part of a labeled-statement, but it makes bar's FN_STMT += 1 */
            puts("B\n");    /* A labeled expression-statement makes bar's FN_STMT += 1 */
            break;          /* A jump-statement makes bar's FN_STMT += 1 */
        case 2:             /* A label is part of a labeled-statement, but it makes bar's FN_STMT += 1 */
            puts("C\n");    /* A labeled expression-statement makes bar's FN_STMT += 1 */
            break;          /* A jump-statement makes bar's FN_STMT += 1 */
        }
    }

    /* bar's FN_STMT == 13 */
}
     MET,FN_STMT,foo,int foo(int),test.c,1,5,4
     MET,FN_STMT,bar,void bar(int),test.c,14,6,13

7.3.4 Since

1.0.0


Next: , Previous: FN_STMT, Up: Metrics

7.4 FN_UNRC

7.4.1 Metric name

Number of unreached statements

7.4.2 Content

The number of statements which it not run in any condition.

7.4.3 Sample code

#include <stdlib.h>

int foo(int i)
{
    unsigned int ui;

    if (i < 0) {
        switch (i) {
        case -3:
            ui = 0;
            break;
        /* Control never reaches to this "case 3:" clause because "i" is less than 0 at this point */
        case 3:      /* This label is part of an unreachable labeled-statement, but it makes foo's FN_UNRC += 1 */
            ui = 1;  /* An unreachable labeled expression-statement makes FN_UNRC += 1 */
            break;   /* An unreachable jump-statement makes FN_UNRC += 1 */
        default:
            ui = 0;
        }

        /* "ui" is equal to 0 at this point */

        /*
         * The usual-arithmetic-conversion makes "i < ui" into "(unsigned int) i < ui".
         * Then, the value of "i" which is less than 0 will be converted into the new value which is greater than 0
         * because of the wrap-around.
         * So, "(value which is greater than 0) < 0" makes false at all times.
         */
        if (i < ui) {
            exit(0);  /* An unreachable expression-statement makes FN_UNRC += 1 */
        }
    }
    else {
        /* "i" is greater than or equal to 0 at this point */

        abort();  /* The abort() standard function terminates this execution path */
    }

    /* "i" is less than 0 at this point */

    if (i == 3) {   /* "(value which is less than 0) == 3" makes false at all times */
        return -1;  /* An unreachable jump-statement makes FN_UNRC += 1 */
    }

    return 0;

    /* foo's FN_UNRC == 5 */
}
     MET,FN_UNRC,foo,int foo(int),test.c,3,5,5

7.4.4 Since

1.0.0


Next: , Previous: FN_UNRC, Up: Metrics

7.5 FN_LINE

7.5.1 Metric name

Number of lines

7.5.2 Content

Physical lines from the beginning of a line to the end of a line in a function definition.

7.5.3 Sample code

int foo(void)  /* foo's function definition starts here */
{
    return 0;
}  /* foo's function definition ends here */

/* foo's FN_LINE == 3 */

int
bar  /* bar's function definition starts here */
(void)
{
    return 0;
}  /* bar's function definition ends here */

/* bar's FN_LINE == 5 */

int
baz  /* baz's old style function definition starts here */
(a)
int a;
{
    return 0;
}  /* baz's old style function definition ends here */

/* baz's FN_LINE == 6 */
     MET,FN_LINE,foo,int foo(void),test.c,1,5,3
     MET,FN_LINE,bar,int bar(void),test.c,8,1,5
     MET,FN_LINE,baz,int baz(int),test.c,17,1,6

7.5.4 Since

1.0.0


Next: , Previous: FN_LINE, Up: Metrics

7.6 FN_PARA

7.6.1 Metric name

Number of parameters

7.6.2 Content

The number of formal arguments in the argument list of function declaration.

7.6.3 Sample code

int foo(int a, long b, char *p)
{
    return 0;
}
/* foo's FN_PARA == 3 */

int bar(a, b, p)  /* An old style function definition */
    long b;  /* A type-specifier of "a" is omitted */
    char *p;
{
    return 0;
}
/* bar's FN_PARA == 3 */
     MET,FN_PARA,foo,"int foo(int,long,char *)",test.c,1,5,3
     MET,FN_PARA,bar,"int bar(int,long,char *)",test.c,6,5,3

7.6.4 Since

1.0.0


Next: , Previous: FN_PARA, Up: Metrics

7.7 FN_UNUV

7.7.1 Metric name

Number of not use /not reuse variables

7.7.2 Content

The number of not used function and variables which assigned the value.

7.7.3 Sample code

void foo(int i, int j)  /* A useless declaration of "j" makes FN_UNUV += 1 */
{
    int a;
    int b;
    int c = 0;  /* A useless declaration of "c" makes FN_UNUV += 1 */

    if (i < 0) {
        a = -i;
    }
    else {
        a = i;
    }

    b = a * 2;  /* A useless assignment to "b" makes FN_UNUV += 1 */
    printf("%d\n", a);

    /* foo's FN_UNUV == 3 */
}
     MET,FN_UNUV,foo,"void foo(int,int)",test.c,1,6,3

7.7.4 Since

1.0.0


Next: , Previous: FN_UNUV, Up: Metrics

7.8 FN_CSUB

7.8.1 Metric name

Location number of call function

7.8.2 Content

The number of calling other function in a function,

7.8.3 Sample code

extern int foo(int);

static int bar(int);

int baz(int i)
{
    int j = foo(i);  /* A function-call-expression makes baz's FN_CSUB += 1 */

    return foo(bar(j)); /* 2 function-call-expressions makes baz's FN_CSUB += 2 */

    /* baz's FN_CSUB == 3 */
}
     MET,FN_CSUB,baz,int baz(int),test.c,5,5,3

7.8.4 Since

1.0.0


Next: , Previous: FN_CSUB, Up: Metrics

7.9 FN_CALL

7.9.1 Metric name

Location number of called from function

7.9.2 Content

The number of called from other function of the project.

7.9.3 Sample code

test1.c

int foo(int i) { return i + 1; }

int bar(int i)
{
    return foo(i) + 1;  /* A function-call-expression makes foo's FN_CALL += 1 */
}

test2.c

extern int bar(int);

static void baz(void)
{
    int i = bar(0);  /* A function-call-expression makes bar's FN_CALL += 1 and foo's FN_CALL += 1 */
}

project-name.met.csv

     MET,FN_CALL,foo,int foo(int),test1.c,1,5,2
     MET,FN_CALL,bar,int bar(int),test1.c,3,5,1
     MET,FN_CALL,baz,void baz(void),test2.c,3,13,0

7.9.4 Since

1.0.0


Next: , Previous: FN_CALL, Up: Metrics

7.10 FN_GOTO

7.10.1 Metric name

Number of goto statement

7.10.2 Content

The number of goto statement in a function.

7.10.3 Sample code

int foo(int i)
{
    switch (i) {
    case 0:
        goto ZERO;  /* A goto-statement makes foo's FN_GOTO += 1 */
    case 1:
        goto ONE;   /* A goto-statement makes foo's FN_GOTO += 1 */
    default:
        return 0;
    }

ZERO:
    return 1;

ONE:
    return 2;

    /* foo's FN_GOTO == 2 */
}
     MET,FN_GOTO,foo,int foo(int),test.c,1,5,2

7.10.4 Since

1.0.0


Next: , Previous: FN_GOTO, Up: Metrics

7.11 FN_RETN

7.11.1 Metric name

Number of return point in a function

7.11.2 Content

The number of executable return statements and implicit return statements at the end of a function.

7.11.3 Sample code

void foo(int i)
{
    if (i < 0) {
        return;  /* A return-statement makes foo's FN_RETN += 1 */
    }

    if (i >= 10) {
        return;  /* A return-statement makes foo's FN_RETN += 1 */
    }
    else {
        for (; i < 10; i++) {
          printf("%d\n", i);
        }
    }

    /* An implicit return from the function whose return type is void makes foo's FN_RETN * += 1 */

    /* foo's FN_RETN == 3 */
}

int bar(int i)
{
    if (i < 0) {
        return -1;  /* A return-statement makes bar's FN_RETN += 1 */
    }

    if (i >= 10) {
        return -1;  /* A return-statement makes bar's FN_RETN += 1 */
    }
    else {
        for (; i < 10; i++) {
          printf("%d\n", i);
        }
    }

    return 0;  /* A return-statement makes bar's FN_RETN += 1 */

    /* bar's FN_RETN == 3 */
}
     MET,FN_RETN,foo,void foo(int),test.c,1,6,3
     MET,FN_RETN,bar,int bar(int),test.c,20,5,3

7.11.4 Since

1.0.0


Next: , Previous: FN_RETN, Up: Metrics

7.12 FN_UELS

7.12.1 Metric name

Number of 'if' statement unless 'else'

7.12.2 Content

The number of it doesn't have explicit else section in if statements.

7.12.3 Sample code

int foo(int i)
{
    int j;

    if (i < 0) {
        return -1;
    }
    else {
        j = i + 1;
    }

    if (j % 2) {
        return -1;
    }
    /* An implicit else clause makes foo's FN_UELS += 1 */

    if (i == 2) {
        return 0;
    }
    else if (i == 4) {
        return 1;
    }
    /* An implicit else clause makes foo's FN_UELS += 1 */

    return 5;

    /* foo's FN_UELS == 2 */
}
     MET,FN_UELS,foo,int foo(int),test.c,1,5,2

7.12.4 Since

1.0.0


Next: , Previous: FN_UELS, Up: Metrics

7.13 FN_NEST

7.13.1 Metric name

Maximum number of nest of control flow graph

7.13.2 Content

The deepest nesting of control structure in a function.

7.13.3 Sample code

void foo(int i)
{
    /* Nesting level == 0 */

    if (i < 0) {
        /* Nesting level == 1 */

        switch (i) {
            /* Nesting level == 2 */
        case -1:
            return;
        case -2:
            puts("A\n");
            break;
        }

        /* Nesting level == 1 */
    }
    else {
        /* Nesting level == 1 */
        int j;
        int k;

        for (j = 0; j < i; j++) {
            /* Nesting level == 2 */

            for (k = 0; k < 10; k++) {
                /* Nesting level == 3 */

                if (j == k) {
                    /* Nesting level == 4 */
                    puts("B\n");
                }
            }
        }
    }

    /* foo's FN_NEST == 4 */
}
     MET,FN_NEST,foo,void foo(int),test.c,1,6,4

7.13.4 Since

1.0.0


Next: , Previous: FN_NEST, Up: Metrics

7.14 FN_PATH

7.14.1 Metric name

Presumed number of static path

7.14.2 Content

The number of possible execute paths in a function.

7.14.3 Sample code

static int foo(int i)
{
    /* A */
    if (i == 0) {
        /* B */
        i = 0;
    }
    else {
        /* C */
        i = 1;
    }
    /* D */
    return i;

    /* Possible execute paths A->B->D and A->C->D makes foo's FN_PATH = 2 */
}

static int bar(int i)
{
    /* A */
    if (i == 0) {
        /* B */
        i = 0;
    }
    /* C */
    if (i == 1) {
        /* D */
        i = 1;
    }
    /* E */
    if (i == 2) {
        /* F */
        i = 2;
    }
    /* G */
    return i;

    /* Possible execute paths
         A->B->C->D->E->F->G,
         A->B->C->D->E->G,
         A->B->C->E->F->G,
         A->B->C->E->G,
         A->C->D->E->F->G,
         A->C->D->E->G,
         A->C->E->F->G,
         A->C->E->G
       makes bar's FN_PATH = 8 */
}

static int baz(int i)
{
    /* A */
    switch (i) {
    case 0:
        /* B */
        if (rand()) {
            /* C */
            i = 0;
        }
        else {
            /* D */
            i = 0;
        }
        /* E */
        i = 0;
        break;
    default:
        /* F */
        if (rand()) {
            /* G */
            i = 1;
        }
        else {
            /* H */
            i = 1;
        }
        /* I */
        i = 1;
        break;
    }
    /* J */
    return i;

    /* Possible execute paths
         A->B->C->E->J,
         A->B->D->E->J,
         A->F->G->I->J,
         A->F->H->I->J
       makes baz's FN_PATH = 4 */
}

static int qux(int i)
{
    /* A */
    while (i < 5) {
        /* B */
        if (i == 0) {
            /* C */
            return 0;
        }
        /* D */
        if (i == 1) {
            /* E */
            return 1;
        }
    }
    /* F */
    if (i == 2) {
        /* G */
        return 2;
    }
    /* H */
    return 3;

    /* Possible execute paths
         A->B->C,
         A->B->D->E,
         A->B->D->F->G,
         A->B->D->F->H,
         A->F->G,
         A->F->H
       makes qux's FN_PATH = 6 */
}
     MET,FN_PATH,foo,int foo(int),test.c,1,12,2
     MET,FN_PATH,bar,int bar(int),test.c,18,12,8
     MET,FN_PATH,baz,int baz(int),test.c,42,12,4
     MET,FN_PATH,qux,int qux(int),test.c,80,12,6

7.14.4 Since

1.0.0


Previous: FN_PATH, Up: Metrics

7.15 FN_CYCM

7.15.1 Metric name

Cyclomatic complexity

7.15.2 Content

The number of linearly independent paths through a program's source code. It was developed by McCabe.


calculating formula is (the number of edges of the graph) - (the number of nodes of the graph) + 2. It equals the number of branch in a function + 1.

7.15.3 Sample code

static int foo(int i)
{
    if (i == 0) {  /* Complexity += 1 */
        i = 0;
    }
    else {  /* An else branch does not grow the complexity */
        i = 1;
    }
    return i;

    /* foo's FN_CYCM == 2 */
}

static int bar(int i)
{
    if (i == 0) {  /* Complexity += 1 */
        i = 0;
    }
    if (i == 1) {  /* Complexity += 1 */
        i = 1;
    }
    if (i == 2) {  /* Complexity += 1 */
        i = 2;
    }
    return i;

    /* bar's FN_CYCM == 4 */
}

static int baz(int i)
{
    switch (i) {
    case 0:  /* Complexity += 1 */
        if (rand()) {  /* Complexity += 1 */
            i = 0;
        }
        else {  /* An else branch does not grow the complexity */
            i = 0;
        }
        i = 0;
        break;
    default:  /* A default clause does not grow the complexity */
        if (rand()) {  /* Complexity += 1 */
            i = 1;
        }
        else {  /* An else branch does not grow the complexity */
            i = 1;
        }
        i = 1;
        break;
    }
    return i;

    /* baz's FN_CYCM == 4 */
}

static int qux(int i)
{
    while (i < 5) {  /* An iteration does not grow the complexity */
        if (i == 0) {  /* Complexity += 1 */
            return 0;
        }
        if (i == 1) {  /* Complexity += 1 */
            return 1;
        }
    }
    if (i == 2) {  /* Complexity += 1 */
        return 2;
    }
    return 3;

    /* qux's FN_CYCM == 4 */
}
     MET,FN_CYCM,foo,int foo(int),test.c,1,12,2
     MET,FN_CYCM,bar,int bar(int),test.c,13,12,4
     MET,FN_CYCM,baz,int baz(int),test.c,28,12,4
     MET,FN_CYCM,qux,int qux(int),test.c,54,12,4

7.15.4 Since

1.0.0


Next: , Previous: Metrics, Up: Top

8 Code structure list


Next: , Up: CodeStructures

8.1 VER

8.1.1 Code structure information name

Version Records

8.1.2 Content

Under construction.

8.1.3 Sample code

Refer to output example of Version Records.

8.1.4 Since

1.0.0


Next: , Previous: VER, Up: CodeStructures

8.2 DCL(T)

8.2.1 Code structure information name

Type declaration records

8.2.2 Content

Under construction.

8.2.3 Sample code

Refer to output example of Type declaration records.

8.2.4 Since

1.0.0


Next: , Previous: DCL(T), Up: CodeStructures

8.3 DCL(V)

8.3.1 Code structure information name

Variable declaration records

8.3.2 Content

Under construction.

8.3.3 Sample code

Refer to output example of Variable declaration records.

8.3.4 Since

1.0.0


Next: , Previous: DCL(V), Up: CodeStructures

8.4 DCL(F)

8.4.1 Code structure information name

Function declaration records

8.4.2 Content

Under construction.

8.4.3 Sample code

Refer to output example of Function declaration records.

8.4.4 Since

1.0.0


Next: , Previous: DCL(F), Up: CodeStructures

8.5 DEF(V)

8.5.1 Code structure information name

Variable definition records

8.5.2 Content

Under construction.

8.5.3 Sample code

Refer to output example of Variable definition records.

8.5.4 Since

1.0.0


Next: , Previous: DEF(V), Up: CodeStructures

8.6 DEF(F)

8.6.1 Code structure information name

Function definition records

8.6.2 Content

Under construction.

8.6.3 Sample code

Refer to output example of Function definition records.

8.6.4 Since

1.0.0


Next: , Previous: DEF(F), Up: CodeStructures

8.7 DEF(M)

8.7.1 Code structure information name

Macro definition records

8.7.2 Content

Under construction.

8.7.3 Sample code

Refer to Macro definition records.

8.7.4 Since

1.0.0


Next: , Previous: DEF(M), Up: CodeStructures

8.8 DEF(L)

8.8.1 Code structure information name

Label definition records

8.8.2 Content

Under construction.

8.8.3 Sample code

Refer to output example of Lael definition records.

8.8.4 Since

1.0.0


Next: , Previous: DEF(L), Up: CodeStructures

8.9 INI

8.9.1 Code structure information name

Initialize records

8.9.2 Content

Under construction.

8.9.3 Sample code

Refer to output example of Initialize records.

8.9.4 Since

1.0.0


Next: , Previous: INI, Up: CodeStructures

8.10 ASN

8.10.1 Code structure information name

Assignment records

8.10.2 Content

Under construction.

8.10.3 Sample code

Refer to output example of Assignment records.

8.10.4 Since

1.0.0


Next: , Previous: ASN, Up: CodeStructures

8.11 DEP(I)

8.11.1 Code structure information name

Include record

8.11.2 Content

Under construction.

8.11.3 Sample code

Refer to output example of include records.

8.11.4 Since

1.0.0


Next: , Previous: DEP(I), Up: CodeStructures

8.12 DEP(C)

8.12.1 Code structure information name

Caller function records

8.12.2 Content

Under construction.

8.12.3 Sample code

Refer to output example of caller records.

8.12.4 Since

1.0.0


Next: , Previous: DEP(C), Up: CodeStructures

8.13 DEP(X)

8.13.1 Code structure information name

...

8.13.2 Content

Under construction.

8.13.3 Sample code

Refer to output example of Dependency records.

8.13.4 Since

1.0.0


Next: , Previous: DEP(X), Up: CodeStructures

8.14 LIT

8.14.1 Code structure information name

...

8.14.2 Content

Under construction.

8.14.3 Sample code

Refer to output example of Literal records.

8.14.4 Since

1.0.0


Previous: LIT, Up: CodeStructures

8.15 PRE

8.15.1 Code structure information name

...

8.15.2 Content

Under construction.

8.15.3 Sample code

Refer to output example of preprocessed records.

8.15.4 Since

1.0.0


Next: , Previous: CodeStructures, Up: Top

Appendix A Appendix

A.1 Screen shot

A.1.1 Collaboration with Adqua

Static analysis result of AdLint can use measure the source quality by processing Adqua. (Adqua supports only Japanese)

adlint_on_adqua.png

A.1.2 Collaboration with Vim - text editor

Adlint p

The format of AdLint's warning message is same as the standard compiler, so it's easy to collaborate with text editor. It will be able to check easily the code quality during development.

adlint_on_vim_en.png

A.1.3 Collaborate with Eclipse - integrated development environment

The format of AdLint's warning message is same as the standard compiler, so it's easy to collaborate with integrated development environment. It will be able to check easily the code quality during development.

adlint_on_eclipse_en.png

A.2 Sample of traits file

#     ___    ____  __    ___   _________
#    /   |  / _  |/ /   / / | / /__  __/           Source Code Static Analyzer
#   / /| | / / / / /   / /  |/ /  / /                   AdLint - Advanced Lint
#  / __  |/ /_/ / /___/ / /|  /  / /
# /_/  |_|_____/_____/_/_/ |_/  /_/   Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
#
# This file is part of AdLint.
#
# AdLint is free software: you can redistribute it and/or modify it under the
# terms of the GNU General Public License as published by the Free Software
# Foundation, either version 3 of the License, or (at your option) any later
# version.
#
# AdLint is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# AdLint.  If not, see <http://www.gnu.org/licenses/>.
#

# Schema version of the traits file.
# DO NOT EDIT MANUALLY!
version: "1.0.0"

#
# Project specific traits section
#
project_traits:

  # Project name.
  project_name: "screen-4.0.3"

  # Project specific additional include paths.
  # Ex.
  #   include_path:
  #     - "include/foo"
  #     - "../include/bar"
  #     - "/opt/baz/include"
  include_path:
    - "../screen-4.0.3"

  # Pathname of the project specific initial header file.
  # This header file is automatically included above the first line of the
  # target source file.
  initial_header: "adlint_pinit.h"

  #
  # Project specific coding style section
  #
  coding_style:

    # Indent style which is a convention governing the identation of blocks.
    # Select from "K&R", "Allman" and "GNU".
    #
    # The value "K&R" means...
    #   int foo(int i)
    #   {
    #       if (i == 0) {
    #           return 0;
    #       }
    #       return i;
    #   }
    #
    # The value "Allman" means...
    #   int foo(int i)
    #   {
    #       if (i == 0)
    #       {
    #           return 0;
    #       }
    #       return i;
    #   }
    #
    # The value "GNU" means...
    #   int
    #   foo(int i)
    #   {
    #     if (i == 0)
    #       {
    #         return 0;
    #       }
    #     return i;
    #   }
    indent_style: "GNU"

    # Appearance width of a TAB character.
    tab_width: 8

    # Appearance width of 1-level of the indentation.
    indent_width: 2

  # Character encoding of source files.
  file_encoding:

#
# Compiler specific traits section
#
compiler_traits:

  # Pathname of the compiler specific initial header file.
  # This header file is automatically included above the first line of the
  # project specific initial header file.
  initial_header: "adlint_cinit.h"

  #
  # Compiler specific standard type section
  #
  standard_type:

    # Bit size of the `char' type family.
    char_size: 8
    # Bit size of the alignment of the `char' type family.
    char_alignment: 8

    # Bit size of the `short' type family.
    short_size: 16
    # Bit size of the alignment of the `short' type family.
    short_alignment: 16

    # Bit size of the `int' type family.
    int_size: 32
    # Bit size of the alignment of the `int' type family.
    int_alignment: 32

    # Bit size of the `long int' type family.
    long_size: 32
    # Bit size of the alignment of the `long int' type family.
    long_alignment: 32

    # Bit size of the `long long int' type family.
    long_long_size: 64
    # Bit size of the alignment of the `long long int' type family.
    long_long_alignment: 64

    # Bit size of the `float' type.
    float_size: 32
    # Bit size of the alignment of the `float' type.
    float_alignment: 32

    # Bit size of the `double' type.
    double_size: 64
    # Bit size of the alignment of the `double' type.
    double_alignment: 64

    # Bit size of the `long double' type.
    long_double_size: 96
    # Bit size of the alignment of the `long double' type.
    long_double_alignment: 96

    # Bit size of the pointer to functions.
    code_ptr_size: 32
    # Bit size of the alignment of the pointer to functions.
    code_ptr_alignment: 32

    # Bit size of the pointer to data.
    data_ptr_size: 32
    # Bit size of the alignment of the pointer to data.
    data_ptr_alignment: 32

    # Treat the `char' type as same as the `unsigned char' type?
    char_as_unsigned_char: true

  # Compiler specific include paths.
  # Ex.
  #   include_path:
  #     - "/usr/include"
  #     - "/usr/local/include"
  include_path:
    - "/usr/local/include"
    - "/usr/include"
    - "/usr/lib/gcc/i686-redhat-linux/4.5.1/include"

  # Treat the `>>' operator as a logical shift, not an arithmetic shift?
  arithmetic:
    logical_right_shift: true

  # Token substitution setting to warn the use of compiler specific extensions.
  #
  # If your compiler supports `__attribute__(...)' extension and you want to
  # know the use of this extension, specify as below.
  #   extension_substitution:
  #     "__attribute__(__adlint__any)": ""
  # The token sequence consists of `__attribute__', `(', any kind of tokens,
  # `)' will be replaced with nothing (erased) after the preprocessing phase.
  # And this substitution will be warned by the message W0061.
  extension_substitution:
    "__extension__": ""
    "__attribute__(__adlint__any)": ""
    "__inline__": "inline"
    "__asm__ __adlint__any(__adlint__any)": ""

  # Token substitution setting to silently ignore the use of compiler specific
  # extensions.
  #
  # If your compiler supports `__asm__ volatile (...)' extension and you do not
  # mind the use of this extension, specify as below.
  #   arbitrary_substitution:
  #     "__asm__ __adlint__any(__adlint__any)": ""
  # The token sequence consists of `__asm__', any kind of tokens, `(', any kind
  # of tokens, `)' will be replaced with nothing (erased) silently after the
  # preprocessing phase.
  arbitrary_substitution:
    "typeof": "__typeof__"
    "__typeof": "__typeof__"
    "alignof": "__alignof__"
    "__alignof": "__alignof__"
    "__signed__": "signed"

  # Max length of all symbols can be identified by the compiler.
  identifier_max: 128

#
# Linker specific traits section
#
linker_traits:

  # Max length of external symbols can be identified by the linker.
  identifier_max: 128

  # Are external symbols identified without case by the linker?
  identifier_ignore_case: false

#
# Message traits section
#
message_traits:

  # Language of the message text.
  # Currently, "en_US" and "ja_JP" are supported.
  # Please help to translate the message catalog into your language.
  language: "ja_JP"

  # Message text replacement.
  # Ex.
  #   change_list:
  #     W9999: "Your custom message for the warning of #9999."
  change_list:

A.3 Sample of analysis order of GNUmakefile

#     ___    ____  __    ___   _________
#    /   |  / _  |/ /   / / | / /__  __/           Source Code Static Analyzer
#   / /| | / / / / /   / /  |/ /  / /                   AdLint - Advanced Lint
#  / __  |/ /_/ / /___/ / /|  /  / /
# /_/  |_|_____/_____/_/_/ |_/  /_/   Copyright (C) 2010-2012, OGIS-RI Co.,Ltd.
#
# This file is part of AdLint.
#
# AdLint is free software: you can redistribute it and/or modify it under the
# terms of the GNU General Public License as published by the Free Software
# Foundation, either version 3 of the License, or (at your option) any later
# version.
#
# AdLint is distributed in the hope that it will be useful, but WITHOUT ANY
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License along with
# AdLint.  If not, see <http://www.gnu.org/licenses/>.
#
# How...
#   - to validate configuration files
#     % make check
#   - to analyze whole project with compiler like messages
#     % make all
#   - to do only single module analyses with compiler like messages
#     % make sma-only
#   - to analyze whole project with progress report
#     % make verbose-all
#   - to do only single module analyses with progress report
#     % make verbose-sma-only
#   - to do only cross module analysis with progress report
#     % make verbose-cma-only
#   - to analyze whole project *FAST* on 4-core processor machine
#     % make -j 4 all
#   - to analyze whole project *FAST* and silently with elapsed time
#     % time make -j 4 all 2>/dev/null
#   - to delete all result files
#     % make clean
#

PROJECT = screen-4.0.3

SOURCES = \
  screen-4.0.3/screen.c \
  screen-4.0.3/ansi.c \
  screen-4.0.3/fileio.c \
  screen-4.0.3/mark.c \
  screen-4.0.3/misc.c \
  screen-4.0.3/resize.c \
  screen-4.0.3/socket.c \
  screen-4.0.3/search.c \
  screen-4.0.3/tty.c \
  screen-4.0.3/term.c \
  screen-4.0.3/window.c \
  screen-4.0.3/utmp.c \
  screen-4.0.3/loadav.c \
  screen-4.0.3/putenv.c \
  screen-4.0.3/help.c \
  screen-4.0.3/termcap.c \
  screen-4.0.3/input.c \
  screen-4.0.3/attacher.c \
  screen-4.0.3/pty.c \
  screen-4.0.3/process.c \
  screen-4.0.3/display.c \
  screen-4.0.3/comm.c \
  screen-4.0.3/kmapdef.c \
  screen-4.0.3/acls.c \
  screen-4.0.3/braille.c \
  screen-4.0.3/braille_tsi.c \
  screen-4.0.3/logfile.c \
  screen-4.0.3/layer.c \
  screen-4.0.3/sched.c \
  screen-4.0.3/teln.c \
  screen-4.0.3/nethack.c \
  screen-4.0.3/encoding.c

VPATH = ..
VPATH_COMPONENTS = 1

RUBY = ruby

ADLINT = adlint
ADLINT_FLAGS = -t adlint_traits.yml -o . -p $(VPATH_COMPONENTS)

ADLINT_SMA = adlint_sma
ADLINT_SMA_FLAGS = -t adlint_traits.yml -o . -p $(VPATH_COMPONENTS)

ADLINT_CMA = adlint_cma
ADLINT_CMA_FLAGS = -t adlint_traits.yml -o .

ADLINT_CHK = adlint_chk
ADLINT_CHK_FLAGS = -t adlint_traits.yml -o . -p $(VPATH_COMPONENTS)

RM = $(RUBY) -r fileutils -e 'FileUtils.rm_f(ARGV)'

VPATHED_SOURCES = $(addprefix $(VPATH)/, $(SOURCES))

SMA_MSG_FILES = $(addsuffix .msg.csv, $(SOURCES))
SMA_MET_FILES = $(addsuffix .met.csv, $(SOURCES))
SMA_I_FILES = $(addsuffix .i, $(basename $(SOURCES)))
SMA_LOG_FILES = $(addsuffix .log, $(SOURCES))

CMA_MSG_FILE = $(PROJECT).msg.csv
CMA_MET_FILE = $(PROJECT).met.csv
CMA_LOG_FILE = $(PROJECT).log

.SUFFIXES:

%.c.msg.csv %.c.met.csv : %.c
	$(ADLINT_SMA) $(ADLINT_SMA_FLAGS) $<

$(CMA_MET_FILE) : $(SMA_MET_FILES)
	$(ADLINT_CMA) $(ADLINT_CMA_FLAGS) $^

.PHONY: adlint_sma-all
adlint_sma-all : $(SMA_MET_FILES)

.PHONY: adlint_cma-all
adlint_cma-all : $(CMA_MET_FILE)

.PHONY: adlint_chk-all
adlint_chk-all :
	$(ADLINT_CHK) $(ADLINT_CHK_FLAGS) -v $(VPATHED_SOURCES)

.PHONY: adlint_verbose-all
adlint_verbose-all :
	$(ADLINT) $(ADLINT_FLAGS) -v $(VPATHED_SOURCES)

.PHONY: adlint_verbose-sma-only
adlint_verbose-sma-only :
	$(ADLINT_SMA) $(ADLINT_SMA_FLAGS) -v $(VPATHED_SOURCES)

.PHONY: adlint_verbose-cma-only
adlint_verbose-cma-only : $(SMA_MET_FILES)
	$(ADLINT_CMA) $(ADLINT_CMA_FLAGS) -v $^

.PHONY: adlint_clean
adlint_clean :
	@$(RM) $(SMA_MSG_FILES) $(SMA_MET_FILES) $(SMA_I_FILES) \
	       $(SMA_LOG_FILES) $(CMA_MSG_FILE) $(CMA_MET_FILE) $(CMA_LOG_FILE)

.PHONY: all
all : adlint_cma-all

.PHONY: sma-only
sma-only : adlint_sma-all

.PHONY: verbose-all
verbose-all : adlint_verbose-all

.PHONY: verbose-sma-only
verbose-sma-only : adlint_verbose-sma-only

.PHONY: verbose-cma-only
verbose-cma-only : adlint_verbose-cma-only

.PHONY: check
check : adlint_chk-all

.PHONY: clean
clean : adlint_clean


Previous: Appendix, Up: Top

Index