public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c++/36852]  New: Two dimensional array in template method argument list incorrectly interpreted.
@ 2008-07-16 16:25 djh at emss dot co dot za
  2008-07-16 16:38 ` [Bug c++/36852] " paolo dot carlini at oracle dot com
                   ` (11 more replies)
  0 siblings, 12 replies; 13+ messages in thread
From: djh at emss dot co dot za @ 2008-07-16 16:25 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1557 bytes --]

We have a class more or less like this:  (please bear with me, this is only an
approximation.

class A
{
   template <class T> static T determinant4(T matrix[4][4]);
   template <class T> static T determinant3(T matrix[3][3]);
   template <class T> static T determinant2(T matrix[2][2]);
};

template <class T> 
T A::determinant3(T matrix[3][3])
{
    // do stuff
}


When this header file is included in a cpp file, its compilation with gcc 4.3.1
tells me it can't find the determinant3 method.

GCC tells me: 
common_Math.h:270: error: prototype for ‘T common_Math::determinant3(T (*)[3])’
does not match any in class ‘common_Math’
common_Math.h:179: error: candidate is: template<class T> static T
common_Math::determinant3(T (*)[3])

I have had trouble reproducing this example in an isolated environment.  What I
can tell you thought is that if you modify the array to be only of single
dimension, it compiles happily.

Also all the methods that are not 3x3 matrices, the 4x4 method for example
compiles correctly.

For this instance of the compilation, T is of type double.  It was compiled on
a 32 bit machine.


-- 
           Summary: Two dimensional array in template method argument list
                    incorrectly interpreted.
           Product: gcc
           Version: 4.3.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: djh at emss dot co dot za


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36852


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/36852] Two dimensional array in template method argument list incorrectly interpreted.
  2008-07-16 16:25 [Bug c++/36852] New: Two dimensional array in template method argument list incorrectly interpreted djh at emss dot co dot za
@ 2008-07-16 16:38 ` paolo dot carlini at oracle dot com
  2008-07-17 12:48 ` djh at emss dot co dot za
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: paolo dot carlini at oracle dot com @ 2008-07-16 16:38 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from paolo dot carlini at oracle dot com  2008-07-16 16:37 -------
We badly need a self-contained testcase (per our general guidelines) because
something trivial inspired by your PR, like the below compiles just fine.

template <class T> 
T A::determinant3(T matrix[3][3])
{
  // NB: not the real formula ;)
  return matrix[0][0] + matrix[1][1] + matrix[2][2];
}

int main()
{
  double array[3][3];

  A::determinant3(array);
}


-- 

