Thomas Jarosch
3c915b534d
Match compiler: Collect and cache plain C-strings
...
Profiler runs with gperftools showed we were spending
a lot of time in strlen() even with compiled match patterns.
If you compare a std::string with a plain C-string,
the comparison operator needs to calculate the length
of the C-string via strlen().
We can avoid this by turning all C-strings into C++ strings,
which cache the string length internally.
The match compiler has been adapted to collect all
C-strings during compilation and aggregate them.
Benchmark on the 'rpm' code base on a Core i7 920 box:
cppcheck without matchcompiler:
real 0m30.977s
cppcheck with previous matchcompiler:
real 0m28.157s
cppcheck with cached C-strings:
real 0m17.823s
2012-12-30 23:24:28 +01:00
Thomas Jarosch
fe5ee76165
Match compiler: No need to handle %num% twice
2012-12-30 20:33:49 +01:00
Thomas Jarosch
33f4bd0298
Silence cppcheck warning
2012-12-25 15:28:58 +01:00
Thomas Jarosch
3d0b4a9f7e
Add execute permissions to matchcompiler.py on linux
2012-12-25 13:18:24 +01:00
Thomas Jarosch
a2885a1759
Python 3 compatibility for the helper scripts
...
print() is a function in python 3.
Works with pyhton 2.x, too.
2012-12-25 13:12:58 +01:00
Daniel Marjamäki
3b3fe1c616
matchcompiler: throw InternalError if Token::Match is called with the varid 0
2012-12-19 06:45:05 +01:00
XhmikosR
9f11c01450
apply astyle
2012-12-15 09:46:02 +01:00
Daniel Marjamäki
b6786c87b4
matchcompiler: handle %varid%
2012-12-14 16:59:37 +01:00
Daniel Marjamäki
7c931960bd
Merge pull request #123 from Keruspe/master
...
build: Fix sources location
2012-12-11 11:13:39 -08:00
Marc-Antoine Perennou
cd9782472f
build: rename LIBDIR to SRCDIR
...
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
2012-12-11 09:30:37 +01:00
Daniel Marjamäki
2d8ed65d43
compiled Token::Match patterns: refactorings,improvements
2012-12-10 20:28:11 +01:00
Daniel Marjamäki
a11ec4a5ee
matchcompiler: replaced regular expression with simple code that parses the code better
2012-12-08 19:29:16 +01:00
Daniel Marjamäki
9fcfb38a1c
matchcompiler: merged regular expressions to a single expression
2012-12-08 16:22:55 +01:00
Daniel Marjamäki
bef0cf149b
matchcompiler: reverted changes so the 'make test' works again
2012-12-08 07:41:18 +01:00
Daniel Marjamäki
9bd222970e
matchcompiler: fixed hang. don't know why it hangs.
2012-12-04 23:38:49 +01:00
Daniel Marjamäki
ae7846bf7e
matchcompiler: added some selftests for findMatchPattern
2012-12-04 22:57:52 +01:00
Daniel Marjamäki
514d06b015
Makefile: minor cleanup
2012-12-03 06:34:43 +01:00
Daniel Marjamäki
94930c3bd7
Compiled Token::Match patterns: let 'make clean' cleanup compiled patterns
2012-12-02 13:42:48 +01:00
Daniel Marjamäki
ef5eece286
Compiled Token::Match patterns: extended match patterns and refactored the script a little
2012-12-02 13:39:59 +01:00
Daniel Marjamäki
d630d34b62
Compiled Token::Match patterns. Added python script solution. Python is required to build with compiled patterns. To build cppcheck with compiled patterns use 'make LIBDIR=build'.
2012-12-02 12:36:55 +01:00
Daniel Marjamäki
29263e63fe
times: added shell script that executes previous tags
2012-11-30 12:12:04 +01:00
Daniel Marjamäki
ea9f0718b0
tools/times: minor tweaks
2012-11-27 12:20:23 +01:00
Daniel Marjamäki
b200e1c430
tools/times: tweaked shell script to work better
2012-11-27 07:24:18 +01:00
Daniel Marjamäki
1ebab4a442
tools/times: added simple scripts to generate time stats for cppcheck
2012-11-27 06:08:26 +01:00
XhmikosR
941945bf42
missing tab to space
2012-09-29 18:02:34 +02:00
XhmikosR
9b5c245899
tabs to spaces, remove trailing spaces and extra empty lines at the end of files
2012-09-29 13:49:16 +02:00
Daniel Marjamäki
ce862e02aa
dmake: New version of TinyXml needs -DTIXML_USE_STL define in linux
2012-09-09 13:08:04 +02:00
Edoardo Prezioso
826d5bb00b
Since the GCC -Wconversion warnings are fixed (at least on a x86-64 environment), enable it in the Makefile.
2012-07-18 00:50:30 +02:00
Kimmo Varis
fe9e6130cf
Add general PRO file for console builds.
...
It is easier to maintain PRO files when we keep all the console-
build specific general options in one file. For example changes to
compiler options affect to all console builds.
2012-06-18 09:28:32 +03:00
Daniel Marjamäki
f98179a835
astyle formatting
2012-06-18 06:41:04 +02:00
Kimmo Varis
7b603813d7
dmake: Apply small fix from Dan.
...
This fixes the potential (but not likely to happen) case when
file list is empty. Dan suggested this change when reviewing my
earlier patch.
2012-06-11 22:09:09 +03:00
Kimmo Varis
734d4af007
Tests: Generate test file listing with dmake.
...
Use dmake to generate a test/testfiles.pri with all the files
containing tests. The testfiles.pri is included by the test/test.pro,
which compiles the test runner. This automates the test file listing
instead of former way to hand-edit the file list.
Fixes ticket #3885 (dmake needs to create a list of test files for qmake)
2012-06-11 22:05:55 +03:00
Kimmo Varis
be21a44dd2
Tools: Adding a tools.pro to build dmake.
2012-06-11 14:45:32 +03:00
Daniel Marjamäki
16427b40b9
dmake: move . this fixes compiler errors when compiling with some old gcc 3.X compiler
2012-02-26 10:18:21 +01:00
Edoardo Prezioso
f37f13c3ad
Fixed typo in make file generation.
2012-02-17 20:12:41 +01:00
Daniel Marjamäki
f183954150
dmake: keep some dummy debug code in release Makefiles to make the debug/release more similar
2012-02-12 03:30:58 +01:00
Edoardo Prezioso
f20e88fcc5
tools/dmake.cpp: nitpicky reorder of commented warnings in alphabet order with uncommented ones.
2012-01-03 15:10:32 +01:00
Reijo Tomperi
8cae17fda8
Update year to 2012
2012-01-01 01:05:37 +02:00
Daniel Marjamäki
5cc5330d95
extracttests.py: reverted last change. see comments on github.
2011-12-07 21:49:34 +01:00
Daniel Marjamäki
ab348387b5
extracttests.py: python 3 compatibility updates
2011-12-07 17:05:24 +01:00
Daniel Marjamäki
e9546c5042
extracttests.py: create output folders if they dont exist
2011-12-04 21:46:56 +01:00
Daniel Marjamäki
8e9097bce7
extractpython.py: cleanup
2011-12-02 19:08:04 +01:00
Daniel Marjamäki
712ca42985
extracttests: refactorings. dont include dynamic strings in the listing
2011-12-02 18:33:17 +01:00
Daniel Marjamäki
ca9dbfc031
extracttests.py : improved errors.txt output
2011-11-29 21:35:57 +01:00
Akio Idehara
baa97d53fc
Fixed #3346 (cygwin detection for _GLIBCXX_DEBUG in Makefile)
2011-11-29 20:35:56 +01:00
Daniel Marjamäki
932680994d
removed old extracttests.cpp
2011-11-29 17:43:23 +01:00
Daniel Marjamäki
16ae2f49ca
extracttests.py: minor code fixes of --code handling
2011-11-29 10:13:37 +01:00
Daniel Marjamäki
7624313808
extracttests.py: added option to output test files
2011-11-28 22:17:06 +01:00
Daniel Marjamäki
c0770f0823
extracttests.py: improved command line parser
2011-11-27 17:11:38 +01:00
Daniel Marjamäki
ac06f34627
extracttests.py: cleaned up the code for parsing of command line
2011-11-27 15:24:13 +01:00
Daniel Marjamäki
681e4ba314
extracttests.py: exit if wrong command line is given
2011-11-27 14:11:15 +01:00
Daniel Marjamäki
ce2be7cbe3
extracttests.py: reduce line lengths
2011-11-27 13:49:20 +01:00
Daniel Marjamäki
370018d313
extracttests.py: close input file
2011-11-27 11:43:13 +01:00
Daniel Marjamäki
54eeb76a71
extracttests.py: renamed 'str' to 'string'
2011-11-27 11:40:23 +01:00
Daniel Marjamäki
0c54f88dd0
extracttests.py: added docstrings. added navigation links.
2011-11-27 11:35:01 +01:00
Daniel Marjamäki
db186b2c25
extracttests.py: allow user to see 'error cases only'
2011-11-27 10:26:35 +01:00
Daniel Marjamäki
315ce1db40
extracttests.py: added function 'trimname'
2011-11-27 08:32:07 +01:00
Daniel Marjamäki
52caadf957
extracttests.py: Added a little help info
2011-11-27 08:13:11 +01:00
Daniel Marjamäki
9c626b941a
extracttests.py: Added tool for extracting test information
2011-11-27 08:06:11 +01:00
Edoardo Prezioso
433f4640a9
Fix some GCC warnings regarding the sign conversion.
2011-10-30 18:34:49 +01:00
Ville Skyttä
b69ad0fefc
Makefile: Use pcre-config to get include/lib paths etc
2011-10-28 21:20:19 +02:00
Daniel Marjamäki
17aea0a997
dmake: disabled -Wunreachable-code because there was too many warnings
2011-10-24 07:09:14 +02:00
Edoardo Prezioso
df5d26901c
Add new warning option to check for dead code and change the order of some struct members to reduce structure padding.
2011-10-24 03:02:00 +02:00
Edoardo Prezioso
12f6ce46f8
Add more warnings and fix the ones reported by them.
2011-10-22 15:05:43 +02:00
Daniel Marjamäki
34e2a2ad66
Makefile: Disable rules by default
2011-10-17 20:18:36 +02:00
Daniel Marjamäki
6f8e42a5af
changed the astyle formatting flags
2011-10-13 20:53:06 +02:00
Kimmo Varis
80ba3d6a92
Merge pull request #32 from rpavlik/qmake-configure-rules
...
Qmake configure rules
2011-08-19 13:00:34 -07:00
Edoardo Prezioso
f62d1d0122
Fixed #3017 (set HAVE_RULES to yes only if HAVE_RULES is undefined when executing make.)
2011-08-19 00:28:31 +02:00
Ryan Pavlik
50b0e95314
put the rules logic in its own .pri file, and allow easier override
2011-08-18 15:42:19 -05:00
Ryan Pavlik
33b5970c91
use the qmake config setting HAVE_RULES to enable/disable pcre rules support,
...
defaulting to on except on Windows.
2011-08-18 12:13:21 -05:00
Daniel Marjamäki
d336e91049
Makefile: Added the -D_GLIBCXX_DEBUG flag again to get checked stl during debug
2011-08-14 18:57:48 +02:00
Kimmo Varis
d698e24746
dmake: Fix build in Windows.
2011-08-11 23:41:35 +03:00
Kimmo Varis
3eb11e7bdf
Tools: Update VS project file.
2011-08-11 23:40:10 +03:00
Kimmo Varis
a382a6938b
Tools: fix Makefile
...
tools/ Makefile contained errmsg target whose source does not
exist anymore. And it didn't have a target for extracttests.
Removed the errmsg target and added new target for extracttests.
Ticket: #2988 (In tools, make error: no rule to make target `errmsg.cpp', needed by `errmsg'.)
2011-08-10 23:58:54 +03:00
Felix Geyer
e49763b14f
Ticket: #2823 (cppcheck fails to build with system tinymxl and -Wl,--as-needed)
2011-06-19 20:56:12 +03:00
Kimmo Varis
a6c35cb828
Fix tools/Makefile permissions.
2011-06-18 11:08:40 +03:00
seb777
c73506009b
Merge branch 'master' of http://github.com/danmar/cppcheck
2011-05-02 19:55:34 +02:00
Kimmo Varis
c7d99fe9a7
Remove ErrorLogger::reportStatus() method.
...
The ErrorLogger::reportStatus() is not lib code interface. The CLI
code does the looping through file list and gives one file at a
time for the core code. Hence lib has no any idea about the
progress and it can't provide such information.
Also the recent commit (6d858b6
) caused a GUI build failure by
adding CLI code dependency to GUI. Which is big no-no.
This is admittedly a hack. But it allow us to build all modules
again.
2011-04-27 23:27:02 +03:00
Daniel Marjamäki
29a7b3bafd
dmake: fixed compiler error
2011-04-27 17:57:03 +02:00
Greg Hewgill
7ae4896703
Makefile: handle case where LDFLAGS is already defined (in dmake)
2011-04-23 00:20:38 +12:00
Daniel Marjamäki
712e285bd6
Makefile: added option for compiling with/without rules
2011-04-19 20:53:40 +02:00
Reijo Tomperi
485ff0b472
"#ifndef" can't be used in Makefile (it is considered a commented line). Replaced it with "ifndef".
2011-04-11 22:54:29 +03:00
Daniel Marjamäki
5058cc6aa1
Reverted non-CMake changes in previous 'Added CMake files' commit
2011-03-25 07:59:48 +01:00
Markus Elfring
9301ee28a8
Added CMake files
2011-03-25 07:14:53 +01:00
Sebastien Debrard
48cc875bdf
fix compilation error
2011-03-23 01:27:08 +01:00
Sebastien Debrard
8f6af5c6da
fix compile error
2011-03-23 01:25:47 +01:00
Daniel Marjamäki
8caf96be63
FileLister: Moved back the code into a single cpp file
2011-03-20 14:25:11 +01:00
Daniel Marjamäki
f5ebd779f8
GCC: Disabled the -Wsign-conversion. It is quite noisy.
2011-02-17 22:28:36 +01:00
Daniel Marjamäki
805773663e
Build: Renamed HAVE_DEPENDENCIES to HAVE_RULES
2011-02-14 19:37:58 +01:00
Daniel Marjamäki
27febb062b
cppcheck: Added HAVE_DEPENDENCIES define. Cppcheck cli can be compiled without dependencies.
2011-02-12 08:06:59 +01:00
Daniel Marjamäki
227a6100f7
astyle formatting
2011-02-11 19:31:37 +01:00
Reijo Tomperi
a71204b8e3
Change "tinyxml/tinyxml.h" includes into <tinyxml.h> and modify dmake to work with it.
...
This should allow usage of libtinyxml-dev or such libraries without modifications to code or makefile.
2011-02-10 22:35:48 +02:00
Robert Reif
90495d52d2
fix dmake.cpp cppcheck message: Include file: ../cli/fileLister_win32.h not found.
2011-02-09 21:32:20 -05:00
Reijo Tomperi
73e746cfd8
Change Makefile to allow another external library to be used instead of bundled one.
...
E.g. make TINYXML="-ltinyxml" can be used to compile with libtinyxml-dev instead of
externals/tinyxml (but won't compile yet, because of #include "tinyxml/tinyxml.h" in the code).
2011-02-09 01:06:51 +02:00
Kimmo Varis
3fc0d0f03e
Run dmake to update Makefile.
2011-02-02 14:36:45 +02:00
Kimmo Varis
800d8d1e05
Cleanup makefile a bit.
...
Align object file lists first line. Remove excessive use of tabs.
2011-01-31 09:18:35 +02:00
Daniel Marjamäki
07e097561c
dmake and Makefile updates
2011-01-21 20:51:01 +01:00
Kimmo Varis
b8b2e3fae9
Move filelister* to cli.
...
Ticket #2445 (Move FileLister classes from LIB to CLI).
2011-01-18 19:58:49 +02:00
Reijo Tomperi
226b605774
Change year 2010 -> 2011 in license texts.
2011-01-09 21:33:36 +02:00
Daniel Marjamäki
a9aa6375b7
gcc: disabled -Wconversion again - too many warnings
2011-01-01 09:16:31 +01:00