[LLVMbugs] [Bug 10371] New: Spurious -Wunused-[x] warning within erroneous function

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Fri Jul 15 09:51:16 PDT 2011


           Summary: Spurious -Wunused-[x] warning within erroneous
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: Windows XP
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: matthieu.monrocq at gmail.com
                CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com

When a function does not parse correctly, there is a risk that some
arguments/identifiers be reported as unused; probably if they only appear in
expressions whose evaluation has been short-circuited.

Using the following short program:

  struct A;

  void sink(A,int);

  void func(A const& a, int x, int y) {
    sink(a + x, y);

Clang will correctly report an error, but it will accompany it by an incorrect

  $ clang -fsyntax-only -Wunused-parameter unused_parameter.cpp
  unused_parameter.cpp:15:11: error: invalid operands to binary expression  
('const A' and 'int')
   sink(a + x, y);
        ~ ^ ~
  unused_parameter.cpp:14:34: warning: unused parameter 'y'
  void func(A const& a, int x, int y) {
  1 warning and 1 error generated.

For reference:

  $ clang --version
  clang version 3.0 (trunk 132889)
  Target: i686-pc-mingw32
  Thread model: posix

The warning is probably emitted because of the incomplete parse of the
function, meaning that the point of use is "hidden" by the error.

>From Ted:

We should probably not emit a -Wunused-[x] warning in cases where a function
doesn't fully parse correctly.  Please file a bug.

Here it is :)

-- Matthieu

Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

More information about the llvm-bugs mailing list