[LLVMdev] opt fails with assertion in Attributes.cpp

Marcelo Sousa marceloabsousa at gmail.com
Thu Jun 20 06:24:05 PDT 2013


Hi Bill,

With the latest llvm version I'm getting the following error:

opt -instnamer < core-device.c.bc > core-device.o.bc
Attribute 'nobuiltin' only applies to functions!
void (%struct.fw_csr_iterator*, i32*)* @fw_csr_iterator_init
Broken module found, compilation aborted!
0  opt             0x0000000001914bf1 llvm::sys::PrintStackTrace(_IO_FILE*)
+ 38
1  opt             0x0000000001914e78
2  opt             0x00000000019148bc
3  libpthread.so.0 0x00000035d980efe0
4  libc.so.6       0x00000035d8c35935 gsignal + 53
5  libc.so.6       0x00000035d8c370e8 abort + 328
6  opt             0x00000000017ee645
7  opt             0x00000000017ee33d
8  opt             0x00000000017cccad
llvm::FPPassManager::runOnFunction(llvm::Function&) + 385
9  opt             0x00000000017cce9e
llvm::FPPassManager::runOnModule(llvm::Module&) + 84
10 opt             0x00000000017cd1fb
llvm::MPPassManager::runOnModule(llvm::Module&) + 559
11 opt             0x00000000017cd7fd
llvm::PassManagerImpl::run(llvm::Module&) + 249
12 opt             0x00000000017cda0f llvm::PassManager::run(llvm::Module&)
+ 39
13 opt             0x000000000090ab1b main + 5486
14 libc.so.6       0x00000035d8c21735 __libc_start_main + 245
15 opt             0x00000000008fc7c9
Stack dump:
0.    Program arguments: /home/scratch/llvm/build/bin/opt -instnamer
1.    Running pass 'Function Pass Manager' on module '<stdin>'.
2.    Running pass 'Module Verifier' on function '@fw_csr_iterator_init'
Aborted

The bytecode of the function is:
; Function Attrs: noredzone nounwind
define void @fw_csr_iterator_init(%struct.fw_csr_iterator* nocapture %ci,
i32* %p) #1 {
  tail call void @llvm.dbg.value(metadata !{%struct.fw_csr_iterator* %ci},
i64 0, metadata !159), !dbg !3500
  tail call void @llvm.dbg.value(metadata !{i32* %p}, i64 0, metadata
!160), !dbg !3500
  %1 = getelementptr i32* %p, i64 1, !dbg !3501
  %2 = getelementptr inbounds %struct.fw_csr_iterator* %ci, i64 0, i32 0,
!dbg !3501
  store i32* %1, i32** %2, align 8, !dbg !3501
  %3 = load i32* %p, align 4, !dbg !3503
  %4 = lshr i32 %3, 16, !dbg !3503
  %5 = zext i32 %4 to i64, !dbg !3503
  %.sum = add i64 %5, 1, !dbg !3503
  %6 = getelementptr i32* %p, i64 %.sum, !dbg !3503
  %7 = getelementptr inbounds %struct.fw_csr_iterator* %ci, i64 0, i32 1,
!dbg !3503
  store i32* %6, i32** %7, align 8, !dbg !3503
  ret void, !dbg !3504
}

Can someone fix this or point me to where I should fix it?

Kind regards,
Marcelo


On Tue, Jun 18, 2013 at 10:28 PM, Bill Wendling <wendling at apple.com> wrote:

> Hi Marcelo,
>
> That should be fixed now at r184239. Sorry about the failure!
>
> -bw
>
> On Jun 17, 2013, at 6:16 AM, Marcelo Sousa <marceloabsousa at gmail.com>
> wrote:
>
> > Hello,
> >
> > I'm getting an error when running opt with what seems to be a valid
> bytecode file compiled from one the Linux Kernel files.
> > The error is:
> > opt: /home/scratch/llvm/lib/IR/Attributes.cpp:119: llvm::StringRef
> llvm::Attribute::getKindAsString() const: Assertion `isStringAttribute() &&
> "Invalid attribute type to get the kind as a string!"' failed.
> >
> > I send you in attach the .{c,bc,ll} and the log file of the error.
> > Any insight on how to solve this would be quite helpful because it
> occurs in several bytecode files of the Linux Kernel source.
> >
> > I'm using llvm-3.4svn.
> >
> > Kind regards,
> > Marcelo
> >
> <async.c><async.c.bc><async.c.ll><errorlog>_______________________________________________
> > LLVM Developers mailing list
> > LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20130620/4d296d7c/attachment.html>


More information about the llvm-dev mailing list