Back to [CEReAL group] / [CLUE project]
NED
Beta
Novice Errors Detection for C Programs

Start using NED now!

By using NED, you certify that you read, understood & agreed to the terms of usage.

Option #1 - Select files to upload

Use the file-browser below to select, one by one, all the .c or .h files in your project. Leave empty browsers if you do not need to analyze this many files. When you use the "Analyze" button, your files will be uploaded & analyzed. A new tab will open in your browser with a full report on possible errors.


Option #2 - Drag and Drop the files to upload

You might alternatively select a bunch of files in your file browser then drag and drop them here...

Drop Files Here to Upload

Option #3 - Upload a zip of your projet

You may alternatively zip your entire project folder then select the resulting zip file to upload


Things to keep in mind

This web app has been developed for Firefox. You may download a portable firefox version if you do not want to fully install it on your system. It should work on other standards-adhering browsing

Keep in mind these are potential errors, things you should take another look at in order to make sure they are not mistakes. Unfortunately, there is so much a program may do to understand another program.

Do not hesitate to drop us feedback, see about details here. If you want to learn a bit more about this project read here

Search through our tutorials

This table lists all our tutorials so you may peruse through them. The number of views for each is also displayed; this is not the number of times the error occured in an uploaded set of files but rather the number of times a user clicked on the messages hyperlinked to this tutorial in order to read it.

Similarly, the usefulness is based on the number of users who clicked yes at the bottom of a tutorial page. The uselessness is based on the number of those who clicked no.

The Freq. value represents how often the errors or warnings which the tutorial explains have been found during uploaded files analysis. It is a good estimate of the frequency of the underlying bugs among all NED users

Do not hesitate to use the mini-survey feature which you will find in the last section of each tutorial page. It helps identify both the tutorials in need of improvement but also those we should use as models.

Name From Type Details Views Useful Useless Freq.
Unused VariablesCompilerWarningVariable declared, maybe even assigned, but never used428011839
Undeclared VariablesCompilerErrorUndeclared variable used41022480
Undefined ReferencesLinkerErrorUndefined reference to function or variable39711
Missing Return StatementAnalyzerWarningFunction is missing return statement39110139
Missing Array SizeCompilerErrorThe size of an array is not specified3711177
Empty BlockAnalyzerWarningYour program features an empty block39112238
Single Quote StringCompilerWarningUsing single quote as string delimiter38753108
Unexpected Break StatementAnalyzerWarningUnexpected break statement3820072
Missing break statementAnalyzerWarningMissing break statement38083
Unreachable StatementsAnalyzerWarningUnreachable statements39617150
= vs. ==CompilerWarningAssignment used in Boolean expression43821450
Unary OPs in Larger ExprAnalyzerWarningUnary operators used in larger expression39100418
Bitwise vs. LogicalAnalyzerWarningUse of bitwise binary operator instead of logical operator39301316
Expected SemicolonCompilerErrorExpected semi-colon4102177
Dangling PointerAnalyzerWarningDangling pointer38331140
Dereferencing NULLAnalyzerWarningDereferencing NULL pointer4232577
Dereferencing Incomplete TypesCompilerErrorDereferencing a pointer to an incomplete data type38433446
Multi-free on same memory blockAnalyzerWarningFreeing multiple times the same memory block3890171
Memory LeakAnalyzerWarningMemory leak39204209
Freeing unallocated pointerAnalyzerWarningFreeing non-allocated memory38822149
sizeof on PointerAnalyzerWarningUsing sizeof operator on pointer38412
Uninitialized PointersAnalyzerWarningUnitialized pointer35916
Discarding Ptrs QualifiersCompilerWarningAssignment or cast discards pointers qualifier40111
Unchecked MallocAnalyzerWarningReturn value from malloc or similar function is not checked38901407
Unexpected EOFCompilerErrorUnexpected EOF3873382
Unterminated literalCompilerErrorMissing end-delimiter for character or string literal39921510
Useless ValueAnalyzerWarningStatement results in a value which is never used39231677
Void not IgnoredCompilerErrorAttempting to use a void returned value4060692
Missing EOF NewlineCompilerWarningMissing newline at end of file37730
Multiple Unary Ops on VariableCompilerWarningUsing multiple unary operators on same variable in a single expression39903251
Empty Char LiteralCompilerErrorEmpty character literal3693286
Using Uninitialized VariableCompilerWarningVariable not initialized3992290
Forward Parameter DeclarationCompilerErrorParameter has a forward-declaration392031658
Unexpected Data TypesCompilerErrorUnexpected multiple data types where one is expected39403231
Unexpected Arguments NumberCompilerErrorUnexpected number of arguments37210158
Mismatch numbers for args / specifiersCompilerWarningThere is a mismatch between the number of format specifiers used in a printf or scanf, and their arguments37221330
Mismatch types for args / specifiersCompilerWarningThere is a mismatch between the data type of format specifiers used in a printf or scanf, and the data type of the corresponding argument39122588
Using unknwon struct fieldCompilerErrorUnknown struct field40420164
Parameters Storage ClassCompilerErrorStorage class specified for parameter3732084
Shadowed IdentifierAnalyzerWarningShadowing variable already in scope3662157
Argument ConversionCompilerWarningArguments data type is converted37920485
Modifying ParametersAnalyzerWarningFormal parameters are assigned inside function37320154
Assign Integer to PointerCompilerWarningAssigning non-NULL constant to Pointer39701242
Mixed Pointers DeclarationsAnalyzerWarningDeclaring variables in one statement with pointer and non-pointer data types37220
Missing Function DeclarationCompilerWarningMissing function declaration40131
Function should not be exportedAnalyzerWarningFunction is not static to its file, yet unused in other files391301076
Off by oneAnalyzerWarningA loop might be off by one in its number of iteration; e.g. start at 0 instead of 13570046
Formatting String MismatchAnalyzerWarningA printf or scanf is using a formatting string with conversion specifiers unrelated to the parameters37801
Assign pointer to integerAnalyzerWarningAssigning memory address to variable expecting integer37900174
30700
37300
34700
32400
34200
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100
100