paolo dot carlini at oracle dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |WAITING


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36852


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/36852] Two dimensional array in template method argument list incorrectly interpreted.
  2008-07-16 16:25 [Bug c++/36852] New: Two dimensional array in template method argument list incorrectly interpreted djh at emss dot co dot za
  2008-07-16 16:38 ` [Bug c++/36852] " paolo dot carlini at oracle dot com
@ 2008-07-17 12:48 ` djh at emss dot co dot za
  2008-07-17 20:25 ` [Bug c++/36852] [4.3/4.4 Regression] " pinskia at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: djh at emss dot co dot za @ 2008-07-17 12:48 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1861 bytes --]



------- Comment #2 from djh at emss dot co dot za  2008-07-17 12:47 -------
I have successfully reproduced this problem:

Create a header file with the following structure, saving it as "a.h":

class A
{
    public:
        template <class T> static T foo1(T [3][3]);
};

template <class T> T A::foo1(T t[3][3])
{
    return t[0][1];
}

Then compile it to precompiled header with GCC 4.3.1 using the following
command:"g++ -x c++-header -c a.h -o .obj/test.gch/c++"

Then create another file, say "test.cpp" that looks like this:

#include "a.h"
int main(int argc, char ** argv)
{
}

and then compile it using the following command:
"g++ -c test.cpp -include .obj/test"

This gives the output:
In file included from test.cpp:2:
a.h:1: error: redefinition of ‘class A’
a.h:2: error: previous definition of ‘class A’
a.h:8: error: prototype for ‘T A::foo1(T (*)[3])’ does not match any in class
‘A’

However, when I compile this with GCC 4.2.1 it has the following output:
In file included from test.cpp:2:
a.h:1: error: redefinition of ‘class A’
a.h:2: error: previous definition of ‘class A’
a.h:8: error: redefinition of ‘static T A::foo1(T (*)[3])’
a.h:8: error: ‘static T A::foo1(T (*)[3])’ previously declared here

As you can see GCC 4.3.1 does not match the foo1 method with any in the class. 
This is exactly the error that I am getting in our example.  This smaller
version thought, is obviously easy to fix: just add the #ifndef A, #define A
guard around the header file, and it works.  That solution thought does not
work for our real problem.


-- 

djh at emss dot co dot za changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|WAITING                     |UNCONFIRMED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36852


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/36852] [4.3/4.4 Regression] Two dimensional array in template method argument list incorrectly interpreted.
  2008-07-16 16:25 [Bug c++/36852] New: Two dimensional array in template method argument list incorrectly interpreted djh at emss dot co dot za
  2008-07-16 16:38 ` [Bug c++/36852] " paolo dot carlini at oracle dot com
  2008-07-17 12:48 ` djh at emss dot co dot za
@ 2008-07-17 20:25 ` pinskia at gcc dot gnu dot org
  2008-07-18  7:14 ` djh at emss dot co dot za
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-07-17 20:25 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from pinskia at gcc dot gnu dot org  2008-07-17 20:24 -------
So here is how to get an ICE out of the trunk.
--- t.h ----
class A
{
    public:
        template <class T> static T foo1(T [3][3]);
};

template <class T> T A::foo1(T t[3][3])
{
    return t[0][1];
}

--- t.cc ---
#include "t.h"
#include "t.h"

---- CMD ---
g++ t.h
g++ t.cc

In file included from t.cc:2:
t.h:2: error: redefinition of 'class A'
t.h:3: error: previous definition of 'class A'
t.h:8: internal compiler error: canonical types differ for identical types T
[3] and T [3]
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.

If we don't use a PCH, it works correctly.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |minor
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |diagnostic, error-recovery,
                   |                            |ice-on-invalid-code
   Last reconfirmed|0000-00-00 00:00:00         |2008-07-17 20:24:42
               date|                            |
            Summary|Two dimensional array in    |[4.3/4.4 Regression] Two
                   |template method argument    |dimensional array in
                   |list incorrectly            |template method argument
                   |interpreted.                |list incorrectly
                   |                            |interpreted.
   Target Milestone|---                         |4.3.2


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36852


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/36852] [4.3/4.4 Regression] Two dimensional array in template method argument list incorrectly interpreted.
  2008-07-16 16:25 [Bug c++/36852] New: Two dimensional array in template method argument list incorrectly interpreted djh at emss dot co dot za
                   ` (2 preceding siblings ...)
  2008-07-17 20:25 ` [Bug c++/36852] [4.3/4.4 Regression] " pinskia at gcc dot gnu dot org
@ 2008-07-18  7:14 ` djh at emss dot co dot za
  2008-07-23  4:30 ` jvdelisle at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: djh at emss dot co dot za @ 2008-07-18  7:14 UTC (permalink / raw)
  To: gcc-bugs

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 4752 bytes --]



------- Comment #4 from djh at emss dot co dot za  2008-07-18 07:13 -------
using your t.h file, the following command 
"g++ -v -save-temps  -x c++-header -c t.h -o .obj/test.gch/c++"
gives the following output
<code>
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ./configure --prefix=/opt/gcc4.3.1
Thread model: posix
gcc version 4.3.1 (GCC)
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-c' '-o' '.obj/test.gch/c++'
'-shared-libgcc' '-mtune=generic'
 /opt/gcc4.3.1/libexec/gcc/i686-pc-linux-gnu/4.3.1/cc1plus -E -quiet -v
-D_GNU_SOURCE t.h -mtune=generic -fpch-preprocess -o t.ii
ignoring nonexistent directory
"/opt/gcc4.3.1/lib/gcc/i686-pc-linux-gnu/4.3.1/../../../../i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /opt/gcc4.3.1/lib/gcc/i686-pc-linux-gnu/4.3.1/../../../../include/c++/4.3.1

/opt/gcc4.3.1/lib/gcc/i686-pc-linux-gnu/4.3.1/../../../../include/c++/4.3.1/i686-pc-linux-gnu

/opt/gcc4.3.1/lib/gcc/i686-pc-linux-gnu/4.3.1/../../../../include/c++/4.3.1/backward
 /usr/local/include
 /opt/gcc4.3.1/include
 /opt/gcc4.3.1/lib/gcc/i686-pc-linux-gnu/4.3.1/include
 /opt/gcc4.3.1/lib/gcc/i686-pc-linux-gnu/4.3.1/include-fixed
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-c' '-o' '.obj/test.gch/c++'
'-shared-libgcc' '-mtune=generic'
 /opt/gcc4.3.1/libexec/gcc/i686-pc-linux-gnu/4.3.1/cc1plus -fpreprocessed t.ii
-quiet -dumpbase t.h -mtune=generic -auxbase-strip .obj/test.gch/c++ -version
-o t.s --output-pch= .obj/test.gch/c++
GNU C++ (GCC) version 4.3.1 (i686-pc-linux-gnu)
        compiled by GNU C version 4.3.1, GMP version 4.2.2, MPFR version 2.3.1.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 769fc73960e4feb81129a017258e8f57
</code>

the t.ii file is not that interesting.  Is just the t.h file with 
# 1 "t.h"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "t.h"
added at the top.

The t.cpp file gives us the following output:
<code>
g++ -v -save-temps -include .obj/test t.cpp
Using built-in specs.
Target: i686-pc-linux-gnu
Configured with: ./configure --prefix=/opt/gcc4.3.1
Thread model: posix
gcc version 4.3.1 (GCC)
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-include' '.obj/test' '-shared-libgcc'
'-mtune=generic'
 /opt/gcc4.3.1/libexec/gcc/i686-pc-linux-gnu/4.3.1/cc1plus -E -quiet -v
-D_GNU_SOURCE -include .obj/test t.cpp -mtune=generic -fpch-preprocess -o t.ii
ignoring nonexistent directory
"/opt/gcc4.3.1/lib/gcc/i686-pc-linux-gnu/4.3.1/../../../../i686-pc-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /opt/gcc4.3.1/lib/gcc/i686-pc-linux-gnu/4.3.1/../../../../include/c++/4.3.1

/opt/gcc4.3.1/lib/gcc/i686-pc-linux-gnu/4.3.1/../../../../include/c++/4.3.1/i686-pc-linux-gnu

/opt/gcc4.3.1/lib/gcc/i686-pc-linux-gnu/4.3.1/../../../../include/c++/4.3.1/backward
 /usr/local/include
 /opt/gcc4.3.1/include
 /opt/gcc4.3.1/lib/gcc/i686-pc-linux-gnu/4.3.1/include
 /opt/gcc4.3.1/lib/gcc/i686-pc-linux-gnu/4.3.1/include-fixed
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-include' '.obj/test' '-shared-libgcc'
'-mtune=generic'
 /opt/gcc4.3.1/libexec/gcc/i686-pc-linux-gnu/4.3.1/cc1plus -fpreprocessed t.ii
-quiet -dumpbase t.cpp -mtune=generic -auxbase t -version -o t.s
GNU C++ (GCC) version 4.3.1 (i686-pc-linux-gnu)
        compiled by GNU C version 4.3.1, GMP version 4.2.2, MPFR version 2.3.1.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 769fc73960e4feb81129a017258e8f57
In file included from t.cpp:2:
t.h:1: error: redefinition of ‘class A’
t.h:2: error: previous definition of ‘class A’
t.h:7: error: prototype for ‘T A::foo1(T (*)[3])’ does not match any in class
‘A’
t.h:4: error: candidate is: template<class T> static T A::foo1(T (*)[3])
In file included from t.cpp:3:
t.h:1: error: redefinition of ‘class A’
t.h:2: error: previous definition of ‘class A’
t.h:7: error: prototype for ‘T A::foo1(T (*)[3])’ does not match any in class
‘A’
t.h:4: error: candidate is: template<class T> static T A::foo1(T (*)[3])
</code>


t.ii contains:
<code>
# 1 "t.cpp"
# 1 "<built-in>"
# 1 "<command-line>"
#pragma GCC pch_preprocess "./.obj/test.gch/c++"
# 1 "t.cpp"
# 1 "t.h" 1
class A
{
    public:
        template <class T> static T foo1(T [3][3]);
};

template <class T> T A::foo1(T t[3][3])
{
    return t[0][1];
}
# 2 "t.cpp" 2
# 1 "t.h" 1
class A
{
    public:
        template <class T> static T foo1(T [3][3]);
};

template <class T> T A::foo1(T t[3][3])
{
    return t[0][1];
}
# 2 "t.cpp" 2

</code>


this was done not with GCC trunk, but GCC 4.3.1.
Thanks


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36852


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/36852] [4.3/4.4 Regression] Two dimensional array in template method argument list incorrectly interpreted.
  2008-07-16 16:25 [Bug c++/36852] New: Two dimensional array in template method argument list incorrectly interpreted djh at emss dot co dot za
                   ` (3 preceding siblings ...)
  2008-07-18  7:14 ` djh at emss dot co dot za
@ 2008-07-23  4:30 ` jvdelisle at gcc dot gnu dot org
  2008-07-23  4:38 ` jvdelisle at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-07-23  4:30 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from jvdelisle at gcc dot gnu dot org  2008-07-23 04:30 -------
Subject: Bug 36852

Author: jvdelisle
Date: Wed Jul 23 04:29:15 2008
New Revision: 138072

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=138072
Log:
2008-07-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        PR fortran/36852
        * io/list_read.c: If variable rank is zero, do not adjust the found
        namelist object pointer.

Modified:
    trunk/libgfortran/ChangeLog
    trunk/libgfortran/io/list_read.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36852


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/36852] [4.3/4.4 Regression] Two dimensional array in template method argument list incorrectly interpreted.
  2008-07-16 16:25 [Bug c++/36852] New: Two dimensional array in template method argument list incorrectly interpreted djh at emss dot co dot za
                   ` (4 preceding siblings ...)
  2008-07-23  4:30 ` jvdelisle at gcc dot gnu dot org
@ 2008-07-23  4:38 ` jvdelisle at gcc dot gnu dot org
  2008-07-26 12:58 ` jvdelisle at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-07-23  4:38 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from jvdelisle at gcc dot gnu dot org  2008-07-23 04:37 -------
Subject: Bug 36852

Author: jvdelisle
Date: Wed Jul 23 04:36:54 2008
New Revision: 138073

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=138073
Log:
2008-07-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        PR libfortran/36852
        * gfortran.dg/namelist_52.f90: New test.

Added:
    trunk/gcc/testsuite/gfortran.dg/namelist_52.f90
Modified:
    trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36852


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/36852] [4.3/4.4 Regression] Two dimensional array in template method argument list incorrectly interpreted.
  2008-07-16 16:25 [Bug c++/36852] New: Two dimensional array in template method argument list incorrectly interpreted djh at emss dot co dot za
                   ` (5 preceding siblings ...)
  2008-07-23  4:38 ` jvdelisle at gcc dot gnu dot org
@ 2008-07-26 12:58 ` jvdelisle at gcc dot gnu dot org
  2008-07-26 13:07 ` jvdelisle at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-07-26 12:58 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from jvdelisle at gcc dot gnu dot org  2008-07-26 12:57 -------
Subject: Bug 36852

Author: jvdelisle
Date: Sat Jul 26 12:57:06 2008
New Revision: 138170

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=138170
Log:
2008-07-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        PR fortran/36852
        Backport from trunk.
        * io/list_read.c: If variable rank is zero, do not adjust the found
        namelist object pointer.

Modified:
    branches/gcc-4_3-branch/libgfortran/ChangeLog
    branches/gcc-4_3-branch/libgfortran/io/list_read.c


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36852


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/36852] [4.3/4.4 Regression] Two dimensional array in template method argument list incorrectly interpreted.
  2008-07-16 16:25 [Bug c++/36852] New: Two dimensional array in template method argument list incorrectly interpreted djh at emss dot co dot za
                   ` (6 preceding siblings ...)
  2008-07-26 12:58 ` jvdelisle at gcc dot gnu dot org
@ 2008-07-26 13:07 ` jvdelisle at gcc dot gnu dot org
  2008-07-29 13:30 ` jakub at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: jvdelisle at gcc dot gnu dot org @ 2008-07-26 13:07 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from jvdelisle at gcc dot gnu dot org  2008-07-26 13:07 -------
Subject: Bug 36852

Author: jvdelisle
Date: Sat Jul 26 13:06:21 2008
New Revision: 138172

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=138172
Log:
2008-07-26  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

        PR libfortran/36852
        * gfortran.dg/namelist_52.f90: New test.

Added:
    branches/gcc-4_3-branch/gcc/testsuite/gfortran.dg/namelist_52.f90
Modified:
    branches/gcc-4_3-branch/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36852


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/36852] [4.3/4.4 Regression] Two dimensional array in template method argument list incorrectly interpreted.
  2008-07-16 16:25 [Bug c++/36852] New: Two dimensional array in template method argument list incorrectly interpreted djh at emss dot co dot za
                   ` (7 preceding siblings ...)
  2008-07-26 13:07 ` jvdelisle at gcc dot gnu dot org
@ 2008-07-29 13:30 ` jakub at gcc dot gnu dot org
  2008-07-29 16:31 ` jakub at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: jakub at gcc dot gnu dot org @ 2008-07-29 13:30 UTC (permalink / raw)
  To: gcc-bugs



-- 

jakub at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |jakub at gcc dot gnu dot org
                   |dot org                     |
             Status|NEW                         |ASSIGNED
   Last reconfirmed|2008-07-17 20:24:42         |2008-07-29 13:30:04
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36852


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/36852] [4.3/4.4 Regression] Two dimensional array in template method argument list incorrectly interpreted.
  2008-07-16 16:25 [Bug c++/36852] New: Two dimensional array in template method argument list incorrectly interpreted djh at emss dot co dot za
                   ` (8 preceding siblings ...)
  2008-07-29 13:30 ` jakub at gcc dot gnu dot org
@ 2008-07-29 16:31 ` jakub at gcc dot gnu dot org
  2008-07-29 16:41 ` jakub at gcc dot gnu dot org
  2008-07-29 20:41 ` jakub at gcc dot gnu dot org
  11 siblings, 0 replies; 13+ messages in thread
