[all-commits] [llvm/llvm-project] 708808: [Sema] Add check for bitfield assignments to integ...

vabridgers via All-commits all-commits at lists.llvm.org
Wed Oct 18 09:40:20 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 708808e8532e7c3647356aec0664fcf94b1093d1
      https://github.com/llvm/llvm-project/commit/708808e8532e7c3647356aec0664fcf94b1093d1
  Author: vabridgers <58314289+vabridgers at users.noreply.github.com>
  Date:   2023-10-18 (Wed, 18 Oct 2023)

  Changed paths:
    M clang/docs/ReleaseNotes.rst
    M clang/include/clang/Basic/DiagnosticGroups.td
    M clang/include/clang/Basic/DiagnosticSemaKinds.td
    M clang/lib/Sema/SemaChecking.cpp
    A clang/test/SemaCXX/bitfield-width.c

  Log Message:
  -----------
  [Sema] Add check for bitfield assignments to integral types (#69049)

This change introduces the bitfield conversion check after fixes to the
test case. The original submission unfortunately did not comprehend
differences in architecture for the diagnostic messages, leading to
unanticipated failures in the arm build bots.

Original PR: https://github.com/llvm/llvm-project/pull/68276

Clang does not check for bitfield assignment widths, while gcc checks
this.

gcc produced a warning like so for it's -Wconversion flag:
```
$ gcc -Wconversion -c test.c
test.c: In function 'foo':
test.c:10:15: warning: conversion from 'int' to 'signed char:7' may
change value [-Wconversion]
   10 |      vxx.bf = x; // no warning
      |               ^
```

This change simply adds this check for integral types under the
-Wbitfield-conversion compiler option.




More information about the All-commits mailing list