LLVM Bugzilla is read-only and represents the historical archive of all LLVM issues filled before November 26, 2021. Use github to submit LLVM bugs

Bug 10922 - Precompiled headers bug in relation to Boost.Python
Summary: Precompiled headers bug in relation to Boost.Python
Status: RESOLVED FIXED
Alias: None
Product: clang
Classification: Unclassified
Component: C++ (show other bugs)
Version: trunk
Hardware: Macintosh MacOS X
: P normal
Assignee: Unassigned Clang Bugs
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-09-13 07:26 PDT by Luc Bourhis
Modified: 2011-09-13 16:38 PDT (History)
4 users (show)

See Also:
Fixed By Commit(s):


Attachments
Source file crashing clang (954 bytes, application/octet-stream)
2011-09-13 07:26 PDT, Luc Bourhis
Details
Header to precompile (160 bytes, application/octet-stream)
2011-09-13 07:27 PDT, Luc Bourhis
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Luc Bourhis 2011-09-13 07:26:46 PDT
Created attachment 7260 [details]
Source file crashing clang

Summary: a source file, hybrid_times_ext.cpp, using Boost.Python crashes clang when using a precompiled header, precompiled.h, whereas it compiles fine otherwise. 

Here are the steps to reproduce the problem (note that /Users/luc/Developer/cctbx/boost shall be replaced by the path to the top of your installed Boost). 

~> ls
hybrid_times_ext.cpp precompiled.h

~> cat precompiled.h
/// List headers to precompile here
#include <boost/python.hpp>
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <sstream>

~> clang++ -o precompiled.h.gch -c -DBOOST_ALL_NO_LIB -DBOOST_DISABLE_THREADS -DBOOST_PYTHON_MAX_BASES=2 -I/Users/luc/Developer/cctbx/boost -x c++-header -fPIC -fno-strict-aliasing -Wno-c++0x-extensions -Wno-array-bounds -DNDEBUG -O3 -ffast-math -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 precompiled.h

~> ls
hybrid_times_ext.cpp precompiled.h        precompiled.h.gch

~> clang++ -c -DBOOST_ALL_NO_LIB -DBOOST_DISABLE_THREADS -DBOOST_PYTHON_MAX_BASES=2 -I/Users/luc/Developer/cctbx/boost -fPIC -fno-strict-aliasing -Wno-c++0x-extensions -Wno-array-bounds -DNDEBUG -O3 -ffast-math -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 hybrid_times_ext.cpp

