[libunwind] r292721 - DWARF: convert error logs to _LIBUNWIND_LOG

Evgenii Stepanov via cfe-commits cfe-commits at lists.llvm.org
Thu Jan 26 14:27:19 PST 2017


Hi,

I'm not sure why we only see this now, but this change is breaking
llvm bootstrap with -Werror:
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/732/steps/bootstrap%20clang/logs/stdio

llvm/projects/libunwind/src/config.h:90:41: error: token pasting of
',' and __VA_ARGS__ is a GNU extension
[-Werror,-Wgnu-zero-variadic-macro-arguments]
  fprintf(stderr, "libunwind: " msg "\n", ##__VA_ARGS__)

On Sat, Jan 21, 2017 at 8:22 AM, Saleem Abdulrasool via cfe-commits
<cfe-commits at lists.llvm.org> wrote:
> Author: compnerd
> Date: Sat Jan 21 10:22:55 2017
> New Revision: 292721
>
> URL: http://llvm.org/viewvc/llvm-project?rev=292721&view=rev
> Log:
> DWARF: convert error logs to _LIBUNWIND_LOG
>
> Use the `_LIBUNWIND_LOG` macro instead of the explicit `fprintf` call.
> NFC.
>
> Modified:
>     libunwind/trunk/src/DwarfParser.hpp
>     libunwind/trunk/src/config.h
>
> Modified: libunwind/trunk/src/DwarfParser.hpp
> URL: http://llvm.org/viewvc/llvm-project/libunwind/trunk/src/DwarfParser.hpp?rev=292721&r1=292720&r2=292721&view=diff
> ==============================================================================
> --- libunwind/trunk/src/DwarfParser.hpp (original)
> +++ libunwind/trunk/src/DwarfParser.hpp Sat Jan 21 10:22:55 2017
> @@ -421,8 +421,7 @@ bool CFI_Parser<A>::parseInstructions(A
>        offset = (int64_t)addressSpace.getULEB128(p, instructionsEnd)
>                                                    * cieInfo.dataAlignFactor;
>        if (reg > kMaxRegisterNumber) {
> -        fprintf(stderr,
> -                "malformed DW_CFA_offset_extended DWARF unwind, reg too big\n");
> +        _LIBUNWIND_LOG("malformed DWARF DW_CFA_offset_extended, reg too big");
>          return false;
>        }
>        results->savedRegisters[reg].location = kRegisterInCFA;
> @@ -436,9 +435,7 @@ bool CFI_Parser<A>::parseInstructions(A
>        reg = addressSpace.getULEB128(p, instructionsEnd);
>        ;
>        if (reg > kMaxRegisterNumber) {
> -        fprintf(
> -            stderr,
> -            "malformed DW_CFA_restore_extended DWARF unwind, reg too big\n");
> +        _LIBUNWIND_LOG("malformed DWARF DW_CFA_restore_extended, reg too big");
>          return false;
>        }
>        results->savedRegisters[reg] = initialState.savedRegisters[reg];
> @@ -448,8 +445,7 @@ bool CFI_Parser<A>::parseInstructions(A
>      case DW_CFA_undefined:
>        reg = addressSpace.getULEB128(p, instructionsEnd);
>        if (reg > kMaxRegisterNumber) {
> -        fprintf(stderr,
> -                "malformed DW_CFA_undefined DWARF unwind, reg too big\n");
> +        _LIBUNWIND_LOG("malformed DWARF DW_CFA_undefined, reg too big");
>          return false;
>        }
>        results->savedRegisters[reg].location = kRegisterUnused;
> @@ -459,8 +455,7 @@ bool CFI_Parser<A>::parseInstructions(A
>      case DW_CFA_same_value:
>        reg = addressSpace.getULEB128(p, instructionsEnd);
>        if (reg > kMaxRegisterNumber) {
> -        fprintf(stderr,
> -                "malformed DW_CFA_same_value DWARF unwind, reg too big\n");
> +        _LIBUNWIND_LOG("malformed DWARF DW_CFA_same_value, reg too big");
>          return false;
>        }
>        // <rdar://problem/8456377> DW_CFA_same_value unsupported
> @@ -477,13 +472,11 @@ bool CFI_Parser<A>::parseInstructions(A
>        reg = addressSpace.getULEB128(p, instructionsEnd);
>        reg2 = addressSpace.getULEB128(p, instructionsEnd);
>        if (reg > kMaxRegisterNumber) {
> -        fprintf(stderr,
> -                "malformed DW_CFA_register DWARF unwind, reg too big\n");
> +        _LIBUNWIND_LOG("malformed DWARF DW_CFA_register, reg too big");
>          return false;
>        }
>        if (reg2 > kMaxRegisterNumber) {
> -        fprintf(stderr,
> -                "malformed DW_CFA_register DWARF unwind, reg2 too big\n");
> +        _LIBUNWIND_LOG("malformed DWARF DW_CFA_register, reg2 too big");
>          return false;
>        }
>        results->savedRegisters[reg].location = kRegisterInRegister;
> @@ -525,7 +518,7 @@ bool CFI_Parser<A>::parseInstructions(A
>        reg = addressSpace.getULEB128(p, instructionsEnd);
>        offset = (int64_t)addressSpace.getULEB128(p, instructionsEnd);
>        if (reg > kMaxRegisterNumber) {
> -        fprintf(stderr, "malformed DW_CFA_def_cfa DWARF unwind, reg too big\n");
> +        _LIBUNWIND_LOG("malformed DWARF DW_CFA_def_cfa, reg too big");
>          return false;
>        }
>        results->cfaRegister = (uint32_t)reg;
> @@ -537,9 +530,7 @@ bool CFI_Parser<A>::parseInstructions(A
>      case DW_CFA_def_cfa_register:
>        reg = addressSpace.getULEB128(p, instructionsEnd);
>        if (reg > kMaxRegisterNumber) {
> -        fprintf(
> -            stderr,
> -            "malformed DW_CFA_def_cfa_register DWARF unwind, reg too big\n");
> +        _LIBUNWIND_LOG("malformed DWARF DW_CFA_def_cfa_register, reg too big");
>          return false;
>        }
>        results->cfaRegister = (uint32_t)reg;
> @@ -567,8 +558,7 @@ bool CFI_Parser<A>::parseInstructions(A
>      case DW_CFA_expression:
>        reg = addressSpace.getULEB128(p, instructionsEnd);
>        if (reg > kMaxRegisterNumber) {
> -        fprintf(stderr,
> -                "malformed DW_CFA_expression DWARF unwind, reg too big\n");
> +        _LIBUNWIND_LOG("malformed DWARF DW_CFA_expression, reg too big");
>          return false;
>        }
>        results->savedRegisters[reg].location = kRegisterAtExpression;
> @@ -583,9 +573,8 @@ bool CFI_Parser<A>::parseInstructions(A
>      case DW_CFA_offset_extended_sf:
>        reg = addressSpace.getULEB128(p, instructionsEnd);
>        if (reg > kMaxRegisterNumber) {
> -        fprintf(
> -            stderr,
> -            "malformed DW_CFA_offset_extended_sf DWARF unwind, reg too big\n");
> +        _LIBUNWIND_LOG(
> +            "malformed DWARF DW_CFA_offset_extended_sf, reg too big");
>          return false;
>        }
>        offset =
> @@ -602,8 +591,7 @@ bool CFI_Parser<A>::parseInstructions(A
>        offset =
>            addressSpace.getSLEB128(p, instructionsEnd) * cieInfo.dataAlignFactor;
>        if (reg > kMaxRegisterNumber) {
> -        fprintf(stderr,
> -                "malformed DW_CFA_def_cfa_sf DWARF unwind, reg too big\n");
> +        _LIBUNWIND_LOG("malformed DWARF DW_CFA_def_cfa_sf, reg too big");
>          return false;
>        }
>        results->cfaRegister = (uint32_t)reg;
> @@ -635,8 +623,7 @@ bool CFI_Parser<A>::parseInstructions(A
>      case DW_CFA_val_offset_sf:
>        reg = addressSpace.getULEB128(p, instructionsEnd);
>        if (reg > kMaxRegisterNumber) {
> -        fprintf(stderr,
> -                "malformed DW_CFA_val_offset_sf DWARF unwind, reg too big\n");
> +        _LIBUNWIND_LOG("malformed DWARF DW_CFA_val_offset_sf, reg too big");
>          return false;
>        }
>        offset =
> @@ -651,8 +638,7 @@ bool CFI_Parser<A>::parseInstructions(A
>      case DW_CFA_val_expression:
>        reg = addressSpace.getULEB128(p, instructionsEnd);
>        if (reg > kMaxRegisterNumber) {
> -        fprintf(stderr,
> -                "malformed DW_CFA_val_expression DWARF unwind, reg too big\n");
> +        _LIBUNWIND_LOG("malformed DWARF DW_CFA_val_expression, reg too big");
>          return false;
>        }
>        results->savedRegisters[reg].location = kRegisterIsExpression;
> @@ -673,8 +659,8 @@ bool CFI_Parser<A>::parseInstructions(A
>      case DW_CFA_GNU_negative_offset_extended:
>        reg = addressSpace.getULEB128(p, instructionsEnd);
>        if (reg > kMaxRegisterNumber) {
> -        fprintf(stderr, "malformed DW_CFA_GNU_negative_offset_extended DWARF "
> -                        "unwind, reg too big\n");
> +        _LIBUNWIND_LOG(
> +            "malformed DWARF DW_CFA_GNU_negative_offset_extended, reg too big");
>          return false;
>        }
>        offset = (int64_t)addressSpace.getULEB128(p, instructionsEnd)
>
> Modified: libunwind/trunk/src/config.h
> URL: http://llvm.org/viewvc/llvm-project/libunwind/trunk/src/config.h?rev=292721&r1=292720&r2=292721&view=diff
> ==============================================================================
> --- libunwind/trunk/src/config.h (original)
> +++ libunwind/trunk/src/config.h Sat Jan 21 10:22:55 2017
> @@ -87,7 +87,7 @@
>    } while (0)
>
>  #define _LIBUNWIND_LOG(msg, ...)                                               \
> -  fprintf(stderr, "libunwind: " msg "\n", __VA_ARGS__)
> +  fprintf(stderr, "libunwind: " msg "\n", ##__VA_ARGS__)
>
>  #if defined(_LIBUNWIND_HAS_NO_THREADS)
>    // only used with pthread calls, not needed for the single-threaded builds
>
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits


More information about the cfe-commits mailing list