Commit Graph

208 Commits

Author SHA1 Message Date
Ted Kremenek ca8ac081af Unbreak ccc-analyzer: getcwd is from package Cwd
llvm-svn: 56397
2008-09-21 18:26:19 +00:00
Ted Kremenek 32c1181468 Patch by Richard Godbee:
Output to .info files the absolute paths to files that were rejected by the
parser or crashed the analyzer.

llvm-svn: 56396
2008-09-21 18:04:49 +00:00
Ted Kremenek 172f04dfe6 scan-build now prints out bug categories.
llvm-svn: 56395
2008-09-21 06:58:09 +00:00
Ted Kremenek ebb4245b84 Have ScanView.py generate a "<td></td>" pair in the output HTML instead of having scan-build output an empty (and possibly unused) <td>.
llvm-svn: 56393
2008-09-21 03:55:51 +00:00
Daniel Dunbar 669632bf9a Add REPORTBUG marker to scan-build.
llvm-svn: 56373
2008-09-19 23:18:44 +00:00
Ted Kremenek 6633871cb3 Analysis option -warn-objc-nserror-methods is no longer available. (check is done automatically with -checker-cfref)
llvm-svn: 56313
2008-09-18 21:25:58 +00:00
Ted Kremenek be061e2a19 Enable '-warn-objc-nserror-methods' by default.
llvm-svn: 56298
2008-09-18 06:34:16 +00:00
Ted Kremenek 907921f753 Include links to stderr output of clang in the table of files that clang rejects.
llvm-svn: 56173
2008-09-12 22:49:36 +00:00
Daniel Dunbar 2880158a20 Add ccc support for -e and -sectorder.
- llvmc2, save me!

llvm-svn: 56169
2008-09-12 19:42:28 +00:00
Daniel Dunbar be12fd1f4f Teach FindSpecRefs how to link to C++ spec.
llvm-svn: 56164
2008-09-12 18:10:49 +00:00
Ted Kremenek 4ab81cbe2f Echo stderr/stdout from clang subprocess to both the stderr of ccc-analyzer and
to an output file. This way users can both see the output of 'clang' as well as
enable background logging of files that clang encounters problems on.

llvm-svn: 56130
2008-09-11 23:05:26 +00:00
Ted Kremenek 28d1dc50b8 Bug fix: <rdar://problem/6164367>
scan-build now correctly processes path prefixes that contain multiple '+'
characters or other regex control characters.

llvm-svn: 56121
2008-09-11 21:15:10 +00:00
Ted Kremenek 81ced5c472 Check if the environment variable TERM is defined before using it.
This fixes: <rdar://problem/6164279> scan-build gives error when invoked without TERM variable

llvm-svn: 56110
2008-09-11 18:17:51 +00:00
Ted Kremenek c92c134563 Patch to scan-build by Jordan Breeding:
- Don't remove $BaseDir; may be unsafe
- Always create HTML directory with parents

llvm-svn: 55813
2008-09-04 23:56:36 +00:00
Daniel Dunbar 217836527c Fix FindSpecRefs to be Python 2.4 compatible and get the SVN revision
in a more obvious fashion.

llvm-svn: 55791
2008-09-04 20:26:14 +00:00
Ted Kremenek e9354c6029 scan-build:
- Only set the environment variable 'CXX' if the user specifies --use-c++.
- Fix regression when setting LDPLUSPLUS: add a 'which' to determine the location of g++.  This regression was pointed out by Jordan Breeding!

llvm-svn: 55780
2008-09-04 17:52:41 +00:00
Ted Kremenek 3cbb3b2920 Capture 'uname' and 'gcc -v' output to .info files.
llvm-svn: 55752
2008-09-04 00:41:45 +00:00
Ted Kremenek 370de84b50 ccc-analyzer:
- Capture the STDERR output of 'clang' to a file for use with crash reporting.

