~ubuntu-branches/ubuntu/oneiric/enigmail/oneiric-proposed

« back to all changes in this revision

Viewing changes to build/autoconf/gcc-pr49911.m4

  • Committer: Package Import Robot
  • Author(s): Chris Coulson
  • Date: 2011-12-29 12:20:55 UTC
  • mfrom: (0.12.7)
  • Revision ID: package-import@ubuntu.com-20111229122055-kv6t6y3mkkud7a5t
Tags: 2:1.3.4-0ubuntu0.11.10.1
New upstream release v1.3.4 (LP: #909599)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
dnl Check if the compiler is gcc and has PR49911. If so
 
2
dnl disable vrp.
 
3
 
 
4
AC_DEFUN([MOZ_GCC_PR49911],
 
5
[
 
6
if test "$GNU_CC"; then
 
7
 
 
8
AC_MSG_CHECKING(for gcc PR49911)
 
9
ac_have_gcc_pr49911="no"
 
10
AC_LANG_SAVE
 
11
AC_LANG_CPLUSPLUS
 
12
 
 
13
_SAVE_CXXFLAGS=$CXXFLAGS
 
14
CXXFLAGS="-O2"
 
15
AC_TRY_RUN([
 
16
extern "C" void abort(void);
 
17
typedef enum {
 
18
eax,         ecx,         edx,         ebx,         esp,         ebp,
 
19
esi,         edi     }
 
20
RegisterID;
 
21
union StateRemat {
 
22
  RegisterID reg_;
 
23
  int offset_;
 
24
};
 
25
static StateRemat FromRegister(RegisterID reg) {
 
26
  StateRemat sr;
 
27
  sr.reg_ = reg;
 
28
  return sr;
 
29
}
 
30
static StateRemat FromAddress3(int address) {
 
31
  StateRemat sr;
 
32
  sr.offset_ = address;
 
33
  if (address < 46 &&    address >= 0) {
 
34
    abort();
 
35
  }
 
36
  return sr;
 
37
}
 
38
struct FrameState {
 
39
  StateRemat dataRematInfo2(bool y, int z) {
 
40
    if (y)         return FromRegister(RegisterID(1));
 
41
    return FromAddress3(z);
 
42
  }
 
43
};
 
44
FrameState frame;
 
45
StateRemat x;
 
46
__attribute__((noinline)) void jsop_setelem(bool y, int z) {
 
47
  x = frame.dataRematInfo2(y, z);
 
48
}
 
49
int main(void) {
 
50
  jsop_setelem(0, 47);
 
51
}
 
52
], true,
 
53
   ac_have_gcc_pr49911="yes",
 
54
   true)
 
55
CXXFLAGS="$_SAVE_CXXFLAGS"
 
56
 
 
57
AC_LANG_RESTORE
 
58
 
 
59
if test "$ac_have_gcc_pr49911" == "yes"; then
 
60
   AC_MSG_RESULT(yes)
 
61
   CFLAGS="$CFLAGS -fno-tree-vrp"
 
62
   CXXFLAGS="$CXXFLAGS -fno-tree-vrp"
 
63
else
 
64
   AC_MSG_RESULT(no)
 
65
fi
 
66
fi
 
67
])