From: jakub at gcc dot gnu dot org @ 2008-07-29 16:31 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from jakub at gcc dot gnu dot org  2008-07-29 16:30 -------
Subject: Bug 36852

Author: jakub
Date: Tue Jul 29 16:29:33 2008
New Revision: 138250

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=138250
Log:
        PR c++/36852
        * tree.c (cplus_array_hash, build_cplus_array_type_1): Hash on
        TYPE_UID instead of pointers.

        * g++.dg/pch/array-1.C: New test.
        * g++.dg/pch/array-1.Hs: New file.

Added:
    trunk/gcc/testsuite/g++.dg/pch/array-1.C
    trunk/gcc/testsuite/g++.dg/pch/array-1.Hs
Modified:
    trunk/gcc/cp/ChangeLog
    trunk/gcc/cp/tree.c
    trunk/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36852


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/36852] [4.3/4.4 Regression] Two dimensional array in template method argument list incorrectly interpreted.
  2008-07-16 16:25 [Bug c++/36852] New: Two dimensional array in template method argument list incorrectly interpreted djh at emss dot co dot za
                   ` (9 preceding siblings ...)
  2008-07-29 16:31 ` jakub at gcc dot gnu dot org
@ 2008-07-29 16:41 ` jakub at gcc dot gnu dot org
  2008-07-29 20:41 ` jakub at gcc dot gnu dot org
  11 siblings, 0 replies; 13+ messages in thread