llvm-svn: 55749
2008-09-04 00:02:34 +00:00
Ted Kremenek f4fd23f635 Added --use-cxx option to scan-build.
llvm-svn: 55706
2008-09-03 17:59:35 +00:00
Nuno Lopes d63db4063a recognise .s/.S file extensions. add default value for CCC_LANGUAGES
llvm-svn: 55630
2008-09-02 10:27:37 +00:00
Daniel Dunbar 2e5225818a Improve ccc:
- Support environment variable CCC_LANGUAGES to control which
   languages clang is invoked on. If unset clang is invoked for all
   languages, otherwise CCC_LANGUAGES should be a comma separated list
   of the languages (as accepted by -x) for which clang should be
   invoked. Useful for only building C and Objective-C parts of a
   project with clang, for example.

 - Add environment variable CCC_FALLBACK. If set and non-empty then
   ccc will try and compile using the regular compiler if compilation
   with clang fails.

 - A few other tweaks to add options, flush stdout, recognize .mm as
   objective-c++, and infer languages for compile+link style
   invocations.

llvm-svn: 55547
2008-08-29 21:03:27 +00:00
Daniel Dunbar a545f466e8 Add utils/FindSpecRefs, Python script for generating specification
references HTML page.

llvm-svn: 55524
2008-08-29 01:07:08 +00:00
Ted Kremenek 1bb387e056 Use explicit variable instead of $?
llvm-svn: 55501
2008-08-28 21:28:55 +00:00
Ted Kremenek de8008a130 Enhance ubiviz to support vertex styles.
llvm-svn: 55462
2008-08-28 05:01:37 +00:00
Ted Kremenek 266ec3fb4e Automatically execute ubiviz.
Cleanup ubigraph files when don't drawing the graphs.

llvm-svn: 55459
2008-08-28 03:54:51 +00:00
Ted Kremenek 1a42278a19 Fix regression: immediately terminate ccc-analyzer when gcc reports an error.
llvm-svn: 55452
2008-08-28 01:18:44 +00:00
Ted Kremenek d461d7ad7e Added Ubigraph visualization for the static analyzer (this is pretty alpha quality).
llvm-svn: 55442
2008-08-27 22:31:43 +00:00
Ted Kremenek 7b62806272 Remove regression where the analyzer was not called.
llvm-svn: 55440
2008-08-27 22:30:34 +00:00
Ted Kremenek 715ac7c51e Use path information from .info files when computing common prefix information.
This partially implements PR 2705: http://llvm.org/bugs/show_bug.cgi?id=2705

llvm-svn: 55327
2008-08-25 20:45:07 +00:00
Ted Kremenek 6aa1ad0a7b Use the same 'cc' for generated preprocessed crash files as we do for compilation.
llvm-svn: 55326
2008-08-25 20:44:31 +00:00
Ted Kremenek a3b3c86a47 ccc-analyzer now correctly reports the exit code from 'cc'.
scan-build now correctly reports the exit code from the build command.
Fixes: <rdar://problem/6172224>

llvm-svn: 55324
2008-08-25 20:10:45 +00:00
Daniel Dunbar eacf1d2c0f Update ccc driver
- Use CCC_ECHO to control echoing behavior (default is on, set to ''
   or unset to disable)
 - Get 'clang','llc','as','cc','ld' executables from environment. 'cc'
   and 'ld' are fetched through CCC_CC and CCC_LD respectively -- to
   support make CC=ccc -- the others are through their upcased
   versions.
 - Add CCC_NATIVE mode.
   o This uses llc and as to generate native object files; allowing
     more drop-in replacement of gcc.
   o Disabled by default, but should eventually be default.
   o Allow --emit-llvm in CCC_NATIVE mode to override. Essentially
     this makes ccc more like a drop in replacement for llvm-gcc.
 - Prevent explicit -x <language> options from annoying clang.

