Skip to content

[Xcode 26.4] Release build emits reorder-init-list and symbol-less object warnings #739

Description

@Malakof

Summary

A clean iOS Release simulator build with react-native-safe-area-context 5.8.0 emits two -Wreorder-init-list diagnostics per architecture from RNCSafeAreaProviderComponentView.mm. Under Xcode 26.4.1, libtool also warns that RNCSafeAreaViewState.o has no symbols when its implementation is compiled out for the selected platform/configuration.

Environment

  • react-native-safe-area-context: 5.8.0
  • React Native: 0.86.0
  • Expo: 57.0.4
  • Xcode: 26.4.1
  • SDK: iOS 26.2 simulator
  • configuration: Release, new architecture

Diagnostics

RNCSafeAreaProviderComponentView.mm:110:27: warning: ISO C++ requires field designators to be specified in declaration order; field left will be initialized after field bottom [-Wreorder-init-list]
RNCSafeAreaProviderComponentView.mm:111:26: warning: ISO C++ requires field designators to be specified in declaration order; field bottom will be initialized after field right [-Wreorder-init-list]
libtool: warning: RNCSafeAreaViewState.o has no symbols

Source-level fixes verified locally

  1. Initialize EdgeInsets in declaration order: top, right, bottom, left.
  2. Ensure RNCSafeAreaViewState.cpp emits a real external-linkage symbol even when platform guards compile out the implementation.

These changes remove the diagnostics without warning flags, suppression, or log filtering. I can prepare a focused patch if useful.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions