Bug 54583 - Spurious warning: value computed is not used with variable-size array
Summary: Spurious warning: value computed is not used with variable-size array
Status: RESOLVED FIXED
Alias: None
Product: gcc
Classification: Unclassified
Component: c++ (show other bugs)
Version: 4.6.3
: P3 normal
Target Milestone: 4.8.0
Assignee: Paolo Carlini
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-09-14 20:17 UTC by Alex
Modified: 2012-10-31 19:16 UTC (History)
0 users

See Also:
Host:
Target:
Build:
Known to work:
Known to fail:
Last reconfirmed: 2012-10-30 00:00:00


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alex 2012-09-14 20:17:11 UTC
When declaring a two-dimensional array with variable-length second dimension, there is a warning "value computed is not used". For example:

$ cat warn1.cpp
void fred(){
  int n=10;
  double (*x)[n];
}
$ g++ -c warn1.cpp -Wall
warn1.cpp: In function ‘void fred()’:
warn1.cpp:3:16: warning: value computed is not used [-Wunused-value]
warn1.cpp:3:12: warning: unused variable ‘x’ [-Wunused-variable]

The second warning ("unused variable") is to be expected of course, and is not the subject of this bug report. I don't believe the fact that x isn't used is relevant to the first warning, so code that uses x is omitted in the above example in the interests of constructing a minimal example. But to check, here is a longer example that uses x:

$ cat warn2.cpp
#include <stdio.h>
#include <stdlib.h>

#define M 10
void fred(){
  int a,b,n;
  n=10;
  double (*x)[n];
  x=(double(*)[n])malloc(M*n*sizeof(double));
  for(a=0;a<M;a++)for(b=0;b<n;b++)x[a][b]=3;
  for(a=0;a<M;a++)for(b=0;b<n;b++)printf("%g\n",x[a][b]);
}
$ g++ -c warn2.cpp -Wall
warn2.cpp: In function ‘void fred()’:
warn2.cpp:8:16: warning: value computed is not used [-Wunused-value]


g++ --version
g++ (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
...
Comment 1 Paolo Carlini 2012-10-30 01:07:27 UTC
Mine.
Comment 2 paolo@gcc.gnu.org 2012-10-31 19:14:44 UTC
Author: paolo
Date: Wed Oct 31 19:14:39 2012
New Revision: 193043

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=193043
Log:
/cp
2012-10-31  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54583
	* tree.c (build_cplus_array_type): Set TREE_NO_WARNING on the
	TYPE_SIZE of VLAs.

/testsuite
2012-10-31  Paolo Carlini  <paolo.carlini@oracle.com>

	PR c++/54583
	* g++.dg/ext/vla13.C: New.

Added:
    trunk/gcc/testsuite/g++.dg/ext/vla13.C
Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/tree.c
    trunk/gcc/testsuite/ChangeLog
Comment 3 Paolo Carlini 2012-10-31 19:16:40 UTC
Fixed for 4.8.0.