aboutsummaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0042-PR-c-48265.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0042-PR-c-48265.patch')
-rw-r--r--meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0042-PR-c-48265.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0042-PR-c-48265.patch b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0042-PR-c-48265.patch
new file mode 100644
index 0000000000..bc7cfa66bb
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-4.6.0/gcc-4_6-branch-backports/0042-PR-c-48265.patch
@@ -0,0 +1,40 @@
+From ec2d33835ee5855060878da89d4051fa06af9e97 Mon Sep 17 00:00:00 2001
+From: jason <jason@138bc75d-0d04-0410-961f-82ee72b054a4>
+Date: Wed, 30 Mar 2011 02:16:37 +0000
+Subject: [PATCH 042/200] PR c++/48265
+ * pt.c (value_dependent_expression_p) [VAR_DECL]: Make sure
+ the variable is constant before looking at its initializer.
+
+git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_6-branch@171715 138bc75d-0d04-0410-961f-82ee72b054a4
+
+index da9365f..e716ca6 100644
+--- a/gcc/cp/pt.c
++++ b/gcc/cp/pt.c
+@@ -18085,10 +18085,10 @@ value_dependent_expression_p (tree expression)
+ return value_dependent_expression_p (DECL_INITIAL (expression));
+
+ case VAR_DECL:
+- /* A constant with integral or enumeration type and is initialized
++ /* A constant with literal type and is initialized
+ with an expression that is value-dependent. */
+ if (DECL_INITIAL (expression)
+- && INTEGRAL_OR_ENUMERATION_TYPE_P (TREE_TYPE (expression))
++ && decl_constant_var_p (expression)
+ && value_dependent_expression_p (DECL_INITIAL (expression)))
+ return true;
+ return false;
+new file mode 100644
+index 0000000..112389d
+--- /dev/null
++++ b/gcc/testsuite/g++.dg/cpp0x/regress/value-dep1.C
+@@ -0,0 +1,7 @@
++// PR c++/48265
++// { dg-options -std=c++0x }
++
++template < int > struct S
++{
++ S () { const int i = i; i; };
++};
+--
+1.7.0.4
+