From: jakub at gcc dot gnu dot org @ 2008-07-29 16:41 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from jakub at gcc dot gnu dot org  2008-07-29 16:41 -------
Subject: Bug 36852

Author: jakub
Date: Tue Jul 29 16:40:15 2008
New Revision: 138253

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=138253
Log:
        PR c++/36852
        * tree.c (cplus_array_hash, build_cplus_array_type_1): Hash on
        TYPE_UID instead of pointers.

        * g++.dg/pch/array-1.C: New test.
        * g++.dg/pch/array-1.Hs: New file.

Added:
    branches/gcc-4_3-branch/gcc/testsuite/g++.dg/pch/array-1.C
    branches/gcc-4_3-branch/gcc/testsuite/g++.dg/pch/array-1.Hs
Modified:
    branches/gcc-4_3-branch/gcc/cp/ChangeLog
    branches/gcc-4_3-branch/gcc/cp/tree.c
    branches/gcc-4_3-branch/gcc/testsuite/ChangeLog


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36852


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [Bug c++/36852] [4.3/4.4 Regression] Two dimensional array in template method argument list incorrectly interpreted.
  2008-07-16 16:25 [Bug c++/36852] New: Two dimensional array in template method argument list incorrectly interpreted djh at emss dot co dot za
                   ` (10 preceding siblings ...)
  2008-07-29 16:41 ` jakub at gcc dot gnu dot org
