Compare commits
No commits in common. "master" and "cpplint/simple" have entirely different histories.
master
...
cpplint/si
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
||||||
|
joj3_result.json
|
|
@ -1,3 +1,3 @@
|
||||||
# JOJ3 examples
|
# cpplint sillycode
|
||||||
|
|
||||||
Check other branches.
|
From <https://github.com/cpplint/cpplint/blob/develop/samples/silly-sample/src/sillycode.cpp>.
|
||||||
|
|
61
conf.json
Normal file
61
conf.json
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
{
|
||||||
|
"stage": {
|
||||||
|
"stages": [
|
||||||
|
{
|
||||||
|
"name": "cpplint",
|
||||||
|
"executor": {
|
||||||
|
"name": "sandbox",
|
||||||
|
"with": {
|
||||||
|
"default": {
|
||||||
|
"args": [
|
||||||
|
"cpplint",
|
||||||
|
"--recursive",
|
||||||
|
"."
|
||||||
|
],
|
||||||
|
"env": [
|
||||||
|
"PATH=/usr/bin:/bin:/usr/local/bin"
|
||||||
|
],
|
||||||
|
"cpuLimit": 10000000000,
|
||||||
|
"memoryLimit": 104857600,
|
||||||
|
"procLimit": 50,
|
||||||
|
"copyInDir": ".",
|
||||||
|
"copyOut": [
|
||||||
|
"stdout",
|
||||||
|
"stderr"
|
||||||
|
],
|
||||||
|
"stdin": {
|
||||||
|
"content": ""
|
||||||
|
},
|
||||||
|
"stdout": {
|
||||||
|
"name": "stdout",
|
||||||
|
"max": 65536
|
||||||
|
},
|
||||||
|
"stderr": {
|
||||||
|
"name": "stderr",
|
||||||
|
"max": 65536
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"parsers": [
|
||||||
|
{
|
||||||
|
"name": "cpplint",
|
||||||
|
"with": {
|
||||||
|
"score": 0,
|
||||||
|
"comment": "check done",
|
||||||
|
"matches": [
|
||||||
|
{
|
||||||
|
"keywords": [
|
||||||
|
"whitespace",
|
||||||
|
"legal"
|
||||||
|
],
|
||||||
|
"score": 5
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
1
expected.json
Normal file
1
expected.json
Normal file
|
@ -0,0 +1 @@
|
||||||
|
[{"name":"cpplint","results":[{"score":-75,"comment":"### Test results summary\n\n1. `whitespace`: 14 occurrence(s), -70 point(s)\n2. `legal`: 1 occurrence(s), -5 point(s)\n"}],"force_quit":false}]
|
144
src/simple.cpp
Normal file
144
src/simple.cpp
Normal file
|
@ -0,0 +1,144 @@
|
||||||
|
#include <climits>
|
||||||
|
#include <cstdio>
|
||||||
|
#include <iostream>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
// Uninitialized member warning
|
||||||
|
class BadClass {
|
||||||
|
int uninitMember;
|
||||||
|
|
||||||
|
public:
|
||||||
|
BadClass() {} // Missing member initialization
|
||||||
|
void print() { std::cout << uninitMember << std::endl; }
|
||||||
|
};
|
||||||
|
|
||||||
|
// Memory leak and resource management warnings
|
||||||
|
void memoryLeaks() {
|
||||||
|
int *ptr = new int(42);
|
||||||
|
// Missing delete - memory leak
|
||||||
|
|
||||||
|
int *array = new int[100];
|
||||||
|
delete ptr; // Wrong deletion type for array
|
||||||
|
|
||||||
|
// Double deletion
|
||||||
|
int *doubleDel = new int(5);
|
||||||
|
delete doubleDel;
|
||||||
|
delete doubleDel;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Null pointer dereferencing
|
||||||
|
void nullPointerDereference(int *ptr) {
|
||||||
|
if (ptr == nullptr) {
|
||||||
|
*ptr = 42; // Dereferencing null pointer
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Array bounds warnings
|
||||||
|
void arrayBoundsIssues() {
|
||||||
|
int arr[5];
|
||||||
|
for (int i = 0; i <= 5; i++) { // Off-by-one error
|
||||||
|
arr[i] = i;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Using uninitialized array
|
||||||
|
int uninitArr[10];
|
||||||
|
int sum = 0;
|
||||||
|
for (int i = 0; i < 10; i++) {
|
||||||
|
sum += uninitArr[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unused variables and dead code
|
||||||
|
void unusedVariables() {
|
||||||
|
int unused = 42;
|
||||||
|
std::string neverUsed = "hello";
|
||||||
|
|
||||||
|
if (true) {
|
||||||
|
int unreachable = 10;
|
||||||
|
} else {
|
||||||
|
// Dead code
|
||||||
|
std::cout << "This will never execute" << std::endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Integer overflow
|
||||||
|
void integerOverflow() {
|
||||||
|
int max = INT_MAX;
|
||||||
|
max += 1; // Overflow
|
||||||
|
|
||||||
|
unsigned int i = 0;
|
||||||
|
for (i = 10; i >= 0; i--) { // Infinite loop due to unsigned underflow
|
||||||
|
std::cout << i << std::endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Resource leak in exception
|
||||||
|
void resourceLeak() {
|
||||||
|
FILE *file = fopen("nonexistent.txt", "r");
|
||||||
|
// Missing fclose and no exception handling
|
||||||
|
char buffer[100];
|
||||||
|
fgets(buffer, 100, file);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Uninitialized variable usage
|
||||||
|
void uninitializedVariables() {
|
||||||
|
int x;
|
||||||
|
if (x > 0) { // Using x without initialization
|
||||||
|
std::cout << "x is positive" << std::endl;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool flag;
|
||||||
|
while (flag) { // Using uninitialized flag
|
||||||
|
std::cout << "Loop" << std::endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Division by zero
|
||||||
|
void divisionByZero(int divisor) {
|
||||||
|
int result = 100 / divisor; // No check for zero
|
||||||
|
}
|
||||||
|
|
||||||
|
class Base {
|
||||||
|
public:
|
||||||
|
void normalFunction() {}
|
||||||
|
virtual void virtualFunction() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
class Derived : public Base {
|
||||||
|
public:
|
||||||
|
void normalFunction() {} // Hiding base class function
|
||||||
|
void virtualFunction() {} // Missing override keyword
|
||||||
|
};
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
// Memory management issues
|
||||||
|
memoryLeaks();
|
||||||
|
|
||||||
|
// Null pointer issues
|
||||||
|
int *nullPtr = nullptr;
|
||||||
|
nullPointerDereference(nullPtr);
|
||||||
|
|
||||||
|
// Array issues
|
||||||
|
arrayBoundsIssues();
|
||||||
|
|
||||||
|
// Dead code and unused variables
|
||||||
|
unusedVariables();
|
||||||
|
|
||||||
|
// Integer issues
|
||||||
|
integerOverflow();
|
||||||
|
|
||||||
|
// Resource management
|
||||||
|
resourceLeak();
|
||||||
|
|
||||||
|
// Uninitialized variables
|
||||||
|
uninitializedVariables();
|
||||||
|
|
||||||
|
// Division by zero
|
||||||
|
divisionByZero(0);
|
||||||
|
|
||||||
|
// Object slicing
|
||||||
|
Derived derived;
|
||||||
|
Base base = derived; // Object slicing
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user