~> clang++ -c -DBOOST_ALL_NO_LIB -DBOOST_DISABLE_THREADS -DBOOST_PYTHON_MAX_BASES=2 -I/Users/luc/Developer/cctbx/boost -fPIC -fno-strict-aliasing -Wno-c++0x-extensions -Wno-array-bounds -DNDEBUG -O3 -ffast-math -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -include precompiled.h hybrid_times_ext.cpp
0  clang             0x000000010127d0f2 llvm::SmallVectorImpl<llvm_regmatch_t>::resize(unsigned int) + 2498
1  clang             0x000000010127d6e9 llvm::SmallVectorImpl<llvm_regmatch_t>::resize(unsigned int) + 4025
2  libSystem.B.dylib 0x00007fff851131ba _sigtramp + 26
3  libSystem.B.dylib 0x0000000102014c00 _sigtramp + 2096110176
4  clang             0x00000001007eb317 llvm::SmallVectorTemplateBase<clang::APValue, false>::grow(unsigned long) + 17703
5  clang             0x00000001007eb94c llvm::SmallVectorTemplateBase<clang::APValue, false>::grow(unsigned long) + 19292
6  clang             0x00000001007eacd6 llvm::SmallVectorTemplateBase<clang::APValue, false>::grow(unsigned long) + 16102
7  clang             0x00000001007ea17b llvm::SmallVectorTemplateBase<clang::APValue, false>::grow(unsigned long) + 13195
8  clang             0x00000001007e8ea4 llvm::SmallVectorTemplateBase<clang::APValue, false>::grow(unsigned long) + 8372
9  clang             0x00000001007efabb llvm::SmallVectorTemplateBase<clang::APValue, false>::grow(unsigned long) + 36043
10 clang             0x00000001007e76dd llvm::SmallVectorTemplateBase<clang::APValue, false>::grow(unsigned long) + 2285
11 clang             0x0000000100211d23 llvm::DenseMap<clang::Expr const*, llvm::Value*, llvm::DenseMapInfo<clang::Expr const*>, llvm::DenseMapInfo<llvm::Value*> >::grow(unsigned int) + 8595
12 clang             0x00000001002143a0 llvm::DenseMap<clang::Expr const*, llvm::Value*, llvm::DenseMapInfo<clang::Expr const*>, llvm::DenseMapInfo<llvm::Value*> >::grow(unsigned int) + 18448
13 clang             0x00000001002186ba llvm::DenseMap<clang::Expr const*, llvm::Value*, llvm::DenseMapInfo<clang::Expr const*>, llvm::DenseMapInfo<llvm::Value*> >::grow(unsigned int) + 35626
14 clang             0x0000000100223f4f llvm::IRBuilder<true, llvm::ConstantFolder, llvm::IRBuilderDefaultInserter<true> >::CreatePHI(llvm::Type*, unsigned int, llvm::Twine const&) + 1439
15 clang             0x000000010020b72a clang::BackendConsumer::HandleTopLevelDecl(clang::DeclGroupRef) + 170
16 clang             0x00000001000d1b04 llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 60228
17 clang             0x00000001000aa556 clang::ASTDeserializationListener::DeclRead(unsigned int, clang::Decl const*) + 76758
18 clang             0x00000001000b6295 clang::ASTDeserializationListener::DeclRead(unsigned int, clang::Decl const*) + 125205
19 clang             0x00000001000ce26b llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 45739
20 clang             0x00000001000ce3dc llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 46108
21 clang             0x00000001000ce620 llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 46688
22 clang             0x00000001000c331f llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 863
23 clang             0x00000001000d16dd llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 59165
24 clang             0x00000001000aa556 clang::ASTDeserializationListener::DeclRead(unsigned int, clang::Decl const*) + 76758
25 clang             0x00000001000ce5f3 llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 46643
26 clang             0x00000001000c331f llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 863
27 clang             0x00000001000d16dd llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 59165
28 clang             0x00000001000aa556 clang::ASTDeserializationListener::DeclRead(unsigned int, clang::Decl const*) + 76758
29 clang             0x00000001000d2ffd void clang::ASTDeclReader::VisitRedeclarable<clang::TagDecl>(clang::Redeclarable<clang::TagDecl>*) + 173
30 clang             0x00000001000c8983 llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 22979
31 clang             0x00000001000c8ee8 llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 24360
32 clang             0x00000001000ce5d2 llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 46610
33 clang             0x00000001000c331f llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 863
34 clang             0x00000001000d16dd llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 59165
35 clang             0x00000001000aa556 clang::ASTDeserializationListener::DeclRead(unsigned int, clang::Decl const*) + 76758
36 clang             0x00000001000cf134 llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 49524
37 clang             0x00000001000cf544 llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 50564
38 clang             0x00000001000cf712 llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 51026
39 clang             0x00000001000c331f llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 863
40 clang             0x00000001000d16dd llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 59165
41 clang             0x00000001000aa556 clang::ASTDeserializationListener::DeclRead(unsigned int, clang::Decl const*) + 76758
42 clang             0x00000001000cf476 llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 50358
43 clang             0x00000001000cf712 llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 51026
44 clang             0x00000001000c331f llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 863
45 clang             0x00000001000d16dd llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 59165
46 clang             0x00000001000aa556 clang::ASTDeserializationListener::DeclRead(unsigned int, clang::Decl const*) + 76758
47 clang             0x00000001000cf246 llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 49798
48 clang             0x00000001000cf712 llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 51026
49 clang             0x00000001000c331f llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 863
50 clang             0x00000001000d16dd llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 59165
51 clang             0x00000001000aa556 clang::ASTDeserializationListener::DeclRead(unsigned int, clang::Decl const*) + 76758
52 clang             0x00000001000af754 clang::ASTDeserializationListener::DeclRead(unsigned int, clang::Decl const*) + 97748
53 clang             0x00000001000aebfb clang::ASTDeserializationListener::DeclRead(unsigned int, clang::Decl const*) + 94843
54 clang             0x00000001000aa169 clang::ASTDeserializationListener::DeclRead(unsigned int, clang::Decl const*) + 75753
55 clang             0x00000001000ac967 clang::ASTDeserializationListener::DeclRead(unsigned int, clang::Decl const*) + 85991
56 clang             0x00000001000aa169 clang::ASTDeserializationListener::DeclRead(unsigned int, clang::Decl const*) + 75753
57 clang             0x00000001000c900e llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 24654
58 clang             0x00000001000c915b llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 24987
59 clang             0x00000001000c92c5 llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 25349
60 clang             0x00000001000c331f llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 863
61 clang             0x00000001000d16dd llvm::BitstreamCursor::ReadAbbreviatedField(llvm::BitCodeAbbrevOp const&, llvm::SmallVectorImpl<unsigned long long>&) + 59165
62 clang             0x00000001000aa556 clang::ASTDeserializationListener::DeclRead(unsigned int, clang::Decl const*) + 76758
63 clang             0x00000001000b2d84 clang::ASTDeserializationListener::DeclRead(unsigned int, clang::Decl const*) + 111620
64 clang             0x000000010022d850 clang::MSP430InterruptAttr* clang::Decl::getAttr<clang::MSP430InterruptAttr>() const + 688
65 clang             0x000000010020aa80 llvm::DenseMap<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::TrackingVH<llvm::Value>, llvm::ValueMapConfig<llvm::Value const*>, llvm::DenseMapInfo<llvm::TrackingVH<llvm::Value> > >, llvm::TrackingVH<llvm::Value>, llvm::DenseMapInfo<llvm::ValueMapCallbackVH<llvm::Value const*, llvm::TrackingVH<llvm::Value>, llvm::ValueMapConfig<llvm::Value const*>, llvm::DenseMapInfo<llvm::TrackingVH<llvm::Value> > > >, llvm::DenseMapInfo<llvm::TrackingVH<llvm::Value> > >::init(unsigned int) + 3312
66 clang             0x000000010002078b llvm::DenseMap<clang::IdentifierInfo const*, unsigned int, llvm::DenseMapInfo<clang::IdentifierInfo const*>, llvm::DenseMapInfo<unsigned int> >::grow(unsigned int) + 13403
67 clang             0x000000010000a7b5 llvm::SmallVectorImpl<char const*>::insert(char const**, char const* const&) + 3013
68 clang             0x0000000100002d18
69 clang             0x0000000100006b62 llvm::PrettyStackTraceProgram::~PrettyStackTraceProgram() + 850
70 clang             0x0000000100001734
Stack dump:
0.	Program arguments: /usr/local/bin/clang -cc1 -triple x86_64-apple-macosx10.6.8 -emit-obj -disable-free -main-file-name hybrid_times_ext.cpp -pic-level 2 -mdisable-fp-elim -relaxed-aliasing -masm-verbose -munwind-tables -target-cpu core2 -target-linker-version 123.2 -coverage-file hybrid_times_ext.o -resource-dir /usr/local/bin/../lib/clang/3.0 -include-pch precompiled.h.gch -D BOOST_ALL_NO_LIB -D BOOST_DISABLE_THREADS -D BOOST_PYTHON_MAX_BASES=2 -D NDEBUG -I /Users/luc/Developer/cctbx/boost -I /System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -O3 -Wno-c++0x-extensions -Wno-array-bounds -fdeprecated-macro -ferror-limit 19 -fmessage-length 104 -stack-protector 1 -fblocks -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -o hybrid_times_ext.o -x c++ hybrid_times_ext.cpp 
1.	hybrid_times_ext.cpp:4:1: current parser token 'namespace'
2.	/Users/luc/Developer/cctbx/boost/boost/smart_ptr/detail/operator_bool.hpp:45:5: LLVM IR generation of declaration 'boost::shared_ptr::operator type-parameter-0-0 *<T>::*'
3.	/Users/luc/Developer/cctbx/boost/boost/smart_ptr/detail/operator_bool.hpp:45:5: Mangling declaration 'boost::shared_ptr::operator type-parameter-0-0 *<T>::*'
clang: error: unable to execute command: Segmentation fault
clang: error: clang frontend command failed due to signal 2 (use -v to see invocation)
clang: note: diagnostic msg: Please submit a bug report to http://llvm.org/bugs/ and include command line arguments and all diagnostic information.
clang: note: diagnostic msg: Preprocessed source(s) are located at:
clang: note: diagnostic msg: /var/folders/Zq/ZqzlClQvEKGueAD-kXuIXE+++TI/-Tmp-/hybrid_times_ext-nXYOY8.ii
Comment 1 Luc Bourhis 2011-09-13 07:27:29 PDT
Created attachment 7261 [details]
Header to precompile
Comment 2 Luc Bourhis 2011-09-13 07:29:12 PDT
~> clang --version
clang version 3.0 (http://llvm.org/git/clang.git c985b88efc9188845952ab524fe6d4717705257b)
Target: x86_64-apple-darwin10.8.0
Thread model: posix
Comment 3 Eli Friedman 2011-09-13 13:19:31 PDT
Cloned to <rdar://problem/10117105>.
Comment 4 Argyrios Kyrtzidis 2011-09-13 16:38:06 PDT
r139644