File: check_build_log.sh

package info (click to toggle)
swi-prolog 6.6.6-1~bpo70+1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy-backports
  • size: 82,312 kB
  • sloc: ansic: 322,250; perl: 245,822; sh: 6,651; java: 5,254; makefile: 4,423; cpp: 4,153; ruby: 1,594; yacc: 843; xml: 82; sed: 12; sql: 6
file content (62 lines) | stat: -rwxr-xr-x 2,609 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/bash

# This script contains checks against known GCC warnings that indicate the
# compiled program may exhibit runtime failures (including crashes).
#
# The script is based on Gentoo Linux's portage install_qa_check() GCC checks.

if [ -z "$1" ]; then
    echo "Usage: test.sh logfile"
    exit 1
fi

LOG_FILE=$1

RED="\033[01;31m"
RESET="\033[00m"

msgs=(
      # GCC warnings that may cause runtime failures
      ": warning: dereferencing type-punned pointer will break strict-aliasing rules"
      ": warning: dereferencing pointer .* does break strict-aliasing rules"
      ": warning: implicit declaration of function"
      ": warning: incompatible implicit declaration of built-in function"
      ": warning: is used uninitialized in this function" # we'll ignore "may" and "might"
      ": warning: comparisons like X<=Y<=Z do not have their mathematical meaning"
      ": warning: null argument where non-null required"
      ": warning: array subscript is below array bounds"
      ": warning: array subscript is above array bounds"
      ": warning: attempt to free a non-heap object"
      ": warning: .* called with .*bigger.* than .* destination buffer"
      ": warning: call to .* will always overflow destination buffer"
      ": warning: assuming pointer wraparound does not occur when comparing"
      ": warning: hex escape sequence out of range"
      ": warning: [^ ]*-hand operand of comma .*has no effect"
      ": warning: converting to non-pointer type .* from NULL"
      ": warning: NULL used in arithmetic"
      ": warning: passing NULL to non-pointer argument"
      ": warning: the address of [^ ]* will always evaluate as"
      ": warning: the address of [^ ]* will never be NULL"
      ": warning: too few arguments for format"
      ": warning: reference to local variable .* returned"
      ": warning: returning reference to temporary"
      ": warning: function returns address of local variable"
      ": warning: .*\\[-Wsizeof-pointer-memaccess\\]"
      # GCC warnings that may indicate problems on 64 bit builds
      ": warning: .* makes pointer from integer without a cast"
      ": warning: cast to pointer from integer of different size"
     )

i=0
while [[ -n ${msgs[${i}]} ]] ; do
    m=${msgs[$((i++))]}
    # force C locale to work around slow unicode locales
    f=$(LC_ALL=C grep "${m}" $LOG_FILE)
    if [[ -n ${f} ]] ; then
	echo -ne '\n'
	echo -e "${RED}QA Notice: Package triggers severe warnings which indicate that it${RESET}"
	echo -e "${RED}           may exhibit random runtime failures.${RESET}"
	echo "${f}"
	echo -ne '\n'
    fi
done