llvm-svn: 55260
2008-08-23 22:15:15 +00:00
Ted Kremenek b57efcc3d0 Added --use-cc option to scan-build to allow the user to specify what compiler they want to use for code compilation.
llvm-svn: 55142
2008-08-21 21:47:09 +00:00
Ted Kremenek b3c98d3a88 Record arguments in .info file.
llvm-svn: 54947
2008-08-18 20:55:25 +00:00
Ted Kremenek 5abf546865 scan-build/ccc-analyzer now also report clang parser failures.
llvm-svn: 54931
2008-08-18 18:38:29 +00:00
Nuno Lopes d83be33cc0 fix linking with .so files specified in cmd line (this fixes some libtool usages)
llvm-svn: 54623
2008-08-10 22:17:57 +00:00
Nuno Lopes c14bcffda6 pass -R arg to linker
llvm-svn: 54622
2008-08-10 21:58:01 +00:00
Ted Kremenek 994c8e393d Have scan-build/ccc-analyzer generate preprocessed .i/.mi files for sources that clang crashes on.
llvm-svn: 54552
2008-08-08 20:46:42 +00:00
Ted Kremenek 1f4eb6b8da Fix by Jordan Breeding: when scanning for prior runs, scan-build should ignore files that are not directories.
llvm-svn: 54473
2008-08-07 17:57:34 +00:00
Ted Kremenek 7ae17ce6b4 Misc cleanups.
When results go to a auto-generated dir in /tmp, don't use randomized file names.  Just output /tmp/scan-build-DATE-counter, where counter is an auto-incremented counter for runs produced that day.

llvm-svn: 54325
2008-08-04 18:15:26 +00:00
Ted Kremenek 5a3803c076 Convert remaining "open" calls to use three-argument form (thanks to Sam Bishop for the tip!).
Recognize 'ccc-analyzer' as a build command some users may use.  Treat it just like calling gcc.

llvm-svn: 54323
2008-08-04 17:34:06 +00:00
Ted Kremenek 6a77d42a4d Use stable sort.
llvm-svn: 54222
2008-07-30 18:03:31 +00:00
Ted Kremenek e8fce56cd1 "Escape" bug names with quotes for selecting/deselecting from the bug table.
llvm-svn: 54220
2008-07-30 17:58:08 +00:00
Ted Kremenek 7fb92dbf47 Enabled 'unused ivars' check by default.
llvm-svn: 54052
2008-07-25 20:35:01 +00:00
Ted Kremenek 4a154b2857 Ignore -MT and -MF.
llvm-svn: 53977
2008-07-24 03:52:21 +00:00
Ted Kremenek 1c0c06bb9c "This patch adds paths for Fedora 9 in clang.cpp and support for two preprocessor options in ccc."
Patch by Zhongxing Xu!

llvm-svn: 53976
2008-07-24 03:49:15 +00:00
Ted Kremenek f7ffd66551 Reimplement ccc-analyzer in a language I actually know, and implement some obvious optimizations when processing command line arguments.
llvm-svn: 53783
2008-07-19 06:11:04 +00:00
Ted Kremenek d2d122961d Remove typo.
llvm-svn: 53776
2008-07-18 23:13:03 +00:00
Ted Kremenek 2a6b0b5d5e Quote invocation of clang in pipe to handle paths with spaces.
llvm-svn: 53775
2008-07-18 23:11:33 +00:00
Ted Kremenek 803d9ef9d6 Have scan-build control default analyses.
llvm-svn: 53654
2008-07-15 23:41:32 +00:00
Ted Kremenek 3be3401303 Add -DIBOutlet=__attribute__((iboutlet)) to analyzer arguments.
llvm-svn: 53648
2008-07-15 23:09:14 +00:00
Ted Kremenek 3879c5f6e4 Added --status-bugs option to scan-build. By default, the exit status of
scan-build is the same as the exit status of the executed build command. With
this option, the exit status of scan-build is 1 if the analyzer flagged any
bugs, and 0 otherwise.

This addresses: <rdar://problem/6075320>

llvm-svn: 53642
2008-07-15 22:03:09 +00:00
Ted Kremenek 48ea92965b Per Sam Bishop's excellent suggestion, use "system" instead of backticks to invoke sub-commands used by scan-build. This avoids meta-character translation issues caused by a shell subprocess.
llvm-svn: 53640
2008-07-15 20:18:21 +00:00
Ted Kremenek c7cd410657 Quote file names to better handle paths with spaces.
llvm-svn: 53635
2008-07-15 18:28:16 +00:00
Ted Kremenek 78e9c0d697 scan-build now propagates up the exit status of the build command.
llvm-svn: 53620
2008-07-15 17:09:28 +00:00
Ted Kremenek e5165722ed Do not enable -warn-objc-missing-dealloc by default.
llvm-svn: 53619
2008-07-15 17:06:44 +00:00
Ted Kremenek 3a787bf977 scan-build now interrogates clang for a list of available analyses, and presents
these as options to the user of scan-build.

