[cfe-commits] r160404 - /cfe/trunk/include/clang/AST/RecursiveASTVisitor.h

NAKAMURA Takumi geek4civic at gmail.com
Tue Jul 17 20:15:10 PDT 2012


It killed mingw32-gcc on my buildslave... investigating.
(Compilation could be done if r160404 were reverted)

$ g++ --version
g++.exe (TDM-1 mingw32) 4.4.0

llvm[4]: Compiling TransProperties.cpp for Release+Asserts build
if  g++ -I/e/bb-win7/clang-i686-msys/build/include
-I/e/bb-win7/clang-i686-msys/build/tools/clang/lib/ARCMigrate
-I/e/bb-win7/clang-i686-msys/llvm-project/clang/lib/ARCMigrate
-I/e/bb-win7/clang-i686-msys/llvm-project/llvm/include  -D_DEBUG
-D__NO_CTYPE_INLINE -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS
-D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS
-I/e/bb-win7/clang-i686-msys/llvm-project/clang/lib/ARCMigrate/../../include
-I/e/bb-win7/clang-i686-msys/build/tools/clang/lib/ARCMigrate/../../include
-O2 -fomit-frame-pointer -fno-exceptions -fno-rtti
-Woverloaded-virtual -Wcast-qual -fno-strict-aliasing    -pedantic
-Wno-long-long -Wall -W -Wno-unused-parameter -Wwrite-strings   -c
-MMD -MP -MF "/e/bb-win7/clang-i686-msys/build/tools/clang/lib/ARCMigrate/Release+Asserts/TransProperties.d.tmp"
-MT "/e/bb-win7/clang-i686-msys/build/tools/clang/lib/ARCMigrate/Release+Asserts/TransProperties.o"
-MT "/e/bb-win7/clang-i686-msys/build/tools/clang/lib/ARCMigrate/Release+Asserts/TransProperties.d"
/e/bb-win7/clang-i686-msys/llvm-project/clang/lib/ARCMigrate/TransProperties.cpp
-o /e/bb-win7/clang-i686-msys/build/tools/clang/lib/ARCMigrate/Release+Asserts/TransProperties.o
; \
	        then /bin/sed 's/^\([ \t]*\)\([A-Za-z]\):/\1\/\2/g'
"/e/bb-win7/clang-i686-msys/build/tools/clang/lib/ARCMigrate/Release+Asserts/TransProperties.d.tmp"
> "/e/bb-win7/clang-i686-msys/build/tools/clang/lib/ARCMigrate/Release+Asserts/TransProperties.d";
/bin/rm "/e/bb-win7/clang-i686-msys/build/tools/clang/lib/ARCMigrate/Release+Asserts/TransProperties.d.tmp";
else /bin/rm "/e/bb-win7/clang-i686-msys/build/tools/clang/lib/ARCMigrate/Release+Asserts/TransProperties.d.tmp";
exit 1; fi
In file included from
e:/bb-win7/clang-i686-msys/llvm-project/clang/lib/ARCMigrate/Transforms.h:13,
                 from
e:/bb-win7/clang-i686-msys/llvm-project/clang/lib/ARCMigrate/TransProperties.cpp:33:
e:/bb-win7/clang-i686-msys/llvm-project/clang/lib/ARCMigrate/../../include/clang/AST/RecursiveASTVisitor.h:
In member function 'bool
clang::RecursiveASTVisitor<Derived>::dataTraverse(clang::Stmt*) [with
Derived = <unnamed>::PropertiesRewriter::PlusOneAssign]':
e:/bb-win7/clang-i686-msys/llvm-project/clang/lib/ARCMigrate/../../include/clang/AST/RecursiveASTVisitor.h:461:
internal compiler error: Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://www.tdragon.net/recentgcc/bugs.php> for instructions.
/bin/rm: cannot remove
`/e/bb-win7/clang-i686-msys/build/tools/clang/lib/ARCMigrate/Release+Asserts/TransProperties.d.tmp':
No such file or directory
make[4]: *** [/e/bb-win7/clang-i686-msys/build/tools/clang/lib/ARCMigrate/Release+Asserts/TransProperties.o]
Error 1



2012/7/18 Douglas Gregor <dgregor at apple.com>:
> Author: dgregor
> Date: Tue Jul 17 18:07:44 2012
> New Revision: 160404
>
> URL: http://llvm.org/viewvc/llvm-project?rev=160404&view=rev
> Log:
> Eliminating the GCC_CAST hack, take two.
>
> Modified:
>     cfe/trunk/include/clang/AST/RecursiveASTVisitor.h
>
> Modified: cfe/trunk/include/clang/AST/RecursiveASTVisitor.h
> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/include/clang/AST/RecursiveASTVisitor.h?rev=160404&r1=160403&r2=160404&view=diff
> ==============================================================================
> --- cfe/trunk/include/clang/AST/RecursiveASTVisitor.h (original)
> +++ cfe/trunk/include/clang/AST/RecursiveASTVisitor.h Tue Jul 17 18:07:44 2012
> @@ -464,19 +464,12 @@
>  bool RecursiveASTVisitor<Derived>::dataTraverseNode(Stmt *S,
>                                                      bool &EnqueueChildren) {
>
> -// The cast for DISPATCH_WALK is needed for older versions of g++, but causes
> -// problems for MSVC.  So we'll skip the cast entirely for MSVC.
> -#if defined(_MSC_VER)
> -  #define GCC_CAST(CLASS)
> -#else
> -  #define GCC_CAST(CLASS) (bool (RecursiveASTVisitor::*)(CLASS*))
> -#endif
> -
>    // Dispatch to the corresponding WalkUpFrom* function only if the derived
>    // class didn't override Traverse* (and thus the traversal is trivial).
>  #define DISPATCH_WALK(NAME, CLASS, VAR) \
> -  if (&RecursiveASTVisitor::Traverse##NAME == \
> -      GCC_CAST(CLASS)&Derived::Traverse##NAME) \
> +  if (bool (Derived::*DerivedFn)(CLASS*) = &Derived::Traverse##NAME) \
> +    if (bool (Derived::*BaseFn)(CLASS*) = &RecursiveASTVisitor::Traverse##NAME)\
> +      if (DerivedFn == BaseFn) \
>      return getDerived().WalkUpFrom##NAME(static_cast<CLASS*>(VAR)); \
>    EnqueueChildren = false; \
>    return getDerived().Traverse##NAME(static_cast<CLASS*>(VAR));
> @@ -516,7 +509,6 @@
>    }
>
>  #undef DISPATCH_WALK
> -#undef GCC_CAST
>
>    return true;
>  }
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits



More information about the cfe-commits mailing list