summaryrefslogtreecommitdiff
path: root/devtools/bin/check_gcc_compile.pl
blob: 4d7063749b4801aea407152318239a5b624d1b5b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#! perl

# scan all .o files for illegal instructions from passing aggregates to varargs functions.

use File::Find;

find( \&CheckFile, "." );

sub CheckFile
  {
	return unless (/\.o$/ );
	open( DIS, "objdump --disassemble -C $_|" ) || die "can't process $_";
	while( <DIS> )
	  {
		$symbol = $1 if ( /^[0-9]+ \<(.*)\>:/ );
		if ( /\s+ud2a/ )
		  {
			print "Illegal instruction in $symbol in ", $File::Find::name, "\n";
		  }

	  }

  }