Commit Graph

711 Commits

Author SHA1 Message Date
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
Ted Kremenek 5f56cbbf7d Output better paths to display in bug reports and compute a common
prefix for all files.

llvm-svn: 50592
2008-05-02 22:04:53 +00:00
Ted Kremenek 4f3d7cd12e Add missing "-" that prefix arguments to forward to clang.
llvm-svn: 50540
2008-05-01 21:26:22 +00:00
Ted Kremenek 0ae9ed7fab scan-build: Disable distributed builds for xcodebuild
llvm-svn: 50506
2008-04-30 23:47:12 +00:00
Ted Kremenek a8197366db Pass fobjc-gc-only and fobjc-gc options down to clang.
llvm-svn: 50426
2008-04-29 16:24:23 +00:00
Ted Kremenek e5aa10cec4 Pass down more -iXXX options that clang supports
llvm-svn: 50304
2008-04-25 21:28:20 +00:00
Nate Begeman f0168bd208 Don't double-increment counter for -arch and -isysroot
llvm-svn: 50082
2008-04-22 04:47:32 +00:00
Ted Kremenek 405cf2daf9 Remove unused "verbose" argument to compile(). Also unbreaks ccc-analyzer.
llvm-svn: 50066
2008-04-21 21:58:05 +00:00
Ted Kremenek 74a58d780a Pass "-arch" down to clang.
llvm-svn: 50056
2008-04-21 20:28:01 +00:00
Ted Kremenek 31d2176d1e Pass "-isysroot" option down to clang.
llvm-svn: 49956
2008-04-19 18:42:26 +00:00
Ted Kremenek 6267835f57 Fix spelling/grammar in comment.
llvm-svn: 49955
2008-04-19 18:07:44 +00:00
Ted Kremenek b0fa31cefb Use Digest::MD5 (a Perl module that should come bundled standard with Perl) to compute file digests instead of using the external program "sha1sum" (which may not be present).
llvm-svn: 49954
2008-04-19 18:05:48 +00:00
Ted Kremenek cf9e9c5554 Use 'clang' binary in the same dir as scan-build; if it isn't there use the one in the path
llvm-svn: 49933
2008-04-18 22:00:56 +00:00
Ted Kremenek 8886b3021e Turn on CF reference count checker.
llvm-svn: 49931
2008-04-18 21:53:01 +00:00
Ted Kremenek 532ba14fdb Spelling fix.
llvm-svn: 49908
2008-04-18 16:58:34 +00:00
Ted Kremenek b06817e914 scan-build now fixes permissions of report files and directories, which may
be created as "temporary files" that are not world readable.

llvm-svn: 49904
2008-04-18 15:18:20 +00:00
Ted Kremenek 4bf02a0856 Compute a digest of each report file, and nuke reports that have the same
digest as a file already added to the index.  This a workaround for the
analyzer analyzing the same file more than once, which can happen when building
multiple targets.

llvm-svn: 49903
2008-04-18 15:09:30 +00:00
Ted Kremenek 43445b3081 Added "summary table" to generated index.html page that allows one to
toggle which bug reports are displayed in the report table.

llvm-svn: 49738
2008-04-15 20:47:02 +00:00
Ted Kremenek 969bb805f9 Used --checker-simple.
llvm-svn: 49501
2008-04-10 22:17:23 +00:00
Ted Kremenek 42d9db75f0 When not emitting path diagnostics in BugReporter::EmitWarning(), use the
BugReport-specific SourceRanges (when available).

llvm-svn: 49486
2008-04-10 16:12:38 +00:00
Ted Kremenek ba0e4237aa Set the location of ccc-analyzer to be the same directory as where scan-build
is located.

llvm-svn: 49397
2008-04-08 20:22:12 +00:00
Ted Kremenek a378fe0a2e Left-justify text in report table.
llvm-svn: 49358
2008-04-07 23:50:07 +00:00
Ted Kremenek c0f15487c6 Fix analyzer breakage introduced by r49213: http://llvm.org/viewvc/llvm-project?rev=49213&view=rev
The problem is that some clients of gcc lookout at the stdout output of gcc;
this requires that all the analyzer diagnostics go to stderr to avoid polluting
stdout.

llvm-svn: 49355
2008-04-07 23:27:54 +00:00
Seo Sanghyeon b7bf0f3e1e - ccc: print generated command line to stdout instead of stderr
- ccc: quote shell metacharacters in command line to ease copy-and-paste

llvm-svn: 49213
2008-04-04 11:02:21 +00:00
Ted Kremenek bf191c76bd Remove bogus check to prune out analyzing files.
llvm-svn: 49191
2008-04-03 21:29:11 +00:00
Ted Kremenek 4c32d1fcce More reliably remove '\n' from queries of the location of ccc-analyzer
llvm-svn: 49189
2008-04-03 21:17:14 +00:00
Ted Kremenek 0dcd309044 Use full path to ccc-analyzer.
llvm-svn: 49187
2008-04-03 20:08:18 +00:00
Sam Bishop 30d70968fd Remove handling of impossible "-?" option.
llvm-svn: 49161
2008-04-03 14:29:47 +00:00
Ted Kremenek 4d26d194e4 Don't run the analyzer on files whose language is "unknown"
llvm-svn: 49152
2008-04-03 07:14:59 +00:00
Ted Kremenek ffc1147323 Remove impossible "-?" option.
llvm-svn: 49149
2008-04-03 07:11:44 +00:00
Ted Kremenek d4bee176b6 CSS/HTML generation tweaks for index.html: Remove special "classes" for <td>
elements in table so that sorttable can sort them.

