Skip to content

SPARC lacks support for over-aligned dynamic alloca #57626

Closed
@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

    Projects

    Status

    Done

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions