https://bugs.llvm.org/show_bug.cgi?id=36638
Ilia Taraban changed:
What|Removed |Added
Status|RESOLVED|REOPENED
Resolution|FIXED |---
--- Comment #5 from Ilia Taraban ---
After your commit now I have assert in FE on similar test:
=== fine.cpp ==
struct A {
void foo(int) __unaligned {;}
};
void func(void (A::*a)(int) __unaligned);
void goo() {
func(&A::foo);
}
===
>>> clang -v
clang version 7.0.0 (trunk 326962)
...
>>> clang++ -c fine.cpp -fms-extensions
clang-7.0: .../llvm/tools/clang/include/clang/AST/Type.h:304: void
clang::Qualifiers::addCVRQualifiers(unsigned int): Assertion `!(mask &
~CVRMask) && "bitmask contains non-CVR bits"' failed.
#0 0x042f97c1 llvm::sys::PrintStackTrace(llvm::raw_ostream&)
.../llvm/lib/Support/Unix/Signals.inc:398:0
#1 0x042f9852 PrintStackTraceSignalHandler(void*)
.../llvm/lib/Support/Unix/Signals.inc:462:0
#2 0x042f7d38 llvm::sys::RunSignalHandlers()
.../llvm/lib/Support/Signals.cpp:49:0
#3 0x042f9159 SignalHandler(int)
.../llvm/lib/Support/Unix/Signals.inc:252:0
#4 0x7fdcc23145e0 __restore_rt (/lib64/libpthread.so.0+0xf5e0)
#5 0x7fdcc0f061f7 __GI_raise (/lib64/libc.so.6+0x351f7)
#6 0x7fdcc0f078e8 __GI_abort (/lib64/libc.so.6+0x368e8)
#7 0x7fdcc0eff266 __assert_fail_base (/lib64/libc.so.6+0x2e266)
#8 0x7fdcc0eff312 (/lib64/libc.so.6+0x2e312)
#9 0x045d2992 clang::Qualifiers::addCVRQualifiers(unsigned int)
.../llvm/tools/clang/include/clang/AST/Type.h:305:0
#10 0x06832265 clang::Qualifiers::fromCVRMask(unsigned int)
.../llvm/tools/clang/include/clang/AST/Type.h:248:0
#11 0x0750296a (anonymous
namespace)::CXXNameMangler::mangleType(clang::FunctionProtoType const*)
.../llvm/tools/clang/lib/AST/ItaniumMangle.cpp:2691:0
#12 0x07503321 (anonymous
namespace)::CXXNameMangler::mangleType(clang::MemberPointerType const*)
.../llvm/tools/clang/lib/AST/ItaniumMangle.cpp:2870:0
#13 0x075013a2 (anonymous
namespace)::CXXNameMangler::mangleType(clang::QualType)
.../llvm/tools/clang/include/clang/AST/TypeNodes.def:69:0
#14 0x07502f0f (anonymous
namespace)::CXXNameMangler::mangleBareFunctionType(clang::FunctionProtoType
const*, bool, clang::FunctionDecl const*)
.../llvm/tools/clang/lib/AST/ItaniumMangle.cpp:2785:0
#15 0x074fc841 (anonymous
namespace)::CXXNameMangler::mangleFunctionEncodingBareType(clang::FunctionDecl
const*) .../llvm/tools/clang/lib/AST/ItaniumMangle.cpp:760:0
#16 0x074fc28c (anonymous
namespace)::CXXNameMangler::mangleFunctionEncoding(clang::FunctionDecl const*)
.../llvm/tools/clang/lib/AST/ItaniumMangle.cpp:668:0
#17 0x074fc101 (anonymous
namespace)::CXXNameMangler::mangle(clang::NamedDecl const*)
.../llvm/tools/clang/lib/AST/ItaniumMangle.cpp:646:0
#18 0x07509cd0 (anonymous
namespace)::ItaniumMangleContextImpl::mangleCXXName(clang::NamedDecl const*,
llvm::raw_ostream&) .../llvm/tools/clang/lib/AST/ItaniumMangle.cpp:4739:0
#19 0x075109c1 clang::MangleContext::mangleName(clang::NamedDecl
const*, llvm::raw_ostream&) .../llvm/tools/clang/lib/AST/Mangle.cpp:153:0
#20 0x046b0532 getMangledNameImpl(clang::CodeGen::CodeGenModule const&,
clang::GlobalDecl, clang::NamedDecl const*, bool)
.../llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp:908:0
#21 0x046b0cc0
clang::CodeGen::CodeGenModule::getMangledName(clang::GlobalDecl)
.../llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp:989:0
#22 0x046b8451
clang::CodeGen::CodeGenModule::GetAddrOfFunction(clang::GlobalDecl,
llvm::Type*, bool, bool, clang::CodeGen::ForDefinition_t)
.../llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp:2554:0
#23 0x04976bb0 EmitFunctionDeclPointer(clang::CodeGen::CodeGenModule&,
clang::FunctionDecl const*) .../llvm/tools/clang/lib/CodeGen/CGExpr.cpp:2290:0
#24 0x04983cd8 EmitDirectCallee(clang::CodeGen::CodeGenFunction&,
clang::FunctionDecl const*) .../llvm/tools/clang/lib/CodeGen/CGExpr.cpp:4240:0
#25 0x04983e16 clang::CodeGen::CodeGenFunction::EmitCallee(clang::Expr
const*) .../llvm/tools/clang/lib/CodeGen/CGExpr.cpp:4257:0
#26 0x04983dbb clang::CodeGen::CodeGenFunction::EmitCallee(clang::Expr
const*) .../llvm/tools/clang/lib/CodeGen/CGExpr.cpp:4251:0
#27 0x04983b30
clang::CodeGen::CodeGenFunction::EmitCallExpr(clang::CallExpr const*,
clang::CodeGen::ReturnValueSlot)
.../llvm/tools/clang/lib/CodeGen/CGExpr.cpp:4216:0
#28 0x049b6142 (anonymous
namespace)::ScalarExprEmitter::VisitCallExpr(clang::CallExpr const*)
.../llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp:517:0
#29 0x049c953f
_ZN5clang15StmtVisitorBaseINS_8make_ptrEN12_GLOBAL__N_117ScalarExprEmitterEPN4llvm5ValueEIEE5VisitEPNS_4StmtE
.../debug_build/tools/clang/include/clang/AST/StmtNodes.inc:32