[libcxx-commits] [PATCH] D128998: [libunwind] Handle G in personality string

Michał Górny via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Fri Sep 30 04:57:28 PDT 2022


mgorny added a comment.

This change broke building with `-DLIBUNWIND_ENABLE_CROSS_UNWINDING=ON`:

  $ ninja -C build -j1  -k99
  ninja: Entering directory `build'
  [1/5] Building CXX object libunwind/src/CMakeFiles/unwind_shared_objects.dir/libunwind.cpp.o
  FAILED: libunwind/src/CMakeFiles/unwind_shared_objects.dir/libunwind.cpp.o 
  /usr/bin/c++ -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/mgorny/git/llvm-bisect/libunwind/include -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -Wimplicit-fallthrough -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -fdata-sections -Os -DNDEBUG -fPIC -Werror=return-type -W -Wall -Wchar-subscripts -Wconversion -Wmismatched-tags -Wmissing-braces -Wno-unused-function -Wshadow -Wsign-compare -Wsign-conversion -Wstrict-aliasing=2 -Wstrict-overflow=4 -Wunused-parameter -Wunused-variable -Wwrite-strings -Wundef -Wno-suggest-override -Wno-error -pedantic -funwind-tables -nostdinc++ -D_DEBUG -UNDEBUG -fno-rtti -std=c++11  -fstrict-aliasing -fno-exceptions -fno-rtti -MD -MT libunwind/src/CMakeFiles/unwind_shared_objects.dir/libunwind.cpp.o -MF libunwind/src/CMakeFiles/unwind_shared_objects.dir/libunwind.cpp.o.d -o libunwind/src/CMakeFiles/unwind_shared_objects.dir/libunwind.cpp.o -c /home/mgorny/git/llvm-bisect/libunwind/src/libunwind.cpp
  In file included from /home/mgorny/git/llvm-bisect/libunwind/src/DwarfParser.hpp:22,
                   from /home/mgorny/git/llvm-bisect/libunwind/src/EHHeaderParser.hpp:17,
                   from /home/mgorny/git/llvm-bisect/libunwind/src/AddressSpace.hpp:23,
                   from /home/mgorny/git/llvm-bisect/libunwind/src/libunwind.cpp:30:
  /home/mgorny/git/llvm-bisect/libunwind/src/Registers.hpp:2871:5: warning: "__mips_isa_rev" is not defined, evaluates to 0 [-Wundef]
   2871 | #if __mips_isa_rev != 6
        |     ^~~~~~~~~~~~~~
  /home/mgorny/git/llvm-bisect/libunwind/src/Registers.hpp:3195:5: warning: "__mips_isa_rev" is not defined, evaluates to 0 [-Wundef]
   3195 | #if __mips_isa_rev != 6
        |     ^~~~~~~~~~~~~~
  /home/mgorny/git/llvm-bisect/libunwind/src/Registers.hpp: In member function ‘bool libunwind::Registers_ppc64::validVectorRegister(int) const’:
  /home/mgorny/git/llvm-bisect/libunwind/src/Registers.hpp:1549:54: warning: unused parameter ‘regNum’ [-Wunused-parameter]
   1549 | inline bool Registers_ppc64::validVectorRegister(int regNum) const {
        |                                                  ~~~~^~~~~~
  /home/mgorny/git/llvm-bisect/libunwind/src/AddressSpace.hpp: In static member function ‘static int64_t libunwind::LocalAddressSpace::getSLEB128(pint_t&, pint_t)’:
  /home/mgorny/git/llvm-bisect/libunwind/src/AddressSpace.hpp:256:42: warning: conversion to ‘long unsigned int’ from ‘int64_t’ {aka ‘long int’} may change the sign of the result [-Wsign-conversion]
    256 |     result |= (uint64_t)(byte & 0x7f) << bit;
        |                                          ^~~
  /home/mgorny/git/llvm-bisect/libunwind/src/AddressSpace.hpp:261:26: warning: conversion to ‘long long unsigned int’ from ‘int64_t’ {aka ‘long int’} may change the sign of the result [-Wsign-conversion]
    261 |     result |= (-1ULL) << bit;
        |                          ^~~
  /home/mgorny/git/llvm-bisect/libunwind/src/AddressSpace.hpp:261:12: warning: conversion to ‘int64_t’ {aka ‘long int’} from ‘long long unsigned int’ may change the sign of the result [-Wsign-conversion]
    261 |     result |= (-1ULL) << bit;
        |     ~~~~~~~^~~~~~~~~~~~~~~~~
  /home/mgorny/git/llvm-bisect/libunwind/src/libunwind.cpp: At global scope:
  /home/mgorny/git/llvm-bisect/libunwind/src/libunwind.cpp:39:23: warning: type-punning to incomplete type might break strict-aliasing rules [-Wstrict-aliasing]
     39 |     (unw_addr_space_t)&LocalAddressSpace::sThisAddressSpace;
        |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  /home/mgorny/git/llvm-bisect/libunwind/src/DwarfInstructions.hpp: Assembler messages:
  /home/mgorny/git/llvm-bisect/libunwind/src/DwarfInstructions.hpp:224: Error: unknown pseudo-op: `.arch_extension'
  /home/mgorny/git/llvm-bisect/libunwind/src/DwarfInstructions.hpp:225: Error: no such instruction: `stg %rax,[%rax]'
  [2/5] Building CXX object libunwind/src/CMakeFiles/unwind_static_objects.dir/libunwind.cpp.o
  FAILED: libunwind/src/CMakeFiles/unwind_static_objects.dir/libunwind.cpp.o 
  /usr/bin/c++ -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -I/home/mgorny/git/llvm-bisect/libunwind/include -fvisibility-inlines-hidden -Werror=date-time -Wall -Wextra -Wno-unused-parameter -Wwrite-strings -Wcast-qual -Wno-missing-field-initializers -Wimplicit-fallthrough -Wno-class-memaccess -Wno-redundant-move -Wno-pessimizing-move -Wno-noexcept-type -Wdelete-non-virtual-dtor -Wsuggest-override -Wno-comment -Wno-misleading-indentation -Wctad-maybe-unsupported -fdiagnostics-color -fdata-sections -Os -DNDEBUG -Werror=return-type -W -Wall -Wchar-subscripts -Wconversion -Wmismatched-tags -Wmissing-braces -Wno-unused-function -Wshadow -Wsign-compare -Wsign-conversion -Wstrict-aliasing=2 -Wstrict-overflow=4 -Wunused-parameter -Wunused-variable -Wwrite-strings -Wundef -Wno-suggest-override -Wno-error -pedantic -funwind-tables -nostdinc++ -D_DEBUG -UNDEBUG -fno-rtti -std=c++11  -fstrict-aliasing -fno-exceptions -fno-rtti -MD -MT libunwind/src/CMakeFiles/unwind_static_objects.dir/libunwind.cpp.o -MF libunwind/src/CMakeFiles/unwind_static_objects.dir/libunwind.cpp.o.d -o libunwind/src/CMakeFiles/unwind_static_objects.dir/libunwind.cpp.o -c /home/mgorny/git/llvm-bisect/libunwind/src/libunwind.cpp
  In file included from /home/mgorny/git/llvm-bisect/libunwind/src/DwarfParser.hpp:22,
                   from /home/mgorny/git/llvm-bisect/libunwind/src/EHHeaderParser.hpp:17,
                   from /home/mgorny/git/llvm-bisect/libunwind/src/AddressSpace.hpp:23,
                   from /home/mgorny/git/llvm-bisect/libunwind/src/libunwind.cpp:30:
  /home/mgorny/git/llvm-bisect/libunwind/src/Registers.hpp:2871:5: warning: "__mips_isa_rev" is not defined, evaluates to 0 [-Wundef]
   2871 | #if __mips_isa_rev != 6
        |     ^~~~~~~~~~~~~~
  /home/mgorny/git/llvm-bisect/libunwind/src/Registers.hpp:3195:5: warning: "__mips_isa_rev" is not defined, evaluates to 0 [-Wundef]
   3195 | #if __mips_isa_rev != 6
        |     ^~~~~~~~~~~~~~
  /home/mgorny/git/llvm-bisect/libunwind/src/Registers.hpp: In member function ‘bool libunwind::Registers_ppc64::validVectorRegister(int) const’:
  /home/mgorny/git/llvm-bisect/libunwind/src/Registers.hpp:1549:54: warning: unused parameter ‘regNum’ [-Wunused-parameter]
   1549 | inline bool Registers_ppc64::validVectorRegister(int regNum) const {
        |                                                  ~~~~^~~~~~
  /home/mgorny/git/llvm-bisect/libunwind/src/AddressSpace.hpp: In static member function ‘static int64_t libunwind::LocalAddressSpace::getSLEB128(pint_t&, pint_t)’:
  /home/mgorny/git/llvm-bisect/libunwind/src/AddressSpace.hpp:256:42: warning: conversion to ‘long unsigned int’ from ‘int64_t’ {aka ‘long int’} may change the sign of the result [-Wsign-conversion]
    256 |     result |= (uint64_t)(byte & 0x7f) << bit;
        |                                          ^~~
  /home/mgorny/git/llvm-bisect/libunwind/src/AddressSpace.hpp:261:26: warning: conversion to ‘long long unsigned int’ from ‘int64_t’ {aka ‘long int’} may change the sign of the result [-Wsign-conversion]
    261 |     result |= (-1ULL) << bit;
        |                          ^~~
  /home/mgorny/git/llvm-bisect/libunwind/src/AddressSpace.hpp:261:12: warning: conversion to ‘int64_t’ {aka ‘long int’} from ‘long long unsigned int’ may change the sign of the result [-Wsign-conversion]
    261 |     result |= (-1ULL) << bit;
        |     ~~~~~~~^~~~~~~~~~~~~~~~~
  /home/mgorny/git/llvm-bisect/libunwind/src/libunwind.cpp: At global scope:
  /home/mgorny/git/llvm-bisect/libunwind/src/libunwind.cpp:39:23: warning: type-punning to incomplete type might break strict-aliasing rules [-Wstrict-aliasing]
     39 |     (unw_addr_space_t)&LocalAddressSpace::sThisAddressSpace;
        |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  /home/mgorny/git/llvm-bisect/libunwind/src/DwarfInstructions.hpp: Assembler messages:
  /home/mgorny/git/llvm-bisect/libunwind/src/DwarfInstructions.hpp:224: Error: unknown pseudo-op: `.arch_extension'
  /home/mgorny/git/llvm-bisect/libunwind/src/DwarfInstructions.hpp:225: Error: no such instruction: `stg %rax,[%rax]'
  ninja: build stopped: cannot make progress due to previous errors.

Please fix or revert.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D128998/new/

https://reviews.llvm.org/D128998



More information about the libcxx-commits mailing list