llvm-svn: 53618
2008-07-15 17:06:13 +00:00
Ted Kremenek 5470e0c7e1 Re-enable missing -dealloc check.
llvm-svn: 53578
2008-07-14 23:56:31 +00:00
Ted Kremenek 2fa70832e4 Using new clang option to invoke the type-signature check of Objective-C instance methods.
llvm-svn: 53576
2008-07-14 23:41:49 +00:00
Ted Kremenek afe2c0be34 Run by default: -check-objc-methodsigs
llvm-svn: 53483
2008-07-11 22:41:43 +00:00
Ted Kremenek 36f8212299 scan-build now also prints the HTML directory reports were emitted to at the end of the build.
llvm-svn: 53466
2008-07-11 19:15:05 +00:00
Ted Kremenek 86b4249c97 Mark the "Bug Type" column as being initially sorted (display the sort ding) so that users can readily see that the table can be sorted.
llvm-svn: 53176
2008-07-07 17:23:32 +00:00
Ted Kremenek 9707a93f9d Output html should have 'class=' before "sorttable_nosort".
llvm-svn: 53175
2008-07-07 16:58:44 +00:00
Nuno Lopes a7c7c6b011 llvm-ld doesnt support -O1, -O2, etc options, so dont pass them
llvm-svn: 53144
2008-07-05 17:31:10 +00:00
Ted Kremenek 9c75ea62d7 Have ccc-analyzer skip any files with an unknown (or absent) extension.
llvm-svn: 53114
2008-07-03 22:24:10 +00:00
Ted Kremenek f1f17555bd ccc-analyzer now dispatches the options "-checker-cfref" and "-warn-dead-stores" to clang instead of just "-checker-cfref".
llvm-svn: 53053
2008-07-02 23:16:10 +00:00
Ted Kremenek 51a685cf27 When inspecting the build command, strip off the preceding path to the build command.
llvm-svn: 52913
2008-06-30 18:18:16 +00:00
Ted Kremenek fec817aa12 Bug fix: when copying prefix files using 'cp', don't split file names by spaces.
llvm-svn: 52899
2008-06-30 16:12:30 +00:00
Chris Lattner 552b52f49d "This maps the -pthread option to -lpthread - this isn't 100% correct,
since handling this correctly is quite complex, and on some platforms  
requires additional -D options and on some implies linking against a  
different libc, but this works better than just ignoring the option.

The other change passes the -x option across to clang, which allows  
compiling .c files as Objective-C and so on.  For some reason a lot of  
configure scripts seem to be under the misguided impression that this  
is a sensible thing to do."

Patch by David Chisnall!

llvm-svn: 52579
2008-06-21 17:46:11 +00:00
Nuno Lopes a02e2f991b handle -arch and -isysroot correctly (like ccc-analyszer do).
Patch by Filipe Cabecinhas

llvm-svn: 52417
2008-06-17 17:23:14 +00:00
Ted Kremenek 3dd7724711 Only use colored output when the environment variable SCAN_BUILD_COLOR is set.
llvm-svn: 52379
2008-06-17 03:06:59 +00:00
Ted Kremenek 51ca6fa512 Remove debugging message in ccc-analyzer.
Add color diagnostics from scan-build, and indicate the number of bugs found (if any).

llvm-svn: 52372
2008-06-16 22:40:14 +00:00
Ted Kremenek c17ec3e27f Re-enable the analyzer.
llvm-svn: 52367
2008-06-16 21:41:07 +00:00
Ted Kremenek 2f7a88ddf6 Skip a few more files and linker options.
llvm-svn: 52189
2008-06-10 18:56:59 +00:00
Ted Kremenek dfa8c8aef5 Ignore a few more linker arguments.
llvm-svn: 52023
2008-06-05 22:46:24 +00:00
Ted Kremenek 6da61be501 ccc-analyzer now properly eats the -install_name, -exported_symbols_list, -current_version, -compatibility_version, and -sectorder command line arguments.
llvm-svn: 51965
2008-06-04 20:49:03 +00:00
Ted Kremenek 88bfb62ffe Use the correct 'ccc-analyzer' when the build command is a direct invocation of gcc.
llvm-svn: 51883
2008-06-02 21:52:47 +00:00
Ted Kremenek 7ccc9835ef Use "file_language" for per-language -x options.
llvm-svn: 51871
2008-06-02 17:13:40 +00:00
Ted Kremenek ffdbeefc54 When the build command is xcodebuild, set the magical environment variable LDPLUSPLUS to g++ to ensure that C++ object files are linked with g++ instead of gcc.
llvm-svn: 51621
2008-05-27 23:18:07 +00:00
Ted Kremenek f9671ecbfd Correctly check to see if we are analyzing C++ files (skip).
llvm-svn: 51620
2008-05-27 23:17:16 +00:00
Ted Kremenek e37e612e7a Fix variable misspelling.
llvm-svn: 51548
2008-05-24 16:16:30 +00:00
Ted Kremenek 37d6f58018 Don't use inferlanguage to override the default language for all files.
llvm-svn: 51547
2008-05-24 16:14:34 +00:00
Ted Kremenek 55842bd269 Don't analyze .o files.
llvm-svn: 51546
2008-05-24 16:09:00 +00:00
Ted Kremenek f18f460716 Cleanup indentation and remove some dead code.
Analyze files not compiled using "-c".  This fixes:

<rdar://problem/5961638> invoke checker when gcc is not called with "-c"

llvm-svn: 51545
2008-05-24 15:58:54 +00:00
Ted Kremenek 567f333f23 Disable the use of PCH files when using xcodebuild.
llvm-svn: 51509
2008-05-23 22:18:16 +00:00
Ted Kremenek a4951b7796 When known, include the analyzer build in the output of scan-build.
llvm-svn: 51492
2008-05-23 18:17:05 +00:00
Ted Kremenek 1907394f74 Don't specify a -o option to clang when not using "-checker-cfref".
llvm-svn: 51124
2008-05-14 20:26:52 +00:00
Ted Kremenek e0927a0f49 Fix variable misspelling.
llvm-svn: 51122
2008-05-14 20:20:46 +00:00
Ted Kremenek cf05a830b1 Don't run clang on .s files.
llvm-svn: 51121
2008-05-14 20:17:17 +00:00
Ted Kremenek e3fc13a3e0 Added "-a" option to scan-build to select the analysis (ASTConsumer) used by clang. The default is -checker-cfref.
llvm-svn: 51116
2008-05-14 20:10:33 +00:00
Ted Kremenek 0a8a0fa0b5 Zero-pad the month and day fields in the output HTML directory.
llvm-svn: 51109
2008-05-14 17:23:56 +00:00
Ted Kremenek 20a44ed730 Output #LINE for computing line counts.
llvm-svn: 51079
2008-05-13 22:56:36 +00:00
Ted Kremenek 7147584d03 Use "-i" option with make when ignoring errors.
llvm-svn: 51070
2008-05-13 21:28:02 +00:00
Ted Kremenek 52387a1828 Re-enable the analyzer.
llvm-svn: 51055
2008-05-13 17:10:28 +00:00
Ted Kremenek 80ff5f0696 Place "-x" option before other analyzer options.
llvm-svn: 51014
2008-05-12 23:56:50 +00:00
Ted Kremenek ece302d75b Directly invoke gcc immediately instead of before we process the command line arguments.
llvm-svn: 51012
2008-05-12 23:47:41 +00:00
Ted Kremenek f5a94e7114 Added internal command logging.
llvm-svn: 51003
2008-05-12 22:07:14 +00:00
Ted Kremenek b95635e6ec Fix a few glitches in scan-build with automatically generating class names from bug types.
llvm-svn: 50784
2008-05-06 23:51:45 +00:00
Ted Kremenek 10427bdbb9 Experiment with not converting bug names to lower case.
llvm-svn: 50753
2008-05-06 18:11:36 +00:00
Ted Kremenek 1108d6eef3 Remove debugging statement.
llvm-svn: 50598
2008-05-02 23:40:49 +00:00