db: don't turn RaiseError on
[smatch.git] / smatch_scripts / db / fill_db_return_values.pl
blobca07193da7868cb02ae82f9c356dad5d0cb92576
1 #!/usr/bin/perl -w
3 use strict;
4 use DBI;
6 my $warns = shift;
8 if (!defined($warns)) {
9 print "usage: $0 <warns.txt>\n";
10 exit(1);
13 my $db = DBI->connect("dbi:SQLite:smatch_db.sqlite", "", "", {AutoCommit => 0});
14 $db->do("PRAGMA synchronous = OFF");
15 $db->do("PRAGMA cache_size = 800000");
16 $db->do("PRAGMA journal_mode = OFF");
18 $db->do("delete from return_values;");
20 my $type;
21 my $param;
22 my ($file_and_line, $file, $dummy, $func, $return_value, $gs);
23 my $static;
25 open(WARNS, "<$warns");
26 while (<WARNS>) {
28 if ($_ =~ / info: function_return_values /) {
29 # arch/x86/mm/mmap.c:354 mmap_is_ia32() info: function_return_values '0-1' static
30 ($file_and_line, $func, $dummy, $dummy, $return_value, $gs) = split(/ /, $_);
31 } else {
32 next;
35 ($file, $dummy) = split(/:/, $file_and_line);
37 $func =~ s/\(\)//;
38 $return_value =~ s/'//g;
40 $static = 0;
41 if ($gs =~ /static/) {
42 $static = 1;
45 $db->do("insert into return_values values ('$file', '$func', $static, '$return_value')\n");
48 $db->commit();
49 $db->disconnect();