[llvm-bugs] [Bug 39884] New: Analyzer fails to recognize C-style union struct initialization

via llvm-bugs llvm-bugs at lists.llvm.org
Tue Dec 4 17:28:11 PST 2018


            Bug ID: 39884
           Summary: Analyzer fails to recognize C-style union struct
           Product: clang
           Version: 7.0
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Static Analyzer
          Assignee: dcoughlin at apple.com
          Reporter: renat at idrisov.info
                CC: dcoughlin at apple.com, llvm-bugs at lists.llvm.org

Hi All,
I run analysis on a piece of code with:

$ clang-tidy tidy-minimal.c -checks=* --


#include <stdio.h>
#include <stdlib.h>

struct a {
  union {
    struct {
      void *b;

void *something();
void something_else(struct a *param);

void myfunction() {
  struct a c = { .b = malloc(256) };

int main() {

I get:
/.../tidy-minimal.c:18:1: warning: Potential memory leak
/.../tidy-minimal.c:21:3: note: Calling 'myfunction'
/.../tidy-minimal.c:16:23: note: Memory is allocated
  struct a c = { .b = malloc(256) };
/.../tidy-minimal.c:18:1: note: Potential memory leak

It looks like it is not handling struct initialization properly because if I
remove union -- it produces no warnings

The issue could be related to https://bugs.llvm.org/show_bug.cgi?id=35882
but in my case giving union a name does not resolve it.


You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20181205/6a2d0137/attachment.html>

More information about the llvm-bugs mailing list