@ 2008-07-29 20:41 ` jakub at gcc dot gnu dot org
  11 siblings, 0 replies; 13+ messages in thread
From: jakub at gcc dot gnu dot org @ 2008-07-29 20:41 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from jakub at gcc dot gnu dot org  2008-07-29 20:40 -------
Fixed.


-- 

jakub at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36852


^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2008-07-29 20:41 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-07-16 16:25 [Bug c++/36852] New: Two dimensional array in template method argument list incorrectly interpreted djh at emss dot co dot za
2008-07-16 16:38 ` [Bug c++/36852] " paolo dot carlini at oracle dot com
2008-07-17 12:48 ` djh at emss dot co dot za
2008-07-17 20:25 ` [Bug c++/36852] [4.3/4.4 Regression] " pinskia at gcc dot gnu dot org
2008-07-18  7:14 ` djh at emss dot co dot za
2008-07-23  4:30 ` jvdelisle at gcc dot gnu dot org
2008-07-23  4:38 ` jvdelisle at gcc dot gnu dot org
2008-07-26 12:58 ` jvdelisle at gcc dot gnu dot org
2008-07-26 13:07 ` jvdelisle at gcc dot gnu dot org
2008-07-29 13:30 ` jakub at gcc dot gnu dot org
2008-07-29 16:31 ` jakub at gcc dot gnu dot org
2008-07-29 16:41 ` jakub at gcc dot gnu dot org
2008-07-29 20:41 ` jakub at gcc dot gnu dot org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).