[llvm-bugs] [Bug 36638] [MS] clang fails to compile function with __unaligned argument to class member

2018-03-07 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=36638

Reid Kleckner  changed:

   What|Removed |Added

 Resolution|--- |FIXED
 Status|REOPENED|RESOLVED

--- Comment #7 from Reid Kleckner  ---
r326971, let's find out if there are more.

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs


[llvm-bugs] [Bug 36638] [MS] clang fails to compile function with __unaligned argument to class member

2018-03-07 Thread via llvm-bugs
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

[llvm-bugs] [Bug 36638] [MS] clang fails to compile function with __unaligned argument to class member

2018-03-07 Thread via llvm-bugs
https://bugs.llvm.org/show_bug.cgi?id=36638

Reid Kleckner  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #4 from Reid Kleckner  ---
I committed that with a test in r326962, feel free to reopen if there's more to
do here. I see more switches and lists of keywords that have kw_const but not
kw___unaligned.

-- 
You are receiving this mail because:
You are on the CC list for the bug.___
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs