Skip to content

SPARC lacks support for over-aligned dynamic alloca #57626

@rorth

Description

@rorth

The SPARC backend lacks support for over-aligned dynamic alloca. So far, I've encountered the issue in the testsuite (D133493:

FAILED: MultiSource/UnitTests/C++11/frame_layout/CMakeFiles/frame_layout.dir/frame_layout.cpp.o
[...]
fatal error: error in backend: Function "_Z10test_frameILj4096ELb1ELj2048ELb0ELb0EJEEvDpT4_jPKcP13trace_elementd": over-aligned dynamic alloca not supported.
void test_frame<4096u, true, 2048u, false, false>(, unsigned int, char const*, trace_element*, double)

Additionally, it breaks asan support with several instances of the same issue:

      4 fatal error: error in backend: Function "_Z21MemSetOOBTestTemplateIcEvj": over-aligned dynamic alloca not supported.
      3 fatal error: error in backend: Function "_Z21StrLenOOBTestTemplatePcjN12_GLOBAL__N_17OOBKindE": over-aligned dynamic alloca not supported.
      4 fatal error: error in backend: Function "_Z24asan_write_sized_alignedPhj": over-aligned dynamic alloca not supported.
      4 fatal error: error in backend: Function "_ZN48AddressSanitizerInternalInterface_SetShadow_Test8TestBodyEv": over-aligned dynamic alloca not supported.
      4 fatal error: error in backend: Function "_ZN52AddressSanitizer_HasFeatureAddressSanitizerTest_Test8TestBodyEv": over-aligned dynamic alloca not supported.
      4 fatal error: error in backend: Function "_ZN56AddressSanitizerInterface_GetEstimatedAllocatedSize_Test8TestBodyEv": over-aligned dynamic alloca not supported.
      4 fatal error: error in backend: Function "_ZN7testing8internal16BoolFromGTestEnvEPKcb": over-aligned dynamic alloca not supported.
      3 fatal error: error in backend: Function "main": over-aligned dynamic alloca not supported.

which caused be to disable asan completely.

This puts clang at a considerable advantage to gcc which handles both just fine.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    Status

    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions