diff --git a/build/unix/elfhack/test.c b/build/unix/elfhack/test.c index bbeebd444da..50cc750264d 100644 --- a/build/unix/elfhack/test.c +++ b/build/unix/elfhack/test.c @@ -79,6 +79,7 @@ DEF(several) DEF(times) #else +#pragma GCC visibility push(default) #include #include @@ -109,7 +110,7 @@ const char *strings2[] = { static int ret = 1; -__attribute__((visibility("default"))) int print_status() { +int print_status() { fprintf(stderr, "%s\n", ret ? "FAIL" : "PASS"); return ret; } @@ -149,4 +150,5 @@ __attribute__((constructor)) void test() { end_test(); } +#pragma GCC visibility pop #endif diff --git a/configure.in b/configure.in index a9ee5aa9bd2..fcbdb08ac21 100644 --- a/configure.in +++ b/configure.in @@ -551,6 +551,20 @@ if test "$GXX" = yes; then fi fi +CLANG_CC= +CLANG_CXX= +if test "$GCC" = yes; then + if test "`$CC -v 2>&1 | grep -c 'clang version'`" != "0"; then + CLANG_CC=1 + fi +fi + +if test "$GXX" = yes; then + if test "`$CXX -v 2>&1 | grep -c 'clang version'`" != "0"; then + CLANG_CXX=1 + fi +fi + dnl ======================================================== dnl Special win32 checks dnl ======================================================== @@ -921,6 +935,8 @@ AC_SUBST(GNU_CC) AC_SUBST(GNU_CXX) AC_SUBST(INTEL_CC) AC_SUBST(INTEL_CXX) +AC_SUBST(CLANG_CC) +AC_SUBST(CLANG_CXX) AC_SUBST(STL_FLAGS) AC_SUBST(WRAP_STL_INCLUDES) @@ -1549,8 +1565,8 @@ if test "$GNU_CC"; then # -Wbad-function-cast - warns when casting a function to a new return type # -Wshadow - removed because it generates more noise than help --pete _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -W -Wno-unused -Wpointer-arith -Wdeclaration-after-statement" - if test -z "$INTEL_CC"; then - # Don't use -Wcast-align with ICC + if test -z "$INTEL_CC" -a -z "$CLANG_CC"; then + # Don't use -Wcast-align with ICC or clang case "$CPU_ARCH" in # And don't use it on hppa, ia64, sparc, arm, since it's noisy there hppa | ia64 | sparc | arm) @@ -1599,8 +1615,8 @@ if test "$GNU_CXX"; then CXXFLAGS="$CXXFLAGS -fno-strict-aliasing" # Turn on GNU specific features _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor" - if test -z "$INTEL_CC"; then - # Don't use -Wcast-align with ICC + if test -z "$INTEL_CXX" -a -z "$CLANG_CXX"; then + # Don't use -Wcast-align with ICC or clang case "$CPU_ARCH" in # And don't use it on hppa, ia64, sparc, arm, since it's noisy there hppa | ia64 | sparc | arm) diff --git a/js/src/configure.in b/js/src/configure.in index e8c03b1086e..a685f279d6b 100644 --- a/js/src/configure.in +++ b/js/src/configure.in @@ -591,6 +591,20 @@ if test "$GXX" = yes; then fi fi +CLANG_CC= +CLANG_CXX= +if test "$GCC" = yes; then + if test "`$CC -v 2>&1 | grep -c 'clang version'`" != "0"; then + CLANG_CC=1 + fi +fi + +if test "$GXX" = yes; then + if test "`$CXX -v 2>&1 | grep -c 'clang version'`" != "0"; then + CLANG_CXX=1 + fi +fi + dnl Special win32 checks dnl ======================================================== WINVER=502 @@ -1537,8 +1551,8 @@ if test "$GNU_CC"; then # -Wbad-function-cast - warns when casting a function to a new return type # -Wshadow - removed because it generates more noise than help --pete _WARNINGS_CFLAGS="${_WARNINGS_CFLAGS} -Wall -W -Wno-unused -Wpointer-arith" - if test -z "$INTEL_CC"; then - # Don't use -Wcast-align with ICC + if test -z "$INTEL_CC" -a -z "$CLANG_CC"; then + # Don't use -Wcast-align with ICC or clang case "$CPU_ARCH" in # And don't use it on hppa, ia64, sparc, arm, since it's noisy there hppa | ia64 | sparc | arm) @@ -1587,8 +1601,8 @@ if test "$GNU_CXX"; then CXXFLAGS="$CXXFLAGS -fno-strict-aliasing" # Turn on GNU specific features _WARNINGS_CXXFLAGS="${_WARNINGS_CXXFLAGS} -Wall -Wpointer-arith -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy -Wno-non-virtual-dtor" - if test -z "$INTEL_CC"; then - # Don't use -Wcast-align with ICC + if test -z "$INTEL_CXX" -a -z "$CLANG_CXX"; then + # Don't use -Wcast-align with ICC or clang case "$CPU_ARCH" in # And don't use it on hppa, ia64, sparc, arm, since it's noisy there hppa | ia64 | sparc | arm) diff --git a/toolkit/crashreporter/google-breakpad/src/common/dwarf_cu_to_module.cc b/toolkit/crashreporter/google-breakpad/src/common/dwarf_cu_to_module.cc index 9b5382839bc..732f5b47ef0 100644 --- a/toolkit/crashreporter/google-breakpad/src/common/dwarf_cu_to_module.cc +++ b/toolkit/crashreporter/google-breakpad/src/common/dwarf_cu_to_module.cc @@ -850,12 +850,12 @@ void DwarfCUToModule::AssignLinesToFunctions() { // about what result we produce in that case, just as long as we don't // hang or crash. while (func_it != functions->end() - && current >= (*func_it)->address + && next_transition >= (*func_it)->address && !within(**func_it, next_transition)) func_it++; func = (func_it != functions->end()) ? *func_it : NULL; while (line_it != lines_.end() - && current >= line_it->address + && next_transition >= line_it->address && !within(*line_it, next_transition)) line_it++; line = (line_it != lines_.end()) ? &*line_it : NULL;