[LLVMbugs] [Bug 12114] New: __attribute__((aligned(N)) crashes armv7 codegen if N > 256

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Tue Feb 28 08:12:26 PST 2012


http://llvm.org/bugs/show_bug.cgi?id=12114

             Bug #: 12114
           Summary: __attribute__((aligned(N)) crashes armv7 codegen if N
                    > 256
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: LLVM Codegen
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: nicolasweber at gmx.de
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified


tests-MacBook-Pro-2:clang test$ cat test.cc
void f() {
 __attribute__((aligned(512))) char c;
}

# -no-integrated-as makes the external assembler complain
tests-MacBook-Pro-2:clang test$ ../../Release+Asserts/bin/clang -c test.cc
-arch armv7 -no-integrated-as
/var/folders/5j/6xp_dl050mv_b_0_56s5mjx80000gn/T/test-Mqi3Sc.s:18:invalid
constant (0x1ff) after fixup

# -integrated-as just crashes
clang: error: assembler command failed with exit code 1 (use -v to see
invocation)
tests-MacBook-Pro-2:clang test$ ../../Release+Asserts/bin/clang -c test.cc
-arch armv7 -integrated-as
Assertion failed: (Encoded != ~0U && "Not a Thumb2 so_imm value?"), function
getT2SOImmOpValue, file ARMMCCodeEmitter.cpp, line 258.
0  clang             0x00000001019a9892 _ZL15PrintStackTracePv + 34
1  clang             0x00000001019a9da9 _ZL13SignalHandleri + 697
2  libsystem_c.dylib 0x00007fff963dacfa _sigtramp + 26
3  libsystem_c.dylib 000000000000000000 _sigtramp + 18446603337995539232
4  clang             0x00000001019a9ad6 abort + 22
5  clang             0x00000001019a9a95 __assert_rtn + 53
6  clang             0x00000001011e1124 (anonymous
namespace)::ARMMCCodeEmitter::getT2SOImmOpValue(llvm::MCInst const&, unsigned
int, llvm::SmallVectorImpl<llvm::MCFixup>&) const + 340
7  clang             0x00000001011d857f (anonymous
namespace)::ARMMCCodeEmitter::getBinaryCodeForInstr(llvm::MCInst const&,
llvm::SmallVectorImpl<llvm::MCFixup>&) const + 57551
8  clang             0x00000001011ca2ff (anonymous
namespace)::ARMMCCodeEmitter::EncodeInstruction(llvm::MCInst const&,
llvm::raw_ostream&, llvm::SmallVectorImpl<llvm::MCFixup>&) const + 95
9  clang             0x000000010189e629 (anonymous
namespace)::MCMachOStreamer::EmitInstToData(llvm::MCInst const&) + 153
10 clang             0x00000001018a129b
llvm::MCObjectStreamer::EmitInstruction(llvm::MCInst const&) + 171
11 clang             0x00000001010f6661
llvm::ARMAsmPrinter::EmitInstruction(llvm::MachineInstr const*) + 17729
12 clang             0x00000001014a7277 llvm::AsmPrinter::EmitFunctionBody() +
2199
13 clang             0x00000001010e9d42
llvm::ARMAsmPrinter::runOnMachineFunction(llvm::MachineFunction&) + 66
14 clang             0x000000010156f0dc
llvm::MachineFunctionPass::runOnFunction(llvm::Function&) + 60
15 clang             0x000000010194c0ec
llvm::FPPassManager::runOnFunction(llvm::Function&) + 332
16 clang             0x000000010194c37b
llvm::FPPassManager::runOnModule(llvm::Module&) + 75
17 clang             0x000000010194c490
llvm::MPPassManager::runOnModule(llvm::Module&) + 224
18 clang             0x000000010194ca71
llvm::PassManagerImpl::run(llvm::Module&) + 337
19 clang             0x000000010194cc1d llvm::PassManager::run(llvm::Module&) +
13
20 clang             0x000000010063abf0
clang::EmitBackendOutput(clang::DiagnosticsEngine&, clang::CodeGenOptions
const&, clang::TargetOptions const&, clang::LangOptions const&, llvm::Module*,
clang::BackendAction, llvm::raw_ostream*) + 1968
21 clang             0x000000010071876f
clang::BackendConsumer::HandleTranslationUnit(clang::ASTContext&) + 639
22 clang             0x000000010074bfe6 clang::ParseAST(clang::Sema&, bool) +
406
23 clang             0x0000000100717866 clang::CodeGenAction::ExecuteAction() +
1142
24 clang             0x0000000100500c75
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 949
25 clang             0x00000001004e8422
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 3026
26 clang             0x00000001004df00b cc1_main(char const**, char const**,
char const*, void*) + 3019
27 clang             0x00000001004e4887 main + 663
28 clang             0x00000001004de434 start + 52
29 clang             0x0000000000000031 start + 18446744069409479729
Stack dump:
0.    Program arguments: /Users/test/src/llvm-rw/Release+Asserts/bin/clang -cc1
-triple thumbv7-apple-ios0.0.0 -emit-obj -mrelax-all -disable-free
-main-file-name test.cc -pic-level 1 -mdisable-fp-elim -masm-verbose
-target-abi apcs-gnu -target-cpu cortex-a8 -mfloat-abi soft -target-feature
+soft-float-abi -coverage-file test.o -resource-dir
/Users/test/src/llvm-rw/Release+Asserts/bin/../lib/clang/3.1
-fmodule-cache-path
/var/folders/5j/6xp_dl050mv_b_0_56s5mjx80000gn/T/clang-module-cache
-fdeprecated-macro -fdebug-compilation-dir /Users/test/src/llvm-rw/tools/clang
-ferror-limit 19 -fmessage-length 200 -stack-protector 1 -mstackrealign
-fblocks -fblocks-runtime-optional -fcxx-exceptions -fexceptions
-fsjlj-exceptions -fdiagnostics-show-option -fcolor-diagnostics -o test.o -x
c++ test.cc 
1.    <eof> parser at end of file
2.    Code generation
3.    Running pass 'Function Pass Manager' on module 'test.cc'.
4.    Running pass 'ARM Assembly Printer' on function '@_Z1fv'
clang: error: unable to execute command: Illegal instruction: 4
clang: error: clang frontend command failed due to signal (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) and associated run
script(s) are located at:
clang: note: diagnostic msg:
/var/folders/5j/6xp_dl050mv_b_0_56s5mjx80000gn/T/test-zie38X.ii
clang: note: diagnostic msg:
/var/folders/5j/6xp_dl050mv_b_0_56s5mjx80000gn/T/test-zie38X.sh

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list