Commit Graph

320 Commits

Author SHA1 Message Date
Paul Fultz II 507c7a4388 Improvement to lifetime tracking of addressof and derefencing
This will now warn for cases like this:

```cpp
auto& f() {
    std::vector<int> x;
    return x[0];
}
```

It also improves the handling of address of operator, so it can now warn across some function calls, like this:

```cpp
int& f(int& a) {
    return a;
}
int* hello() {
    int x = 0;
    return &f(x);
}
```
2019-02-22 06:38:56 +01:00
Paul Fultz II 715714f4de Forward lifetimes in "for" loops (#1682)
* Forward lifetimes in for loops

* Format
2019-02-22 06:37:02 +01:00
Kamil Dudka 2908593cf6 checkautovariables: eliminate false positives on assignment of &ptr->item (#1667)
Even if `ptr` is a local variable, the object `ptr->item` might be not.
So taking address of `ptr->item` is definitely not unsafe in general.

This commit fixes false positives triggered by commit
1.85-249-gf42648fe2 on the following code of sssd:

https://github.com/SSSD/sssd/blob/d409df33/src/sbus/request/sbus_request.c#L359
2019-02-18 09:35:07 +01:00
Daniel Marjamäki bd7790fd8c Update copyright year 2019-02-09 07:24:06 +01:00
Paul Fultz II c176775afb Avoid infinite recursion in getLifetimeVariable (#1634)
* Fix direct recursion

* Limit depth of getLifetimeVariable
2019-01-31 10:34:41 +01:00
Paul Fultz II 165a22ed0f Lifetime: Support analysis with functions that do not return a reference (#1632)
* Initial support for function return

* Add test case

* Add support for reference parameters

* Format
2019-01-29 09:47:52 +01:00
Paul Fultz II d6aaf401df Lifetime: Follow functions that return references
This will now warn for cases like this:

```cpp
int& f(int& a) {
    return a;
}
int& hello() {
    int x = 0;
    return f(x);
}
```
2019-01-26 11:03:57 +01:00
Paul Fultz II 3975913637 Extend lifetime checking for references
This will use the lifetime checker for dangling references. It will find these cases for indirectly assigned reference:

```cpp
int &foo()
{
    int s = 0;
    int& x = s;
    return x;
}
```

This will also fix issue 510 as well:

```cpp
int &f( int k )
{
    static int &r = k;
    return r;
}
```
2019-01-23 07:29:16 +01:00
Daniel Marjamäki 8dd641b8be Use OVERRIDE in test 2019-01-12 15:45:25 +01:00
Paul Fultz II 921f6e4313 Fix issue 8883: False positive: returnDanglingLifetime with local struct or class (#1585) 2019-01-11 09:51:02 +01:00
practicalswift 0a1b3a9d6f Fix typos (#1568) 2019-01-06 17:15:57 +01:00
Paul Fultz II e4677ae640 Fix issue 8910: Regression: ValueFlow: wrong conditional tokvalue
This fixes issue in:

```cpp
void f()
{
    char stack[512];
    RGNDATA *data;

    if (data_size > sizeof (stack))
        data = malloc (data_size);
    else
        data = (RGNDATA *)stack;

    if ((char *)data != stack)
            free (data); // <- data is not stack
}
```

It seems the `ProgramMemory` can't handle two known values(such as int and tok) together. So instead `ValueFlowAfterAssign` runs `ValueFlowForward` with tok values and then runs it with the other values.
2018-12-29 09:31:21 +01:00
Paul Fultz II 45dcfad9f9 Fix issue 8899: False positive returnDanglingLifetime when returning by value
This fixes the FP from:

```cpp
#include <string>

class MyString
{
        public:
        MyString(char* source)
        {
                length = strlen( source );
                buffer = new char[length+1];
                if( buffer )
                {
                        strcpy( buffer, source );
                }
        }

        char* buffer;
        int length;
};

MyString Foo()
{
        char arr[20];
        sprintf(arr, "hello world");

        return arr;
}

void main()
{
        MyString str = Foo();

        printf(str.buffer);
}
```
2018-12-15 17:58:45 +01:00
Paul Fultz II 3e1b34dd8f Fix FPs and crashes with byDerefCopy (#1503)
* Fix FP when inserting a range into a container

* Formatting

* Fix crash
2018-12-02 14:31:31 +01:00
Daniel Marjamäki ccbaad32f9 Fix merge conflicts 2018-12-01 19:14:43 +01:00
Paul Fultz II b841b818d2 Fix 8872: Crash in LifetimeStore when there is no scope for variable
This fixes crash in:

```cpp
struct edit_line_paste_over {
    void operator()(agi::Context *c) override {
        paste_lines(c, true, [&](AssDialogue *new_line) -> AssDialogue * {
            AssDialogue *ret = paste_over(c->parent, pasteOverOptions, new_line, static_cast<AssDialogue*>(&*pos));
            return ret;
          });
    }
};
```
2018-12-01 19:11:26 +01:00
Paul Fultz II 67dd822910 Fix FP in lifetime anlaysis: Dont decay std array
This will fix FP with:

```cpp
std::array<char, 1> f() {
    std::array<char, 1> x;
    return x;
}
```
2018-12-01 19:09:19 +01:00
Paul Fultz II 229c45e7f8 Fix issue 8865: FP with dangling lifetime
This fixes:

```cpp
void f(uint32_t event, unsigned long op, const xen_ulong_t *args)
{
    struct __packed {
        uint32_t op;
        uint32_t args[6];
    } d;
    uint32_t *a = d.args;
}
```
2018-12-01 19:07:46 +01:00
Daniel Marjamäki f42648fe22 Fixed #8114 (false positive: Address of local auto-variable assigned to a function parameter.) 2018-12-01 10:11:02 +01:00
Paul Fultz II f16d9d7d90 Issue 6175: Check lifetime of a variables stored in containers and member variables
Cppcheck will now warn for all cases here:

```cpp
#include <vector>
class CCluster {};
class MyClass
{ public:
    std::vector<CCluster*> m_cluster;
    void createCluster()
    {
        CCluster cl;
        CCluster* pcl=&cl;
        m_cluster.push_back(pcl);
    }
    void createCluster2()
    {
        CCluster cl;
        m_cluster.push_back(&cl);
    }
    CCluster* Cluster()
    {
        CCluster cl;
        CCluster* pcl=&cl;
        return pcl;
    }
    CCluster* Cluster2()
    {
        CCluster cl;
        return &cl;
    }
};

```
2018-11-21 08:43:57 +01:00
Paul Fultz II 7ef119cbfc Fix FPs in lifetime checker
This fixes several FPs in the lifetime checker. It also fixes issue [8846](https://trac.cppcheck.net/ticket/8846):

```cpp
int * f(int a[])
{
        return a;
}
```
2018-11-17 09:41:59 +01:00
Paul Fultz II d376e9f245 Track variable lifetime through function calls (#1481) 2018-11-16 06:12:28 +01:00
Paul Fultz II 54453c5802 Fix FP when copying pointer to string (#1479) 2018-11-14 06:59:25 +01:00
Paul Fultz II 0e11bb07c8 Extend lifetime analysis to pointer usage (#1477)
* Use lifetime analysis for pointers as well

* Fix issue 1143: Pointer to local array

* Update message when using pointers

* Avoid infinite loop in tracing lifetimes
2018-11-12 10:08:17 +01:00
Paul Fultz II 68d6b96878 Diagnose invalid lifetimes (#1475)
* Add check for invalid lifetimes

* Fix FP with member variables

* Dont forward lifetime values in subfunction

* Update message to use out of scope
2018-11-11 16:43:54 +01:00
Daniel Marjamäki ee2dfb6604 Fixed #8058 (False positive returnAddressOfAutoVariable within lambda) 2018-11-11 07:52:38 +01:00
Paul Fultz II 1ffcc6b730 Add initial lifetime checker (#1448)
* Inital valueflow lifetime checker

* Forward values

* Add initial tests

* Fix deplicate messages

* Fix traversing nested lambdas

* Turn test case into a todo

* Skip if returning a container

* Fix FP when using references

* Add missing header

* Fix FP from broken scopes

* Fix FP with static variable

* Add test for more FPs

* Parse lambda functions

* Check for capture by value

* Add tests for using a container and lambda together

* Fix cppcheck errors

* Add test for nextAfterAstRightmostLeaf

* Add valueflow tests

* Update error message

* Check for correct lambda token

* Improve error path reporting

* Fix hang when parsing arrays that look almlost like lambdas
2018-11-10 16:40:40 +01:00
Daniel Marjamäki 66ca03fa0c Fixed #8826 (false negative: Invalid memory address freed) 2018-11-03 18:55:20 +01:00
Paul Fultz II fa40b821e6 Fix issue 8740: Add a pass to check for valid operators (#1372) 2018-09-08 21:10:34 +02:00
Daniel Marjamäki 43233e72b2 Fixed #8691 (False negative for uselessAssignmentArg) 2018-08-17 19:56:36 +02:00
Daniel Marjamäki cde63c7573 Use Variable::valueType instead of Variable::typeStartToken in auto variables 2018-06-24 08:25:19 +02:00
IOBYTE ce50df8047 Fix override warnings. (#1234) 2018-05-15 16:37:40 +02:00
Daniel Marjamäki 7e4dba6a7e Updated copyright year 2018-03-31 20:59:09 +02:00
Daniel Marjamäki c110770481 Fixed #8325 (False negative: address of auto variable being returned when assigned to another variable first) 2018-01-27 14:48:45 +01:00
Daniel Marjamäki cb297a00fc Auto variables: Assign address of local variable to global pointer (#6825) 2018-01-25 22:50:41 +01:00
Daniel Marjamäki 599e038282 AutoVariables: Warn when address of local array is assigned to global pointer and pointer is not reassigned 2018-01-24 21:33:58 +01:00
Daniel Marjamäki c4caee6b18 Updated copyright year 2018-01-14 15:37:52 +01:00
Ayaz Salikhov 28aa939d69 iwyu - include what you use 2017-05-27 04:33:47 +02:00
Daniel Marjamäki f68fa72095 Fixed #7583 (Defect: False positive '(error) Reference to temporary returned') 2017-02-26 13:41:49 +01:00
PKEuS ea53bd22b7 Fixed false positive returnTempReference with operator++ (#7874) 2016-12-22 11:49:59 +01:00
Daniel Marjamäki aaf19c1e4f Fixed #7839 (Prefix increment triggers parameter modification warning) 2016-12-19 15:25:36 +01:00
PKEuS 1715969f6f Support prefix-increment/decrement in CheckAutoVariables::assignFunctionArg() (#3177) 2016-10-10 21:34:40 +02:00
Alexander Mai d492500f34 #5844 False positive: returnReference fp for inner lambda function 2016-05-20 23:46:56 +02:00
PKEuS 23ad881c64 Fixed false positive returnLocalVariable (#7180) 2016-01-30 20:18:12 +01:00
Lauri Nurmi 996c9244d8 Update copyright year to 2007-2016. 2016-01-01 15:34:45 +02:00
Alexander Mai ba0859e838 #6981 crash in checkvaarg.cpp (with possible fix). Avoid segfault. Add SymbolDatabase::validate() to allow validating smyboldatabase 2015-12-05 20:55:26 +01:00
Daniel Marjamäki 0f9d90d2be Changed Copyrights. Removed my name. 2015-11-18 20:04:50 +01:00
Daniel Marjamäki 71bf0f076f CheckAutoVariables: Handle 'x-y' better in isAutoVarArray 2015-11-15 19:34:36 +01:00
Daniel Marjamäki 4e578af603 CheckAutoVar: Improved usage of AST and ValueFlow 2015-11-15 14:48:13 +01:00
Daniel Marjamäki c10a10c26f CheckAutoVariables: use ValueFlow to detect more errors when pointer aliases are used 2015-11-15 12:10:35 +01:00
PKEuS a8cf63239a Fixed false positive autovarInvalidDeallocation if deallocting result of member function (#6551) 2015-11-11 16:59:31 +01:00
PKEuS f1bbcfe32d Refactorization: Avoid loading std.cfg multiple times in testautovariables.cpp 2015-10-07 14:40:09 +02:00
Simon Martin 59abb04042 Ticket #6596: Address of local variables can also be assigned to pointer-pointer arguments using the ptr[] syntax. 2015-08-28 20:29:51 +02:00
PKEuS 7bb79562e9 Skip inner classes in CheckAutoVariables::returnReference() (#6951) 2015-08-26 13:31:51 +02:00
Simon Martin 6fb19b02d0 Properly differentiate arrays of pointers and pointers to arrays. 2015-08-25 21:19:19 +02:00
PKEuS a297a03b64 Fixed false positive #6787: Skip over lambdas in CheckAutoVariables::returnReference() 2015-08-14 13:03:07 +02:00
Daniel Marjamäki 9627fccdc5 assignFunctionArg: don't warn when there is self assignment. There is a separate warning for self assignments. 2015-08-09 14:51:23 +02:00
PKEuS 176b3925b3 Removed "verify" code in testrunner. Fixing its messages reduces the accuracy of the test suite. 2015-07-25 14:18:41 +02:00
Simon Martin 7481fbb028 Fixed #6506 (Properly detect calls to the deallocating free() function) 2015-06-20 21:00:54 +02:00
PKEuS 42673255ed Refactorized testrunner: Create std::string only where necessary 2015-03-15 12:36:40 +01:00
PKEuS bc5132e0ac Refactorization: Moved declaration of errout, ... to testsuite.h, uniformized style 2015-03-11 22:54:43 +01:00
Robert Reif 130ffc5752 Fixed #6538 (Symboldatabase: improve isFunction) 2015-02-24 06:11:31 +01:00
PKEuS 36841cfa41 Better support for stream operator in CheckAutoVariables::returnReference() (#6423) 2015-01-31 10:12:49 +01:00
Daniel Marjamäki ff11ba9847 Updated copyright year to 2015 2015-01-03 12:14:58 +01:00
Daniel Marjamäki 051d42ae6b astyle formatting 2014-11-20 14:20:09 +01:00
orbitcowboy f5d804f71a running astyle 2014-11-20 10:13:03 +01:00
Daniel Marjamäki a3efa1e180 Fixed #4776 (FP: Assignment of function parameter has no effect outside the function, with goto) 2014-10-21 16:21:33 +02:00
Dmitry-Me 1e298a31cf Refactoring tests. Use utility function to warn about unsimplified code in tests. 2014-09-13 12:59:32 +02:00
PKEuS ac59485e7e Refactorized CheckAutoVariables::assignFunctionArg():
- Splitted message into style message (assigning non-pointers) and warning message (assigning pointers)
- Support operator++/-- (#4793)
2014-08-04 11:45:24 +02:00
PKEuS a04036337d Fixed #5860: Don't show returnTempReference for calculations on unknown types 2014-05-24 12:50:04 +02:00
PKEuS 6635abbe55 Improved check: Complain about returning reference to literals or reference to calculation result (#4317) 2014-05-22 11:39:11 +02:00
Alexander Mai f2e5da290b Replace 2 invalid test cases added while fixing #5793 by a valid one 2014-05-15 21:20:16 +02:00
Alexander Mai 146bf11aa7 #5793 - False positive: Deallocation of an auto-variable (at reference notation) 2014-05-12 19:53:49 +02:00
Alexander Mai d2ebd718a9 #5691 False positive: autovarInvalidDeallocation - function name 'delete' in C code 2014-05-01 07:32:37 +02:00
PKEuS ea23a0467b Fixed false positive #5732: autovarInvalidDeallocation on pointer to array 2014-04-27 12:18:33 +02:00
Alexander Mai 6a08c27183 Fix segfault in variableIsUsedInScope() - loop variable not check against NULL 2014-03-22 11:14:11 +01:00
Alexander Mai 3f30753122 Fixed #5537 (crash: clang ./lib/Basic/FileManager.cpp , since 354e84e7c8 , /lib/symboldatabase.h:288) 2014-03-09 08:17:24 +01:00
Alexander Mai 354e84e7c8 Fixed #2298 (new check: passing stack-address to free()) 2014-03-06 06:32:30 +01:00
Daniel Marjamäki 4dee3da1bd Merge pull request #245 from simartin/ticket_5478
Ticket #5478: Only functions and equal operators might return a temporary
2014-03-02 14:53:25 +01:00
Simon Martin 875a3f47e7 Ticket #5478: Only functions and equal operators might return a temporary. 2014-03-02 09:39:10 +01:00
Simon Martin ef3f135af2 Ticket #5050: Added test case since it works now. 2014-03-01 10:37:55 +01:00
Daniel Marjamäki fd3a8a2a18 Update copyright 2014-02-15 07:45:39 +01:00
PKEuS 4f0121ee2f Splitted simplification out of tokenize() 2013-12-30 17:45:28 +01:00
Daniel Marjamäki 0ef1529ba5 Fixed #5005 (false positive: (warning) Assignment of function parameter has no effect outside the function.) 2013-10-06 16:07:27 +02:00
Daniel Marjamäki 1234ec95f0 Fixed #4998 (False positive: Address of local auto-variable assigned to a function parameter) 2013-10-06 14:23:26 +02:00
Daniel Marjamäki c2a8f6f59a astyle formatting 2013-09-28 09:32:41 +02:00
Simon Martin d67a0add47 Ticket #5024: Don't crash upon invalid code when checking auto variables. 2013-09-28 00:14:12 +02:00
PKEuS a9a5dc0354 Updated to AStyle 2.03, require this version 2013-08-07 16:27:37 +02:00
Daniel Marjamäki cd5e32446f Fixed #4641 (False positive: Address of local auto-variable assigned to a function parameter) 2013-06-13 16:19:19 +02:00
Daniel Marjamäki 4e65800adf TestRunner: Updated warning message when there is unsimplified code 2013-04-16 16:54:19 +02:00
Daniel Marjamäki 25582dbde7 Simplify TestAutoVariables test cases 2013-04-13 18:38:15 +02:00
Ettl Martin 54d398c7dd unittests: removed not needed '\n' at the end of testcases. 2013-03-19 09:18:58 +01:00
PKEuS 33cf561d85 Refactorized check for assigning function parameters:
- Fixed false negative: Check is also valid for all non-references, not only for pointers.
- Fixed false negative: Usage before assignment doesn't require bailout
- Fixed false positive #4598 caused by inadequate usage of CheckUninitVar::isVariableUsage
- Made several member functions static
2013-02-18 08:52:49 -08:00
Daniel Marjamki 75e20a996d assign function pointer: Fixed false positive when pointer is used also. Ticket: #2930 2013-02-02 15:26:14 +01:00
Daniel Marjamki 6bb8dd605a assign function parameters: only show warning when --enable=warning or --enable=style is used. Ticket: #2930 2013-02-02 15:08:43 +01:00
Daniel Marjamäki cbbb582fc9 Fixed #2930 (new check: redundant assignment of pointer function parameter) 2013-02-01 19:16:17 +01:00
Reijo Tomperi 5d5f7085bf Updating year 2012 -> 2013 to .cpp and .h files and man page. 2013-01-01 18:29:08 +02:00
Robert Reif 0d4b87c71e SymbolDatabase: Improved find function functionality. Taking arguments into account 2012-10-14 17:30:37 +02:00
XhmikosR 3c14e4b52a test: tabs to spaces, remove trailing spaces and extra empty lines at the end of files 2012-09-17 13:51:40 +02:00
PKEuS 1e5d082251 Moved remaining part of c_str() checking to checkstl.cpp. Fixed false positive #4157. 2012-09-10 15:20:38 +02:00
PKEuS 4fb464982c Fixed crash reported in #4076 2012-08-22 10:17:23 -07:00
PKEuS e05a597066 Fixed false negatives in checkautovariables.cpp:
- Detect returning temporary instances (#4076)
- Added support for returning user defined types
2012-08-22 04:08:32 -07:00
Daniel Marjamäki 17c27f51ff Fixed #3791 (False positive: returnTempReference) 2012-07-18 07:22:29 +02:00
PKEuS 247d820027 Fixed #3972: Don't issue auto variable error when the address is assigned to a reference to a non-pointer. 2012-07-13 05:21:45 -07:00
PKEuS 0f1cb4c98c Message refactorization: checkassignif.cpp, checkautovariables.cpp 2012-07-07 11:31:18 -07:00
PKEuS ec00824fd3 Fixed #3357:
- Print "inconclusive" tag in cli
- Fixed inconclusive handling in checkbufferoverrun.cpp
- Merged reportInconclusiveError into reportError by adding an additional parameter "bool inconclusive" which is false per default
2012-05-06 10:37:41 -07:00
PKEuS 746beb98bf Added support for delete and delete[] in invalidDeallocation check (fixes #1773) 2012-04-26 16:44:33 +02:00
Daniel Marjamäki abcbe2e49f Fixed #3594 (false positive: returning reference to auto variable) 2012-03-28 18:21:06 +02:00
PKEuS 1ef99e2f21 Improved checkautovariables:
- Added support for checking a few more code patterns
- Simplified code by using more information from the symboldatabase
- Moved redundant part of c_str-check to checkstl
Two fixes according to output of pvs studio in testsimplifytokens.cpp
2012-03-01 18:38:20 +01:00
PKEuS c273d6d31d Refactorized checkautovariables.cpp. Removed indendation counters.
Fixed #3478
2012-01-08 15:32:22 +01:00
Reijo Tomperi 8cae17fda8 Update year to 2012 2012-01-01 01:05:37 +02:00
Daniel Marjamäki 6a0c463ebd #3382 (Clarify error message 'invalid deallocation') 2011-12-30 10:32:55 +01:00
Daniel Marjamäki 096b22c46e #3434 (False positive Returning reference to auto variable) 2011-12-26 07:44:16 +01:00
PKEuS 9b685ba3c3 Code cleanup 2011-12-09 21:00:57 +01:00
PKEuS 1bef8d1247 Tokenizer: Code cleanups 2011-12-08 17:42:26 +01:00
Daniel Marjamäki 6f8e42a5af changed the astyle formatting flags 2011-10-13 20:53:06 +02:00
Robert Reif e19cbf0cdd fix false positive introduced by previous false negative fix commit 2011-09-02 10:39:04 -04:00
Robert Reif 833865e736 fix #3066 (False positive: Inconclusive: Assigning address of local auto-variable to a function parameter.) 2011-09-01 22:22:33 -04:00
Robert Reif 5bad978833 fix line number in messagex for CheckAutoVariables::autoVariables 2011-09-01 20:34:31 -04:00
Robert Reif 2667e34a07 fix again #3064 (false negative: returning address of stack variable) 2011-09-01 18:30:49 -04:00
Robert Reif e7dc765ece fix #3064 (false negative: returning address of stack variable) 2011-08-31 21:36:31 -04:00
Robert Reif 21c9b6d262 add another test for #3030 (Improve check: Returning pointer to local array variable with '&' pointer operator) 2011-08-20 16:41:12 -04:00
Robert Reif 7eb43bc107 partial fix for #3030 (Improve check: Returning pointer to local array variable with '&' pointer operator) 2011-08-20 15:08:30 -04:00
Daniel Marjamäki 9a24492a00 Fixed #2975 (False positive: Return of the address of an auto-variable) 2011-08-10 18:16:31 +02:00
Daniel Marjamäki 2b8b0c44b2 Fixed #2969 (False positive: assign address of auto-var to function parameter, when function parameter is reassigned later) 2011-08-09 18:24:39 +02:00
Daniel Marjamäki 2b48c7624c Auto Variables: Reverted fix for #1514 because my idea was wrong. See ticket: #2944 2011-07-27 10:43:44 +02:00
Robert Reif 527c1aae33 fix #2931 (another false negative in auto variables checking when function parameter is a struct) 2011-07-22 08:31:31 -04:00
Robert Reif 84ca1902a5 fix #1514 (Improve CheckAutoVariables: assign autovariable address to effective parameter) 2011-07-21 22:37:36 -04:00
Robert Reif 4e64d35462 fix #2926 (false negative in auto variables checking when function parameter is a struct) 2011-07-21 22:26:42 -04:00
Robert Reif cc1ecccd01 fix #2928 (False positive (static variable misinterpreted as auto variable)) 2011-07-21 18:20:19 -04:00
Robert Reif 32f94a47cc fix #2925 (False negative: auto variables - assigning address of array to function parameter) 2011-07-20 19:02:54 -04:00
Robert Reif bb5dfa58a1 fix #2765 (Non local address detected as address of local auto-variable) 2011-05-06 19:26:04 -04:00
Robert Reif ccb831d375 fix regression #1819 (False positive: auto variable assignment (unseen typedef)) 2011-05-06 18:18:48 -04:00
Robert Reif 29c73e0571 fix false positive introduced in CheckAutoVariables::autoVariables conversion to use symbol database 2011-04-26 20:16:09 -04:00
Robert Reif 55898c0dfc convert last check in checkautovariables to use the symbol database 2011-04-23 09:50:56 -04:00
Robert Reif cd64d8476c fixed #2614 (missing varid on function parameter) 2011-04-23 09:37:50 -04:00
Martin Exner 2b08744b97 Fixed #2676 (setVarId: variables with global scope qualification :: don't get varids) 2011-04-18 06:56:39 +02:00
Robert Reif c9b2ab3c26 add debug message for function argument missing varid 2011-03-02 21:08:27 -05:00
Daniel Marjamäki 7507f64ee7 Fixed #2558 (false positive: (error) Returning reference to auto variable) 2011-02-12 15:39:26 +01:00
Robert Reif 1e0d538273 checkautovariables: refactor to use the symbol database 2011-02-07 19:26:34 -05:00
Reijo Tomperi 226b605774 Change year 2010 -> 2011 in license texts. 2011-01-09 21:33:36 +02:00
Kimmo Varis 8369d0ddd6 Improving 'Wrong assignment of auto variable' error message.
Improving the error message as discussed at dev-forum:
https://sourceforge.net/apps/phpbb/cppcheck/viewtopic.php?f=3&t=192&start=0
2010-12-04 09:55:20 +02:00
Robert Reif f12c0c7ada Tokenizer: add assert(_settings) to Tokenizer to insure the tokenizer always has settings. Ticket: #2219 2010-12-01 18:00:55 +01:00
Daniel Marjamäki 3d195f2326 Auto variables: improved the check for 'return retval.c_str()'. Ticket: #2191 2010-11-13 15:38:21 +01:00
Daniel Marjamäki cd94fa89e0 Tokenizer: More specific bail outs in simplifyKnownVariables 2010-11-07 11:07:56 +01:00
Daniel Marjamäki c907acf767 Fixed #1819 (False positive: auto variable assignment (unseen typedef)) 2010-10-22 21:12:56 +02:00
Reijo Tomperi 35d2a27b9c Update copyright year in all source files 2010-04-13 22:23:17 +03:00
Daniel Marjamäki 1c84dc814c Auto variables: Improved handling of temporaries 2010-01-27 19:16:32 +01:00
Daniel Marjamäki 32fcb8fe18 Auto variables: returning pointer to temporary .c_str() data 2010-01-26 22:11:34 +01:00
Daniel Marjamäki f62466493b New Check: Detect return of invalid reference 2010-01-23 20:39:12 +01:00
Slava Semushin 82ae064218 Fixed #1013 (autovariables: detect when assigning parameter **par)
http://sourceforge.net/apps/trac/cppcheck/ticket/1013
2010-01-02 03:53:34 +06:00
Reijo Tomperi db30c5b0d2 Fix #1069 (Minor spelling mistake across cppcheck)
http://sourceforge.net/apps/trac/cppcheck/ticket/1069
2009-12-08 20:10:08 +02:00
Daniel Marjamäki 09859c1019 refactoring the folder structure 2009-10-25 12:49:06 +01:00
Reijo Tomperi fdde2182b9 Fix GPL comments in all files. ">." was missing from the end. 2009-09-27 18:08:31 +03:00
Slava Semushin be89be8c30 Fixed #590 (False positive: Invalid deallocation when variables have same name)
http://sourceforge.net/apps/trac/cppcheck/ticket/590
2009-08-16 15:27:40 +07:00
Slava Semushin 4c32057180 Fixed ticket #541 (Wrong testcases produce unlogged error at Tokenizer::syntaxError)
http://sourceforge.net/apps/trac/cppcheck/ticket/541
2009-08-12 02:06:41 +07:00
Gianluca Scacco ba4754a784 Added new test for invalid deallocation 2009-08-09 15:43:00 +02:00
Slava Semushin 37fe631639 test/testautovariables.cpp: renamed some testcases.
Make it readable.

No functional change.
2009-07-28 00:36:56 +07:00
Slava Semushin 82ae0e305b checkautovariables: added newlines to make code more readable.
No code change.
2009-07-28 00:34:17 +07:00
Slava Semushin bb4b2b707c Fixed ticket #517 (False positive for extern variables: return of the address of an auto-variable)
http://sourceforge.net/apps/trac/cppcheck/ticket/517
2009-07-28 00:32:01 +07:00
Daniel Marjamäki a71d260308 Refactoring: Moved CheckOther::returnPointerToLocalVariable to CheckAutoVariables 2009-06-09 19:45:58 +02:00
Daniel Marjamäki 5747133fa8 Fix #370 (Assign auto variable to parameter false positive) 2009-06-06 21:25:41 +02:00
Slava Semushin e5c0383594 Strip redundant std::string usage from tests.
Done by command:
git grep -l ASSERT_EQUALS | xargs sed -i 's|ASSERT_EQUALS(std::string(\(".\+"\)),|ASSERT_EQUALS(\1,|'

Should be no functional change.
2009-06-01 02:50:25 +07:00
Reijo Tomperi 58eda6e978 Fix ticket #325 (Replace developer names in source files with AUTHORS file)
http://apps.sourceforge.net/trac/cppcheck/ticket/325
2009-05-30 08:48:12 +03:00
Slava Semushin 3a40c33d7b Updated wrong comments (looks like after copy&paste).
No code change.
2009-05-22 21:13:01 +07:00
Reijo Tomperi dd8b738f7f Initial fix for ticket #283 (segmentation fault when checking xterm sources)
http://apps.sourceforge.net/trac/cppcheck/ticket/283
It should print out error message now instead of crashing. Cleanup is needed.
2009-05-07 23:17:29 +03:00
Gianluca Scacco f5104d6d0a Added new test to autovariable 2009-03-28 21:54:12 +01:00
Gianluca Scacco c88a362893 Fixed ticket #228: false positive with usage of an auto-variable 2009-03-28 21:47:38 +01:00
Vesa Pikki f04bdccee4 Astyle formatting. 2009-03-22 15:15:16 +02:00
Gianluca Scacco 416115e38f Fixed error compiling testautovariables 2009-03-22 12:00:21 +01:00