llvm(3.7.0) pass segmentation fault:(Core dumped)

I wrote a very simple pass. The code as follows(rude.cpp):
#include “llvm/Pass.h”
#include “llvm/IR/Function.h”
#include “llvm/Support/raw_ostream.h”
#include “llvm/IR/BasicBlock”

using namespace llvm;

namespace {
struct rude : public FunctionPass {
static char ID;
rude() : FunctionPass(ID) {}

bool runOnFunction(Function &F) override {
errs() << "Hello,I’m rude: ";
errs().write_escaped(F.getName()) << ‘\n’;

for(Function::iterator b=F.begin(),be=F.end();b!=be;++b)
{
errs()<<"\n\tBB:";
for(BasicBlock::iterator i=b->begin(),ie=b->end();i!=ie;++i)
{
errs()<<"\n\tanalysis instructions";
}
}
return false;
}
};
}

char Hello::ID = 9;
static RegisterPass X(“rude”, “rude Pass”, false, false);

then I use command :
opt -load XX/Debug+Assertion/rude.so <test1.bc> /dev/null to run the rude.so file .
the error as follows:


I really don’t why it is. can anyone help me?