llvm-svn: 49145
2008-04-03 05:50:51 +00:00
Ted Kremenek 00ab318cf2 Made bug index tables sortable.
Added line number, file information, path length, for each bug report.

llvm-svn: 49113
2008-04-02 20:43:36 +00:00
Ted Kremenek c57139e104 Initial work on CSS in generated index.html.
Added "-V/--view" option to view index.html after it has been generated.

llvm-svn: 49108
2008-04-02 18:42:49 +00:00
Ted Kremenek 2cd0d63d30 Initial support for generating index.html file.
llvm-svn: 49104
2008-04-02 18:03:36 +00:00
Ted Kremenek 3016cdd569 More wording cleanups in --help text.
llvm-svn: 49094
2008-04-02 16:47:27 +00:00
Ted Kremenek dfd204e133 More wording fixes.
llvm-svn: 49093
2008-04-02 16:41:25 +00:00
Ted Kremenek 1cf35de3cb Added error message for unrecognized options.
llvm-svn: 49092
2008-04-02 16:35:01 +00:00
Ted Kremenek c5f113f52e Wording cleanups.
llvm-svn: 49091
2008-04-02 16:31:58 +00:00
Ted Kremenek 977b644427 Implemented "-k" support.
llvm-svn: 49090
2008-04-02 16:04:51 +00:00
Ted Kremenek 37e908a6f0 Do equality testing, not regex, when the build command is gcc. This matches
better with what compiler invocations that ccc-analyzer actually intercepts.

Fixes suggested by Sam Bishop!

llvm-svn: 49089
2008-04-02 15:34:12 +00:00
Ted Kremenek e1b52ff726 Minor wording changes.
llvm-svn: 49085
2008-04-02 07:05:07 +00:00
Ted Kremenek cb75937198 Added special handling when the build command is "gcc", "cc", or "llvm-gcc";
in these cases we directly call ccc-analyzer.

llvm-svn: 49073
2008-04-02 04:43:42 +00:00
Sam Bishop 02f78df76b a bunch of random cleanups
llvm-svn: 49071
2008-04-02 03:35:43 +00:00
Ted Kremenek ce4f31d3ce Minor cleanups.
llvm-svn: 49052
2008-04-01 21:36:28 +00:00
Ted Kremenek 33187168ab Added help text for scan-build.
llvm-svn: 49051
2008-04-01 21:22:03 +00:00
Ted Kremenek bf1a7c6440 Initial checking of 'scan-build' script, a script used to wrap builds and
interpose calls to gcc with calls to the analyzer.

llvm-svn: 49049
2008-04-01 20:47:38 +00:00
Ted Kremenek b8cb8e8f90 Do not abort ccc-analyzer script if an HTML directory is not specified.
llvm-svn: 48997
2008-03-31 21:20:32 +00:00
Ted Kremenek 612d34641b The ccc-analyzer script now interrogates environment variables to determine
where to dump HTML reports.

llvm-svn: 48987
2008-03-31 18:25:05 +00:00
Ted Kremenek 5efdf8457f Added hacked version of ccc script used to invoke the static analyzer. This
will gradually get pruned down, as it doesn't need to be as functional as
'ccc'.

llvm-svn: 48806
2008-03-25 22:35:32 +00:00
Lauro Ramos Venancio e1938405fa Disable internalize. Unfortunately, the configure scripts are not ready for some link time optimizations.
llvm-svn: 47682
2008-02-27 18:46:32 +00:00
Lauro Ramos Venancio ace55dac39 Add c++ to "inferlanguage"
llvm-svn: 47185
2008-02-15 22:35:25 +00:00
Anders Carlsson 377ad02de5 Use the subprocess module instead of os.system. Patch by Sam Bishop.
llvm-svn: 46819
2008-02-06 19:03:27 +00:00
Bill Wendling e5b8b7db4a - ccc creates output objects in same directory as the source file, and
not in the current directory. This doesn't work with VPATH builds in
  autotooled builds.
- ccc now creates object files without an extension.
- Return exit code 1 if code > 255.

Patch by Torok!

llvm-svn: 46689
2008-02-03 21:27:46 +00:00
Seo Sanghyeon 66de08bfb4 Make ccc work with older Python versions. Patch by Sam Bishop.
llvm-svn: 46675
2008-02-03 03:40:41 +00:00
Anders Carlsson 3d149daf50 Don't try to compile .a files.
llvm-svn: 46626
2008-01-31 23:48:19 +00:00
Anders Carlsson d7d5e4ce00 Improvements to ccc. Patch by Shantonu Sen.
llvm-svn: 46501
2008-01-29 07:21:34 +00:00
Seo Sanghyeon d145ac0b34 Implement -print-prog-name. Patch by Nuno Lopes.
llvm-svn: 46353
2008-01-25 14:57:54 +00:00
Seo Sanghyeon 15051b4caf Ignore --param
llvm-svn: 46107
2008-01-17 01:08:43 +00:00
Seo Sanghyeon 77133e6d30 Compiler driver
llvm-svn: 45809
2008-01-10 01:43:47 +00:00