From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: <3RpKhXggKCusTcebPVQNTbbTYR.PbZYVONOVTNVYfbhePRjNeR.beT@flex--gprocida.bounces.google.com> Received: from mail-wr1-x44a.google.com (mail-wr1-x44a.google.com [IPv6:2a00:1450:4864:20::44a]) by sourceware.org (Postfix) with ESMTPS id A1315385DC0C for ; Thu, 23 Apr 2020 13:04:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org A1315385DC0C Received: by mail-wr1-x44a.google.com with SMTP id d17so2795677wrr.17 for ; Thu, 23 Apr 2020 06:04:07 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:message-id:mime-version:subject:from:to:cc; bh=bj1EjFkItncjAIQqcP+Mf7HKyVRCfXLGbaF0cHbrI94=; b=GZIuFVQOptjW81xdUubbpGA1fVmrbImkML0l10A3VKLZEyFDjpgjDhaZb2OlyMlFZw w/hwImmmH+KIXAcROSvKTchgcqMxZgCtyDtCBGmvqKfiv21lCk7fBGiEQBN9Za0QzAJD +OCaRC+IJoN2oou0p9h6EWM8rzmZAWY+v9l7+HmkeP7Yb9VxqsAs9X1tY2NGnE55aeVc c+3t3m8PG5fUHKCf6X4YB/TL+XrwYbz/QNlqU26BVziYnZFGTZfsqDIqP1Hw62tvfXHJ 7mizvhFg8wNCylrGT7IYc/i8i++mLz5927dqRKISrzPpis8qymls9WxYOTO4nEgdoL/L oOQA== X-Gm-Message-State: AGi0PuaVdLZS5higV4TO4JYl6oAVQ28yNz0ZgOKNs2+gtCFo+PHIf0uh eJqX1mfiNAWQTayUmhVWooUHKu35QTE+WBrS5Qxc2jGdKwDGZPpRuO4iH9YGg+n9UaIwcFplD4X nU06hwBxs6Xl/1Cw/lUrlXuaZvDgrmuzc3dG4qo1FojwSFceeiB8DCm8AdfvJJiio0uMEBcQ= X-Google-Smtp-Source: APiQypIx1Drmr3POhcPL2EtWwmOjsbnePkfhNLR1C7VlwqmzVZs2FmMqg0NudncFXML6U7xRAb5cUGwPUoNbWg== X-Received: by 2002:a5d:5085:: with SMTP id a5mr5170329wrt.394.1587647046442; Thu, 23 Apr 2020 06:04:06 -0700 (PDT) Date: Thu, 23 Apr 2020 14:03:54 +0100 Message-Id: <20200423130356.93136-1-gprocida@google.com> Mime-Version: 1.0 X-Mailer: git-send-email 2.26.1.301.g55bc3eb7cb9-goog Subject: [RFC PATCH 0/2] Incomplete enum support From: Giuliano Procida To: libabigail@sourceware.org Cc: dodji@seketeli.org, kernel-team@android.com, gprocida@google.com, maennich@google.com Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-21.0 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libabigail@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libabigail mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 23 Apr 2020 13:04:11 -0000 Incomplete enums are heavily used in the Linux kernel source as part of interface specifications. This code appears to work, but it is lightly tested and unreviewed. It also duplicates a lot of code that is used for incomplete class and union types. There may be a significant opportunity for refactoring and shared code and data. Giuliano Procida (2): Support declaration-only enums. Add tests for declaration-only enums. include/abg-comp-filter.h | 7 + include/abg-comparison.h | 7 + include/abg-fwd.h | 26 +- include/abg-ir.h | 23 ++ src/abg-comp-filter.cc | 78 ++++- src/abg-comparison.cc | 21 +- src/abg-default-reporter.cc | 34 +- src/abg-dwarf-reader.cc | 308 +++++++++++++++++- src/abg-ir.cc | 235 ++++++++++++- tests/data/Makefile.am | 5 + .../test-decl-enum-report.txt | 17 + .../test-abidiff-exit/test-decl-enum-v0.c | 5 + .../test-abidiff-exit/test-decl-enum-v0.o | Bin 0 -> 3048 bytes .../test-abidiff-exit/test-decl-enum-v1.c | 5 + .../test-abidiff-exit/test-decl-enum-v1.o | Bin 0 -> 3048 bytes tests/test-abidiff-exit.cc | 9 + 16 files changed, 754 insertions(+), 26 deletions(-) create mode 100644 tests/data/test-abidiff-exit/test-decl-enum-report.txt create mode 100644 tests/data/test-abidiff-exit/test-decl-enum-v0.c create mode 100644 tests/data/test-abidiff-exit/test-decl-enum-v0.o create mode 100644 tests/data/test-abidiff-exit/test-decl-enum-v1.c create mode 100644 tests/data/test-abidiff-exit/test-decl-enum-v1.o -- 2.26.1.301.g55bc3eb7cb9-goog