~ubuntu-branches/ubuntu/quantal/gcc-4.7/quantal

« back to all changes in this revision

Viewing changes to debian/patches/svn-updates-linaro.diff

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2012-07-14 01:12:20 UTC
  • mfrom: (15.1.17 sid)
  • Revision ID: package-import@ubuntu.com-20120714011220-f0gdkew1vm9tph15
Tags: 4.7.1-5ubuntu1
Merge with Debian.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# DP: updates from the 4.7 branch upto 20120707 (r189352).
 
1
# DP: updates from the 4.7 branch upto 20120713 (r189464).
2
2
 
3
3
last_updated()
4
4
{
5
5
        cat > ${dir}LAST_UPDATED <<EOF
6
 
Sun Jul  8 00:46:53 CEST 2012
7
 
Sat Jul  7 22:46:53 UTC 2012 (revision 189352)
 
6
Fri Jul 13 16:39:44 CEST 2012
 
7
Fri Jul 13 14:39:44 UTC 2012 (revision 189464)
8
8
EOF
9
9
}
10
10
 
12
12
        | sed -r 's,^--- (\S+)\t(\S+)(.*)$,--- a/src/\1\t\2,;s,^\+\+\+ (\S+)\t(\S+)(.*)$,+++ b/src/\1\t\2,' \
13
13
        | awk '/^Index:.*\.(class|texi)/ {skip=1; next} /^Index:/ { skip=0 } skip==0'
14
14
 
 
15
Index: libstdc++-v3/include/debug/unordered_map
 
16
===================================================================
 
17
--- a/src/libstdc++-v3/include/debug/unordered_map      (revision
 
18
+++ b/src/libstdc++-v3/include/debug/unordered_map      (revision
 
19
@@ -247,8 +247,8 @@
 
20
       }
 
21
 
 
22
       template<typename _Pair, typename = typename
 
23
-              std::enable_if<std::is_convertible<_Pair,
 
24
-                                                 value_type>::value>::type>
 
25
+              std::enable_if<std::is_constructible<value_type,
 
26
+                                                   _Pair&&>::value>::type>
 
27
        std::pair<iterator, bool>
 
28
        insert(_Pair&& __obj)
 
29
        {
 
30
@@ -260,8 +260,8 @@
 
31
        }
 
32
 
 
33
       template<typename _Pair, typename = typename
 
34
-              std::enable_if<std::is_convertible<_Pair,
 
35
-                                                 value_type>::value>::type>
 
36
+              std::enable_if<std::is_constructible<value_type,
 
37
+                                                   _Pair&&>::value>::type>
 
38
        iterator
 
39
        insert(const_iterator __hint, _Pair&& __obj)
 
40
        {
 
41
@@ -661,8 +661,8 @@
 
42
       }
 
43
 
 
44
       template<typename _Pair, typename = typename
 
45
-              std::enable_if<std::is_convertible<_Pair,
 
46
-                                                 value_type>::value>::type>
 
47
+              std::enable_if<std::is_constructible<value_type,
 
48
+                                                   _Pair&&>::value>::type>
 
49
        iterator
 
50
        insert(_Pair&& __obj)
 
51
        {
 
52
@@ -673,8 +673,8 @@
 
53
        }
 
54
 
 
55
       template<typename _Pair, typename = typename
 
56
-              std::enable_if<std::is_convertible<_Pair,
 
57
-                                                 value_type>::value>::type>
 
58
+              std::enable_if<std::is_constructible<value_type,
 
59
+                                                   _Pair&&>::value>::type>
 
60
        iterator
 
61
        insert(const_iterator __hint, _Pair&& __obj)
 
62
        {
 
63
Index: libstdc++-v3/include/debug/map.h
 
64
===================================================================
 
65
--- a/src/libstdc++-v3/include/debug/map.h      (revision
 
66
+++ b/src/libstdc++-v3/include/debug/map.h      (revision
 
67
@@ -212,8 +212,8 @@
 
68
 
 
69
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
 
70
       template<typename _Pair, typename = typename
 
71
-              std::enable_if<std::is_convertible<_Pair,
 
72
-                                                 value_type>::value>::type>
 
73
+              std::enable_if<std::is_constructible<value_type,
 
74
+                                                   _Pair&&>::value>::type>
 
75
         std::pair<iterator, bool>
 
76
         insert(_Pair&& __x)
 
77
         {
 
78
@@ -243,8 +243,8 @@
 
79
 
 
80
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
 
81
       template<typename _Pair, typename = typename
 
82
-              std::enable_if<std::is_convertible<_Pair,
 
83
-                                                 value_type>::value>::type>
 
84
+              std::enable_if<std::is_constructible<value_type,
 
85
+                                                   _Pair&&>::value>::type>
 
86
         iterator
 
87
         insert(const_iterator __position, _Pair&& __x)
 
88
         {
 
89
Index: libstdc++-v3/include/debug/multimap.h
 
90
===================================================================
 
91
--- a/src/libstdc++-v3/include/debug/multimap.h (revision
 
92
+++ b/src/libstdc++-v3/include/debug/multimap.h (revision
 
93
@@ -200,8 +200,8 @@
 
94
 
 
95
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
 
96
       template<typename _Pair, typename = typename
 
97
-              std::enable_if<std::is_convertible<_Pair,
 
98
-                                                 value_type>::value>::type>
 
99
+              std::enable_if<std::is_constructible<value_type,
 
100
+                                                   _Pair&&>::value>::type>
 
101
         iterator
 
102
         insert(_Pair&& __x)
 
103
         { return iterator(_Base::insert(std::forward<_Pair>(__x)), this); }
 
104
@@ -226,8 +226,8 @@
 
105
 
 
106
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
 
107
       template<typename _Pair, typename = typename
 
108
-              std::enable_if<std::is_convertible<_Pair,
 
109
-                                                 value_type>::value>::type>
 
110
+              std::enable_if<std::is_constructible<value_type,
 
111
+                                                   _Pair&&>::value>::type>
 
112
         iterator
 
113
         insert(const_iterator __position, _Pair&& __x)
 
114
         {
15
115
Index: libstdc++-v3/include/std/thread
16
116
===================================================================
17
117
--- a/src/libstdc++-v3/include/std/thread       (revision
155
255
       _S_destroy(_Rm* __mx)
156
256
       { __gthread_mutex_destroy(&__mx->actual); }
157
257
 
 
258
Index: libstdc++-v3/include/profile/unordered_map
 
259
===================================================================
 
260
--- a/src/libstdc++-v3/include/profile/unordered_map    (revision
 
261
+++ b/src/libstdc++-v3/include/profile/unordered_map    (revision
 
262
@@ -1,6 +1,6 @@
 
263
 // Profiling unordered_map/unordered_multimap implementation -*- C++ -*-
 
264
 
 
265
-// Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
 
266
+// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
 
267
 //
 
268
 // This file is part of the GNU ISO C++ Library.  This library is free
 
269
 // software; you can redistribute it and/or modify it under the
 
270
@@ -214,8 +214,8 @@
 
271
       }
 
272
 
 
273
       template<typename _Pair, typename = typename
 
274
-              std::enable_if<std::is_convertible<_Pair,
 
275
-                                                 value_type>::value>::type>
 
276
+              std::enable_if<std::is_constructible<value_type,
 
277
+                                                   _Pair&&>::value>::type>
 
278
         std::pair<iterator, bool>
 
279
         insert(_Pair&& __obj)
 
280
         {
 
281
@@ -227,8 +227,8 @@
 
282
        }
 
283
 
 
284
       template<typename _Pair, typename = typename
 
285
-              std::enable_if<std::is_convertible<_Pair,
 
286
-                                                 value_type>::value>::type>
 
287
+              std::enable_if<std::is_constructible<value_type,
 
288
+                                                   _Pair&&>::value>::type>
 
289
         iterator
 
290
         insert(const_iterator __iter, _Pair&& __v)
 
291
         { 
 
292
@@ -503,8 +503,8 @@
 
293
       }
 
294
 
 
295
       template<typename _Pair, typename = typename
 
296
-              std::enable_if<std::is_convertible<_Pair,
 
297
-                                                 value_type>::value>::type>
 
298
+              std::enable_if<std::is_constructible<value_type,
 
299
+                                                   _Pair&&>::value>::type>
 
300
         iterator
 
301
         insert(_Pair&& __obj)
 
302
         {
 
303
@@ -515,8 +515,8 @@
 
304
        }
 
305
 
 
306
       template<typename _Pair, typename = typename
 
307
-              std::enable_if<std::is_convertible<_Pair,
 
308
-                                                 value_type>::value>::type>
 
309
+              std::enable_if<std::is_constructible<value_type,
 
310
+                                                   _Pair&&>::value>::type>
 
311
         iterator
 
312
         insert(const_iterator __iter, _Pair&& __v)
 
313
         {
 
314
Index: libstdc++-v3/include/profile/map.h
 
315
===================================================================
 
316
--- a/src/libstdc++-v3/include/profile/map.h    (revision
 
317
+++ b/src/libstdc++-v3/include/profile/map.h    (revision
 
318
@@ -1,6 +1,6 @@
 
319
 // Profiling map implementation -*- C++ -*-
 
320
 
 
321
-// Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
 
322
+// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
 
323
 //
 
324
 // This file is part of the GNU ISO C++ Library.  This library is free
 
325
 // software; you can redistribute it and/or modify it under the
 
326
@@ -248,8 +248,8 @@
 
327
 
 
328
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
 
329
       template<typename _Pair, typename = typename
 
330
-              std::enable_if<std::is_convertible<_Pair,
 
331
-                                                 value_type>::value>::type>
 
332
+              std::enable_if<std::is_constructible<value_type,
 
333
+                                                   _Pair&&>::value>::type>
 
334
         std::pair<iterator, bool>
 
335
         insert(_Pair&& __x)
 
336
         {
 
337
@@ -289,8 +289,8 @@
 
338
 
 
339
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
 
340
       template<typename _Pair, typename = typename
 
341
-              std::enable_if<std::is_convertible<_Pair,
 
342
-                                                 value_type>::value>::type>
 
343
+              std::enable_if<std::is_constructible<value_type,
 
344
+                                                   _Pair&&>::value>::type>
 
345
         iterator
 
346
         insert(const_iterator __position, _Pair&& __x)
 
347
         {
 
348
Index: libstdc++-v3/include/profile/multimap.h
 
349
===================================================================
 
350
--- a/src/libstdc++-v3/include/profile/multimap.h       (revision
 
351
+++ b/src/libstdc++-v3/include/profile/multimap.h       (revision
 
352
@@ -1,6 +1,6 @@
 
353
 // Profiling multimap implementation -*- C++ -*-
 
354
 
 
355
-// Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
 
356
+// Copyright (C) 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
 
357
 //
 
358
 // This file is part of the GNU ISO C++ Library.  This library is free
 
359
 // software; you can redistribute it and/or modify it under the
 
360
@@ -186,8 +186,8 @@
 
361
 
 
362
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
 
363
       template<typename _Pair, typename = typename
 
364
-              std::enable_if<std::is_convertible<_Pair,
 
365
-                                                 value_type>::value>::type>
 
366
+              std::enable_if<std::is_constructible<value_type,
 
367
+                                                   _Pair&&>::value>::type>
 
368
         iterator
 
369
         insert(_Pair&& __x)
 
370
         { return iterator(_Base::insert(std::forward<_Pair>(__x))); }
 
371
@@ -209,8 +209,8 @@
 
372
 
 
373
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
 
374
       template<typename _Pair, typename = typename
 
375
-              std::enable_if<std::is_convertible<_Pair,
 
376
-                                                 value_type>::value>::type>
 
377
+              std::enable_if<std::is_constructible<value_type,
 
378
+                                                   _Pair&&>::value>::type>
 
379
         iterator
 
380
         insert(const_iterator __position, _Pair&& __x)
 
381
         { return iterator(_Base::insert(__position,
 
382
Index: libstdc++-v3/include/bits/hashtable.h
 
383
===================================================================
 
384
--- a/src/libstdc++-v3/include/bits/hashtable.h (revision
 
385
+++ b/src/libstdc++-v3/include/bits/hashtable.h (revision
 
386
@@ -550,8 +550,8 @@
 
387
 
 
388
       template<typename _Pair, typename = typename
 
389
        std::enable_if<__and_<integral_constant<bool, !__constant_iterators>,
 
390
-                             std::is_convertible<_Pair,
 
391
-                                                 value_type>>::value>::type>
 
392
+                             std::is_constructible<value_type,
 
393
+                                                   _Pair&&>>::value>::type>
 
394
        _Insert_Return_Type
 
395
        insert(_Pair&& __v)
 
396
        { return _M_insert(std::forward<_Pair>(__v),
 
397
@@ -559,8 +559,8 @@
 
398
 
 
399
       template<typename _Pair, typename = typename
 
400
         std::enable_if<__and_<integral_constant<bool, !__constant_iterators>,
 
401
-                             std::is_convertible<_Pair,
 
402
-                                                 value_type>>::value>::type>
 
403
+                             std::is_constructible<value_type,
 
404
+                                                   _Pair&&>>::value>::type>
 
405
        iterator
 
406
        insert(const_iterator, _Pair&& __v)
 
407
        { return _Insert_Conv_Type()(insert(std::forward<_Pair>(__v))); }
158
408
Index: libstdc++-v3/include/bits/stl_list.h
159
409
===================================================================
160
410
--- a/src/libstdc++-v3/include/bits/stl_list.h  (revision
323
573
     }
324
574
 
325
575
   /**
 
576
Index: libstdc++-v3/include/bits/stl_map.h
 
577
===================================================================
 
578
--- a/src/libstdc++-v3/include/bits/stl_map.h   (revision
 
579
+++ b/src/libstdc++-v3/include/bits/stl_map.h   (revision
 
580
@@ -1,7 +1,7 @@
 
581
 // Map implementation -*- C++ -*-
 
582
 
 
583
 // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
 
584
-// 2011 Free Software Foundation, Inc.
 
585
+// 2011, 2012 Free Software Foundation, Inc.
 
586
 //
 
587
 // This file is part of the GNU ISO C++ Library.  This library is free
 
588
 // software; you can redistribute it and/or modify it under the
 
589
@@ -524,8 +524,8 @@
 
590
 
 
591
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
 
592
       template<typename _Pair, typename = typename
 
593
-              std::enable_if<std::is_convertible<_Pair,
 
594
-                                                 value_type>::value>::type>
 
595
+              std::enable_if<std::is_constructible<value_type,
 
596
+                                                   _Pair&&>::value>::type>
 
597
         std::pair<iterator, bool>
 
598
         insert(_Pair&& __x)
 
599
         { return _M_t._M_insert_unique(std::forward<_Pair>(__x)); }
 
600
@@ -577,8 +577,8 @@
 
601
 
 
602
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
 
603
       template<typename _Pair, typename = typename
 
604
-              std::enable_if<std::is_convertible<_Pair,
 
605
-                                                 value_type>::value>::type>
 
606
+              std::enable_if<std::is_constructible<value_type,
 
607
+                                                   _Pair&&>::value>::type>
 
608
         iterator
 
609
         insert(const_iterator __position, _Pair&& __x)
 
610
         { return _M_t._M_insert_unique_(__position,
 
611
Index: libstdc++-v3/include/bits/stl_multimap.h
 
612
===================================================================
 
613
--- a/src/libstdc++-v3/include/bits/stl_multimap.h      (revision
 
614
+++ b/src/libstdc++-v3/include/bits/stl_multimap.h      (revision
 
615
@@ -1,7 +1,7 @@
 
616
 // Multimap implementation -*- C++ -*-
 
617
 
 
618
 // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
 
619
-// 2011 Free Software Foundation, Inc.
 
620
+// 2011, 2012 Free Software Foundation, Inc.
 
621
 //
 
622
 // This file is part of the GNU ISO C++ Library.  This library is free
 
623
 // software; you can redistribute it and/or modify it under the
 
624
@@ -445,8 +445,8 @@
 
625
 
 
626
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
 
627
       template<typename _Pair, typename = typename
 
628
-              std::enable_if<std::is_convertible<_Pair,
 
629
-                                                 value_type>::value>::type>
 
630
+              std::enable_if<std::is_constructible<value_type,
 
631
+                                                   _Pair&&>::value>::type>
 
632
         iterator
 
633
         insert(_Pair&& __x)
 
634
         { return _M_t._M_insert_equal(std::forward<_Pair>(__x)); }
 
635
@@ -482,8 +482,8 @@
 
636
 
 
637
 #ifdef __GXX_EXPERIMENTAL_CXX0X__
 
638
       template<typename _Pair, typename = typename
 
639
-              std::enable_if<std::is_convertible<_Pair,
 
640
-                                                 value_type>::value>::type>
 
641
+              std::enable_if<std::is_constructible<value_type,
 
642
+                                                   _Pair&&>::value>::type>
 
643
         iterator
 
644
         insert(const_iterator __position, _Pair&& __x)
 
645
         { return _M_t._M_insert_equal_(__position,
 
646
Index: libstdc++-v3/include/bits/stl_pair.h
 
647
===================================================================
 
648
--- a/src/libstdc++-v3/include/bits/stl_pair.h  (revision
 
649
+++ b/src/libstdc++-v3/include/bits/stl_pair.h  (revision
 
650
@@ -1,7 +1,7 @@
 
651
 // Pair implementation -*- C++ -*-
 
652
 
 
653
 // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
 
654
-// 2010, 2011
 
655
+// 2010, 2011, 2012
 
656
 // Free Software Foundation, Inc.
 
657
 //
 
658
 // This file is part of the GNU ISO C++ Library.  This library is free
 
659
@@ -117,14 +117,8 @@
 
660
        : first(__p.first), second(__p.second) { }
 
661
 
 
662
       constexpr pair(const pair&) = default;
 
663
+      constexpr pair(pair&&) = default;
 
664
 
 
665
-      // XXX Defaulted?!? Breaks std::map!!!
 
666
-      pair(pair&& __p)
 
667
-      noexcept(__and_<is_nothrow_move_constructible<_T1>,
 
668
-                     is_nothrow_move_constructible<_T2>>::value)
 
669
-      : first(std::forward<first_type>(__p.first)),
 
670
-       second(std::forward<second_type>(__p.second)) { }
 
671
-
 
672
       // DR 811.
 
673
       template<class _U1, class = typename
 
674
               enable_if<is_convertible<_U1, _T1>::value>::type>
326
675
Index: libstdc++-v3/include/bits/list.tcc
327
676
===================================================================
328
677
--- a/src/libstdc++-v3/include/bits/list.tcc    (revision
410
759
===================================================================
411
760
--- a/src/libstdc++-v3/ChangeLog        (revision
412
761
+++ b/src/libstdc++-v3/ChangeLog        (revision
413
 
@@ -1,3 +1,52 @@
 
762
@@ -1,3 +1,71 @@
 
763
+2012-07-13  Paolo Carlini  <paolo.carlini@oracle.com>
 
764
+
 
765
+       PR libstdc++/53657
 
766
+       * include/bits/stl_pair.h (pair<>::pair(pair&&)): Declare defaulted,
 
767
+       per C++11.
 
768
+       * include/bits/stl_map.h (map<>::insert(_Pair&&), map<>::insert
 
769
+       (const_iterator, _Pair&&)): Constrain with std::is_constructible,
 
770
+       per LWG2005.
 
771
+       * include/bits/stl_multimap.h (multimap<>::insert(_Pair&&),
 
772
+       multimap<>::insert(const_iterator, _Pair&&)): Likewise.
 
773
+       * include/bits/hashtable_policy.h (_Insert<>::insert(_Pair&&),
 
774
+       _Insert<>::insert(const_iterator, _Pair&&)): Likewise.
 
775
+       * include/debug/unordered_map: Adjust.
 
776
+       * include/debug/map.h: Likewise.
 
777
+       * include/debug/multimap.h: Likewise.
 
778
+       * include/profile/unordered_map: Likewise.
 
779
+       * include/profile/map.h: Likewise.
 
780
+       * include/profile/multimap.h: Likewise.
 
781
+
414
782
+2012-07-07  Jonathan Wakely  <jwakely.gcc@gmail.com>
415
783
+
416
784
+       PR libstdc++/53578
668
1036
+++ b/src/gcc/DATESTAMP (revision
669
1037
@@ -1 +1 @@
670
1038
-20120701
671
 
+20120707
 
1039
+20120713
672
1040
Index: gcc/tree.c
673
1041
===================================================================
674
1042
--- a/src/gcc/tree.c    (revision
675
1043
+++ b/src/gcc/tree.c    (revision
676
 
@@ -4852,7 +4852,15 @@
 
1044
@@ -1617,7 +1617,7 @@
 
1045
     {
 
1046
     case INTEGER_TYPE: case ENUMERAL_TYPE: case BOOLEAN_TYPE:
 
1047
     case POINTER_TYPE: case REFERENCE_TYPE:
 
1048
-    case OFFSET_TYPE:
 
1049
+    case OFFSET_TYPE: case NULLPTR_TYPE:
 
1050
       return build_int_cst (type, 0);
 
1051
 
 
1052
     case REAL_TYPE:
 
1053
@@ -2922,6 +2922,7 @@
 
1054
     case METHOD_TYPE:
 
1055
     case FUNCTION_TYPE:
 
1056
     case VECTOR_TYPE:
 
1057
+    case NULLPTR_TYPE:
 
1058
       return false;
 
1059
 
 
1060
     case INTEGER_TYPE:
 
1061
@@ -4852,7 +4853,15 @@
677
1062
       fld_worklist_push (TYPE_MAIN_VARIANT (t), fld);
678
1063
       /* Do not walk TYPE_NEXT_VARIANT.  We do not stream it and thus
679
1064
          do not and want not to reach unused variants this way.  */
690
1075
       /* Do not walk TYPE_CANONICAL.  We do not stream it and thus do not
691
1076
         and want not to reach unused types this way.  */
692
1077
 
 
1078
@@ -6125,6 +6134,7 @@
 
1079
     case COMPLEX_TYPE:
 
1080
     case POINTER_TYPE:
 
1081
     case REFERENCE_TYPE:
 
1082
+    case NULLPTR_TYPE:
 
1083
       return 1;
 
1084
 
 
1085
     case VECTOR_TYPE:
693
1086
Index: gcc/tree-chrec.c
694
1087
===================================================================
695
1088
--- a/src/gcc/tree-chrec.c      (revision
725
1118
===================================================================
726
1119
--- a/src/gcc/ChangeLog (revision
727
1120
+++ b/src/gcc/ChangeLog (revision
728
 
@@ -1,3 +1,129 @@
 
1121
@@ -1,3 +1,152 @@
 
1122
+2012-07-10  Uros Bizjak  <ubizjak@gmail.com>
 
1123
+
 
1124
+       Backport from mainline
 
1125
+       2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
 
1126
+
 
1127
+       PR target/53811
 
1128
+       * config/i386/i386.c (x86_output_mi_thunk): Check if fnaddr satisfies
 
1129
+       sibcall_insn_operand.  Move it to a temporary register if not.
 
1130
+
 
1131
+       2012-07-06  Uros Bizjak  <ubizjak@gmail.com>
 
1132
+
 
1133
+       PR target/53853
 
1134
+       * config/i386/i386.c (x86_output_mi_thunk): For CM_LARGE_PIC model,
 
1135
+       emit PIC sequence for fnaddr symbol reference in advance.
 
1136
+
 
1137
+2012-07-09  Jason Merrill  <jason@redhat.com>
 
1138
+
 
1139
+       PR c++/53882
 
1140
+       * tree.c (type_contains_placeholder_1): Handle NULLPTR_TYPE.
 
1141
+       (type_hash_eq): Likewise.
 
1142
+
 
1143
+       PR c++/53826
 
1144
+       * tree.c (build_zero_cst): Handle NULLPTR_TYPE.
 
1145
+
729
1146
+2012-07-07  Ulrich Weigand  <ulrich.weigand@linaro.org>
730
1147
+
731
1148
+       * combine.c (force_to_mode) [LSHIFTRT]: Avoid undefined behaviour
749
1166
+       2012-03-30  Richard Guenther  <rguenther@suse.de>
750
1167
+
751
1168
+       PR middle-end/52786
752
 
+       * double-int.c (rshift_double): Remove not needed
753
 
+       cast.
 
1169
+       * double-int.c (rshift_double): Remove not needed cast.
754
1170
+
755
1171
+       2012-03-28  Richard Guenther  <rguenther@suse.de>
756
1172
+
855
1271
 2012-06-29  Eric Botcazou  <ebotcazou@adacore.com>
856
1272
 
857
1273
        * tree-eh.c (lower_try_finally_switch): Really put the location of the
 
1274
Index: gcc/testsuite/gcc.target/arm/di-longlong64-sync-withhelpers.c
 
1275
===================================================================
 
1276
--- a/src/gcc/testsuite/gcc.target/arm/di-longlong64-sync-withhelpers.c (revision
 
1277
+++ b/src/gcc/testsuite/gcc.target/arm/di-longlong64-sync-withhelpers.c (revision
 
1278
@@ -2,8 +2,8 @@
 
1279
 /* { dg-require-effective-target arm_arch_v5_ok } */
 
1280
 /* { dg-options "-std=gnu99" } */
 
1281
 /* { dg-add-options arm_arch_v5 } */
 
1282
-/* { dg-message "note: '__sync_fetch_and_nand' changed semantics in GCC 4.4" "" { target *-*-* } 0 } */
 
1283
-/* { dg-message "note: '__sync_nand_and_fetch' changed semantics in GCC 4.4" "" { target *-*-* } 0 } */
 
1284
+/* { dg-message "note: '__sync_fetch_and_nand' changed semantics in GCC 4.4" "fetch_and_nand" { target *-*-* } 0 } */
 
1285
+/* { dg-message "note: '__sync_nand_and_fetch' changed semantics in GCC 4.4" "nand_and_fetch" { target *-*-* } 0 } */
 
1286
 /* { dg-message "file included" "In file included" { target *-*-* } 0 } */
 
1287
 
 
1288
 #include "../../gcc.dg/di-longlong64-sync-1.c"
 
1289
Index: gcc/testsuite/gcc.target/arm/di-longlong64-sync-withldrexd.c
 
1290
===================================================================
 
1291
--- a/src/gcc/testsuite/gcc.target/arm/di-longlong64-sync-withldrexd.c  (revision
 
1292
+++ b/src/gcc/testsuite/gcc.target/arm/di-longlong64-sync-withldrexd.c  (revision
 
1293
@@ -3,8 +3,8 @@
 
1294
 /* { dg-options "-marm -std=gnu99" } */
 
1295
 /* { dg-require-effective-target arm_arch_v6k_ok } */
 
1296
 /* { dg-add-options arm_arch_v6k } */
 
1297
-/* { dg-message "note: '__sync_fetch_and_nand' changed semantics in GCC 4.4" "" { target *-*-* } 0 } */
 
1298
-/* { dg-message "note: '__sync_nand_and_fetch' changed semantics in GCC 4.4" "" { target *-*-* } 0 } */
 
1299
+/* { dg-message "note: '__sync_fetch_and_nand' changed semantics in GCC 4.4" "fetch_and_nand" { target *-*-* } 0 } */
 
1300
+/* { dg-message "note: '__sync_nand_and_fetch' changed semantics in GCC 4.4" "nand_and_fetch" { target *-*-* } 0 } */
 
1301
 /* { dg-message "file included" "In file included" { target *-*-* } 0 } */
 
1302
 
 
1303
 #include "../../gcc.dg/di-longlong64-sync-1.c"
858
1304
Index: gcc/testsuite/gcc.target/powerpc/lhs-1.c
859
1305
===================================================================
860
1306
--- a/src/gcc/testsuite/gcc.target/powerpc/lhs-1.c      (revision
933
1379
+  return u.w2;
934
1380
+}
935
1381
+
 
1382
Index: gcc/testsuite/g++.old-deja/g++.other/typename1.C
 
1383
===================================================================
 
1384
--- a/src/gcc/testsuite/g++.old-deja/g++.other/typename1.C      (revision
 
1385
+++ b/src/gcc/testsuite/g++.old-deja/g++.other/typename1.C      (revision
 
1386
@@ -13,5 +13,5 @@
 
1387
 template<class T>
 
1388
 void f()
 
1389
 {
 
1390
-  Vector<T>::iterator i = 0; // { dg-error "typename" } missing typename
 
1391
-} // { dg-error "expected" "" { target *-*-* } 16 }
 
1392
+  Vector<T>::iterator i = 0; // { dg-error "typename" "typename" } missing typename
 
1393
+} // { dg-error "expected" "expected" { target *-*-* } 16 }
 
1394
Index: gcc/testsuite/g++.old-deja/g++.pt/niklas01a.C
 
1395
===================================================================
 
1396
--- a/src/gcc/testsuite/g++.old-deja/g++.pt/niklas01a.C (revision
 
1397
+++ b/src/gcc/testsuite/g++.old-deja/g++.pt/niklas01a.C (revision
 
1398
@@ -2,8 +2,8 @@
 
1399
 // { dg-options "-fshow-column" }
 
1400
 
 
1401
 struct A { // { dg-error "" } forward declaration
 
1402
-  friend struct B : A {                // { dg-error "invalid use of incomplete type 'struct A" }
 
1403
+  friend struct B : A {                // { dg-error "invalid use of incomplete type 'struct A" "invalid" }
 
1404
     int x;
 
1405
-  };   // { dg-error "class definition may not be declared a friend" ""  { target *-*-* } { 5 } }
 
1406
+  };   // { dg-error "class definition may not be declared a friend" "may not"  { target *-*-* } { 5 } }
 
1407
   int y;
 
1408
 };
 
1409
Index: gcc/testsuite/lib/profopt.exp
 
1410
===================================================================
 
1411
--- a/src/gcc/testsuite/lib/profopt.exp (revision
 
1412
+++ b/src/gcc/testsuite/lib/profopt.exp (revision
 
1413
@@ -64,8 +64,6 @@
 
1414
        { -Os } ]
 
1415
 }
 
1416
 
 
1417
-set prof_option_list $PROFOPT_OPTIONS
 
1418
-
 
1419
 #
 
1420
 # profopt-cleanup -- remove profiling or performance results files.
 
1421
 #
 
1422
@@ -215,10 +213,11 @@
 
1423
 #
 
1424
 proc profopt-execute { src } {
 
1425
     global srcdir tmpdir
 
1426
-    global prof_option_list
 
1427
+    global PROFOPT_OPTIONS
 
1428
     global tool profile_option feedback_option prof_ext perf_ext perf_delta
 
1429
     global generate_final_code use_final_code
 
1430
     global verbose
 
1431
+    global testname_with_flags
 
1432
 
 
1433
     if ![info exists profile_option] {
 
1434
         error "No profile option specified for first compile."
 
1435
@@ -227,6 +226,12 @@
 
1436
         error "No feedback option specified for second compile."
 
1437
     }
 
1438
 
 
1439
+    # Use the default option list or one defined for a set of tests.
 
1440
+    if ![info exists PROFOPT_OPTIONS] {
 
1441
+         error "PROFOPT_OPTIONS is not defined"
 
1442
+    }
 
1443
+    set prof_option_list $PROFOPT_OPTIONS
 
1444
+
 
1445
     regsub "(?q)$srcdir/" $src "" testcase
 
1446
     # If we couldn't rip $srcdir out of `src' then just do the best we can.
 
1447
     # The point is to reduce the unnecessary noise in the logs.  Don't strip
 
1448
@@ -236,6 +241,12 @@
 
1449
        set testcase "[file tail [file dirname $src]]/[file tail $src]"
 
1450
     }
 
1451
 
 
1452
+    # Several procedures access the name of the test with torture flags,
 
1453
+    # normally defined in dg-test.  Profile optimization tests don't
 
1454
+    # use dg-test, so define it here to make it accessible via
 
1455
+    # testname-for-summary.
 
1456
+    set testname_with_flags $testcase
 
1457
+
 
1458
     set executable $tmpdir/[file tail [file rootname $src].x]
 
1459
     set basename [file tail $testcase]
 
1460
     set base [file rootname $basename]
 
1461
@@ -268,6 +279,7 @@
 
1462
        set extra_flags [profopt-get-options $src]
 
1463
        if { [lindex ${dg-do-what} 1 ] == "N" } {
 
1464
            unsupported "$src"
 
1465
+           unset testname_with_flags
 
1466
            verbose "$src not supported on this target, skipping it" 3
 
1467
            return
 
1468
        }
 
1469
@@ -433,4 +445,5 @@
 
1470
            remote_file build delete $execname3
 
1471
        }
 
1472
     }
 
1473
+    unset testname_with_flags
 
1474
 }
 
1475
Index: gcc/testsuite/lib/gcc-dg.exp
 
1476
===================================================================
 
1477
--- a/src/gcc/testsuite/lib/gcc-dg.exp  (revision
 
1478
+++ b/src/gcc/testsuite/lib/gcc-dg.exp  (revision
 
1479
@@ -432,10 +432,7 @@
 
1480
 
 
1481
 # Remove compiler-generated coverage files for the current test.
 
1482
 proc cleanup-coverage-files { } {
 
1483
-    # This assumes that we are two frames down from dg-test or some other proc
 
1484
-    # that stores the filename of the testcase in a local variable "name".
 
1485
-    # A cleaner solution would require a new DejaGnu release.
 
1486
-    upvar 2 name testcase
 
1487
+    set testcase [testname-for-summary]
 
1488
     # The name might include a list of options; extract the file name.
 
1489
     set testcase [lindex $testcase 0]
 
1490
     remove-build-file "[file rootname [file tail $testcase]].gc??"
 
1491
@@ -450,10 +447,7 @@
 
1492
 
 
1493
 # Remove compiler-generated files from -repo for the current test.
 
1494
 proc cleanup-repo-files { } {
 
1495
-    # This assumes that we are two frames down from dg-test or some other proc
 
1496
-    # that stores the filename of the testcase in a local variable "name".
 
1497
-    # A cleaner solution would require a new DejaGnu release.
 
1498
-    upvar 2 name testcase
 
1499
+    set testcase [testname-for-summary]
 
1500
     # The name might include a list of options; extract the file name.
 
1501
     set testcase [lindex $testcase 0]
 
1502
     remove-build-file "[file rootname [file tail $testcase]].o"
 
1503
@@ -491,10 +485,7 @@
 
1504
 
 
1505
 # Remove a stack usage file for the current test.
 
1506
 proc cleanup-stack-usage { } {
 
1507
-    # This assumes that we are two frames down from dg-test or some other proc
 
1508
-    # that stores the filename of the testcase in a local variable "name".
 
1509
-    # A cleaner solution would require a new DejaGnu release.
 
1510
-    upvar 2 name testcase
 
1511
+    set testcase [testname-for-summary]
 
1512
     # The name might include a list of options; extract the file name.
 
1513
     set testcase [lindex $testcase 0]
 
1514
     remove-build-file "[file rootname [file tail $testcase]].su"
 
1515
@@ -509,10 +500,7 @@
 
1516
 
 
1517
 # Remove all dump files with the provided suffix.
 
1518
 proc cleanup-dump { suffix } {
 
1519
-    # This assumes that we are three frames down from dg-test or some other
 
1520
-    # proc that stores the filename of the testcase in a local variable
 
1521
-    # "name".  A cleaner solution would require a new DejaGnu release.
 
1522
-    upvar 3 name testcase
 
1523
+    set testcase [testname-for-summary]
 
1524
     # The name might include a list of options; extract the file name.
 
1525
     set src [file tail [lindex $testcase 0]]
 
1526
     remove-build-file "[file tail $src].$suffix"
 
1527
@@ -549,10 +537,7 @@
 
1528
        }
 
1529
     }
 
1530
 
 
1531
-    # This assumes that we are two frames down from dg-test or some other proc
 
1532
-    # that stores the filename of the testcase in a local variable "name".
 
1533
-    # A cleaner solution would require a new DejaGnu release.
 
1534
-    upvar 2 name testcase
 
1535
+    set testcase [testname-for-summary]
 
1536
     # The name might include a list of options; extract the file name.
 
1537
     set testcase [lindex $testcase 0]
 
1538
     foreach suffix $suffixes {
 
1539
@@ -590,7 +575,7 @@
 
1540
     set text [read $fd]
 
1541
     close $fd
 
1542
 
 
1543
-    upvar 2 name testcase
 
1544
+    set testcase [testname-for-summary]
 
1545
     if [regexp -- [lindex $args 1] $text] {
 
1546
       pass "$testcase scan-module [lindex $args 1]"
 
1547
     } else {
 
1548
@@ -608,7 +593,7 @@
 
1549
     set text [read $fd]
 
1550
     close $fd
 
1551
 
 
1552
-    upvar 2 name testcase
 
1553
+    set testcase [testname-for-summary]
 
1554
     if [regexp -- [lindex $args 1] $text] {
 
1555
       fail "$testcase scan-module [lindex $args 1]"
 
1556
     } else {
 
1557
@@ -628,8 +613,8 @@
 
1558
        }
 
1559
     }
 
1560
 
 
1561
-    # Access variables from gcc-dg-test-1.
 
1562
-    upvar 2 name testcase
 
1563
+    set testcase [testname-for-summary]
 
1564
+    # Access variable from gcc-dg-test-1.
 
1565
     upvar 2 output_file output_file
 
1566
 
 
1567
     if [file exists $output_file] {
 
1568
@@ -651,8 +636,8 @@
 
1569
        }
 
1570
     }
 
1571
 
 
1572
-    # Access variables from gcc-dg-test-1.
 
1573
-    upvar 2 name testcase
 
1574
+    set testcase [testname-for-summary]
 
1575
+    # Access variable from gcc-dg-test-1.
 
1576
     upvar 2 output_file output_file
 
1577
 
 
1578
     if [file exists $output_file] {
 
1579
@@ -680,6 +665,7 @@
 
1580
        global errorInfo
 
1581
        global compiler_conditional_xfail_data
 
1582
        global shouldfail
 
1583
+       global testname_with_flags
 
1584
 
 
1585
        if { [ catch { eval saved-dg-test $args } errmsg ] } {
 
1586
            set saved_info $errorInfo
 
1587
@@ -690,6 +676,9 @@
 
1588
            if [info exists compiler_conditional_xfail_data] {
 
1589
                unset compiler_conditional_xfail_data
 
1590
            }
 
1591
+           if [info exists testname_with_flags] {
 
1592
+               unset testname_with_flags
 
1593
+           }
 
1594
            unset_timeout_vars
 
1595
            error $errmsg $saved_info
 
1596
        }
 
1597
@@ -701,6 +690,9 @@
 
1598
        if [info exists compiler_conditional_xfail_data] {
 
1599
            unset compiler_conditional_xfail_data
 
1600
        }
 
1601
+       if [info exists testname_with_flags] {
 
1602
+           unset testname_with_flags
 
1603
+       }
 
1604
     }
 
1605
 }
 
1606
 
 
1607
Index: gcc/testsuite/lib/scanasm.exp
 
1608
===================================================================
 
1609
--- a/src/gcc/testsuite/lib/scanasm.exp (revision
 
1610
+++ b/src/gcc/testsuite/lib/scanasm.exp (revision
 
1611
@@ -78,10 +78,8 @@
 
1612
 # dg-scan for details.
 
1613
 
 
1614
 proc scan-assembler { args } {
 
1615
-    upvar 2 name testcase
 
1616
-    set testcase [lindex $testcase 0]
 
1617
+    set testcase [testname-for-summary]
 
1618
     set output_file "[file rootname [file tail $testcase]].s"
 
1619
-
 
1620
     dg-scan "scan-assembler" 1 $testcase $output_file $args
 
1621
 }
 
1622
 
 
1623
@@ -94,8 +92,7 @@
 
1624
 # compiler.  See dg-scan for details.
 
1625
 
 
1626
 proc scan-assembler-not { args } {
 
1627
-    upvar 2 name testcase
 
1628
-    set testcase [lindex $testcase 0]
 
1629
+    set testcase [testname-for-summary]
 
1630
     set output_file "[file rootname [file tail $testcase]].s"
 
1631
 
 
1632
     dg-scan "scan-assembler-not" 0 $testcase $output_file $args
 
1633
@@ -125,8 +122,7 @@
 
1634
 # produced by the compiler.
 
1635
 
 
1636
 proc scan-hidden { args } {
 
1637
-    upvar 2 name testcase
 
1638
-    set testcase [lindex $testcase 0]
 
1639
+    set testcase [testname-for-summary]
 
1640
     set output_file "[file rootname [file tail $testcase]].s"
 
1641
 
 
1642
     set symbol [lindex $args 0]
 
1643
@@ -142,8 +138,7 @@
 
1644
 # produced by the compiler.
 
1645
 
 
1646
 proc scan-not-hidden { args } {
 
1647
-    upvar 2 name testcase
 
1648
-    set testcase [lindex $testcase 0]
 
1649
+    set testcase [testname-for-summary]
 
1650
     set output_file "[file rootname [file tail $testcase]].s"
 
1651
 
 
1652
     set symbol [lindex $args 0]
 
1653
@@ -157,8 +152,7 @@
 
1654
 # Look for a pattern in OUTPUT_FILE.  See dg-scan for details.
 
1655
 
 
1656
 proc scan-file { output_file args } {
 
1657
-    upvar 2 name testcase
 
1658
-    set testcase [lindex $testcase 0]
 
1659
+    set testcase [testname-for-summary]
 
1660
     dg-scan "scan-file" 1 $testcase $output_file $args
 
1661
 }
 
1662
 
 
1663
@@ -166,8 +160,7 @@
 
1664
 # for details.
 
1665
 
 
1666
 proc scan-file-not { output_file args } {
 
1667
-    upvar 2 name testcase
 
1668
-    set testcase [lindex $testcase 0]
 
1669
+    set testcase [testname-for-summary]
 
1670
     dg-scan "scan-file-not" 0 $testcase $output_file $args
 
1671
 }
 
1672
 
 
1673
@@ -175,8 +168,7 @@
 
1674
 # dg-scan for details.
 
1675
 
 
1676
 proc scan-stack-usage { args } {
 
1677
-    upvar 2 name testcase
 
1678
-    set testcase [lindex $testcase 0]
 
1679
+    set testcase [testname-for-summary]
 
1680
     set output_file "[file rootname [file tail $testcase]].su"
 
1681
 
 
1682
     dg-scan "scan-file" 1 $testcase $output_file $args
 
1683
@@ -186,8 +178,7 @@
 
1684
 # compiler.  See dg-scan for details.
 
1685
 
 
1686
 proc scan-stack-usage-not { args } {
 
1687
-    upvar 2 name testcase
 
1688
-    set testcase [lindex $testcase 0]
 
1689
+    set testcase [testname-for-summary]
 
1690
     set output_file "[file rootname [file tail $testcase]].su"
 
1691
 
 
1692
     dg-scan "scan-file-not" 0 $testcase $output_file $args
 
1693
@@ -212,12 +203,7 @@
 
1694
        }
 
1695
     }
 
1696
 
 
1697
-    # This assumes that we are two frames down from dg-test, and that
 
1698
-    # it still stores the filename of the testcase in a local variable "name".
 
1699
-    # A cleaner solution would require a new dejagnu release.
 
1700
-    upvar 2 name testcase
 
1701
-    set testcase [lindex $testcase 0]
 
1702
-
 
1703
+    set testcase [testname-for-summary]
 
1704
     set pattern [lindex $args 0]
 
1705
     set pp_pattern [make_pattern_printable $pattern]
 
1706
 
 
1707
@@ -275,8 +261,7 @@
 
1708
        verbose -log "c++filt is $cxxfilt"
 
1709
     }
 
1710
 
 
1711
-    upvar 2 name testcase
 
1712
-    set testcase [lindex $testcase 0]
 
1713
+    set testcase [testname-for-summary]
 
1714
     set pattern [lindex $args 0]
 
1715
     set pp_pattern [make_pattern_printable $pattern]
 
1716
     set output_file "[file rootname [file tail $testcase]].s"
 
1717
@@ -330,8 +315,7 @@
 
1718
        verbose -log "c++filt is $cxxfilt"
 
1719
     }
 
1720
 
 
1721
-    upvar 2 name testcase
 
1722
-    set testcase [lindex $testcase 0]
 
1723
+    set testcase [testname-for-summary]
 
1724
     set pattern [lindex $args 0]
 
1725
     set pp_pattern [make_pattern_printable $pattern]
 
1726
     set output_file "[file rootname [file tail $testcase]].s"
 
1727
@@ -386,9 +370,7 @@
 
1728
        verbose -log "size is $size"
 
1729
     }
 
1730
 
 
1731
-    upvar 2 name testcase
 
1732
-    set testcase [lindex $testcase 0]
 
1733
-
 
1734
+    set testcase [testname-for-summary]
 
1735
     set what [lindex $args 0]
 
1736
     set where [lsearch { text data bss total } $what]
 
1737
     if { $where == -1 } {
 
1738
Index: gcc/testsuite/lib/gcov.exp
 
1739
===================================================================
 
1740
--- a/src/gcc/testsuite/lib/gcov.exp    (revision
 
1741
+++ b/src/gcc/testsuite/lib/gcov.exp    (revision
 
1742
@@ -34,12 +34,14 @@
 
1743
 #
 
1744
 # verify-lines -- check that line counts are as expected
 
1745
 #
 
1746
-# TESTCASE is the name of the test.
 
1747
+# TESTNAME is the name of the test, including unique flags.
 
1748
+# TESTCASE is the name of the test file.
 
1749
 # FILE is the name of the gcov output file.
 
1750
 #
 
1751
-proc verify-lines { testcase file } {
 
1752
+proc verify-lines { testname testcase file } {
 
1753
     #send_user "verify-lines\n"
 
1754
     global subdir
 
1755
+
 
1756
     set failed 0
 
1757
     set fd [open $file r]
 
1758
     while { [gets $fd line] >= 0 } {
 
1759
@@ -54,13 +56,13 @@
 
1760
                }
 
1761
            }
 
1762
            if { $is == "" } {
 
1763
-               fail "$subdir/$testcase:$n:no data available for this line"
 
1764
+               fail "$testname line $n: no data available"
 
1765
                incr failed
 
1766
            } elseif { $is != $shouldbe } {
 
1767
-               fail "$subdir/$testcase:$n:is $is:should be $shouldbe"
 
1768
+               fail "$testname line $n: is $is:should be $shouldbe"
 
1769
                incr failed
 
1770
            } else {
 
1771
-               pass "$subdir/$testcase:$n line count"
 
1772
+               pass "$testname count for line $n"
 
1773
            }
 
1774
        }
 
1775
     }
 
1776
@@ -71,7 +73,8 @@
 
1777
 #
 
1778
 # verify-branches -- check that branch percentages are as expected
 
1779
 #
 
1780
-# TESTCASE is the name of the test.
 
1781
+# TESTNAME is the name of the test, including unique flags.
 
1782
+# TESTCASE is the name of the test file.
 
1783
 # FILE is the name of the gcov output file.
 
1784
 #
 
1785
 # Checks are based on comments in the source file.  This means to look for
 
1786
@@ -86,8 +89,9 @@
 
1787
 # branch instructions.  Don't check for branches that might be
 
1788
 # optimized away or replaced with predicated instructions.
 
1789
 #
 
1790
-proc verify-branches { testcase file } {
 
1791
+proc verify-branches { testname testcase file } {
 
1792
     #send_user "verify-branches\n"
 
1793
+
 
1794
     set failed 0
 
1795
     set shouldbe ""
 
1796
     set fd [open $file r]
 
1797
@@ -99,7 +103,7 @@
 
1798
            if [regexp "branch\\((\[0-9 \]+)\\)" "$line" all new_shouldbe] {
 
1799
                # All percentages in the current list should have been seen.
 
1800
                if {[llength $shouldbe] != 0} {
 
1801
-                   fail "$n: expected branch percentages not found: $shouldbe"
 
1802
+                   fail "$testname line $n: expected branch percentages not found: $shouldbe"
 
1803
                    incr failed
 
1804
                    set shouldbe ""
 
1805
                }
 
1806
@@ -117,14 +121,14 @@
 
1807
            } elseif [regexp "branch +\[0-9\]+ taken (-\[0-9\]+)%" "$line" \
 
1808
                        all taken] {
 
1809
                # Percentages should never be negative.
 
1810
-               fail "$n: negative percentage: $taken"
 
1811
+               fail "$testname line $n: negative percentage: $taken"
 
1812
                incr failed
 
1813
            } elseif [regexp "branch +\[0-9\]+ taken (\[0-9\]+)%" "$line" \
 
1814
                        all taken] {
 
1815
                #send_user "$n: taken = $taken\n"
 
1816
                # Percentages should never be greater than 100.
 
1817
                if {$taken > 100} {
 
1818
-                   fail "$n: percentage greater than 100: $taken"
 
1819
+                   fail "$testname line $n: branch percentage greater than 100: $taken"
 
1820
                    incr failed
 
1821
                }
 
1822
                if {$taken > 50} {
 
1823
@@ -139,7 +143,7 @@
 
1824
            } elseif [regexp "branch\\(end\\)" "$line"] {
 
1825
                # All percentages in the list should have been seen by now.
 
1826
                if {[llength $shouldbe] != 0} {
 
1827
-                   fail "$n: expected branch percentages not found: $shouldbe"
 
1828
+                   fail "$testname line n: expected branch percentages not found: $shouldbe"
 
1829
                    incr failed
 
1830
                }
 
1831
                set shouldbe ""
 
1832
@@ -148,7 +152,7 @@
 
1833
     }
 
1834
     # All percentages in the list should have been seen.
 
1835
     if {[llength $shouldbe] != 0} {
 
1836
-       fail "$n: expected branch percentages not found: $shouldbe"
 
1837
+       fail "$testname line $n: expected branch percentages not found: $shouldbe"
 
1838
        incr failed
 
1839
     }
 
1840
     close $fd
 
1841
@@ -158,7 +162,8 @@
 
1842
 #
 
1843
 # verify-calls -- check that call return percentages are as expected
 
1844
 #
 
1845
-# TESTCASE is the name of the test.
 
1846
+# TESTNAME is the name of the test, including unique flags.
 
1847
+# TESTCASE is the name of the test file.
 
1848
 # FILE is the name of the gcov output file.
 
1849
 #
 
1850
 # Checks are based on comments in the source file.  This means to look for
 
1851
@@ -173,8 +178,9 @@
 
1852
 # call instructions.  Don't check for calls that are inserted by the
 
1853
 # compiler or that might be inlined.
 
1854
 #
 
1855
-proc verify-calls { testcase file } {
 
1856
+proc verify-calls { testname testcase file } {
 
1857
     #send_user "verify-calls\n"
 
1858
+
 
1859
     set failed 0
 
1860
     set shouldbe ""
 
1861
     set fd [open $file r]
 
1862
@@ -186,7 +192,7 @@
 
1863
            if [regexp "returns\\((\[0-9 \]+)\\)" "$line" all new_shouldbe] {
 
1864
                # All percentages in the current list should have been seen.
 
1865
                if {[llength $shouldbe] != 0} {
 
1866
-                   fail "$n: expected return percentages not found: $shouldbe"
 
1867
+                   fail "$testname line $n: expected return percentages not found: $shouldbe"
 
1868
                    incr failed
 
1869
                    set shouldbe ""
 
1870
                }
 
1871
@@ -195,7 +201,7 @@
 
1872
            } elseif [regexp "call +\[0-9\]+ returned (-\[0-9\]+)%" "$line" \
 
1873
                        all returns] {
 
1874
                # Percentages should never be negative.
 
1875
-               fail "$n: negative percentage: $returns"
 
1876
+               fail "$testname line $n: negative percentage: $returns"
 
1877
                incr failed
 
1878
            } elseif [regexp "call +\[0-9\]+ returned (\[0-9\]+)%" "$line" \
 
1879
                        all returns] {
 
1880
@@ -212,7 +218,7 @@
 
1881
            } elseif [regexp "returns\\(end\\)" "$line"] {
 
1882
                # All percentages in the list should have been seen by now.
 
1883
                if {[llength $shouldbe] != 0} {
 
1884
-                   fail "$n: expected return percentages not found: $shouldbe"
 
1885
+                   fail "$testname line $n: expected return percentages not found: $shouldbe"
 
1886
                    incr failed
 
1887
                }
 
1888
                set shouldbe ""
 
1889
@@ -221,7 +227,7 @@
 
1890
     }
 
1891
     # All percentages in the list should have been seen.
 
1892
     if {[llength $shouldbe] != 0} {
 
1893
-       fail "$n: expected return percentages not found: $shouldbe"
 
1894
+       fail "$testname line $n: expected return percentages not found: $shouldbe"
 
1895
        incr failed
 
1896
     }
 
1897
     close $fd
 
1898
@@ -259,7 +265,9 @@
 
1899
        }
 
1900
     }
 
1901
 
 
1902
-    # Extract the test name from the arguments.
 
1903
+    set testname [testname-for-summary]
 
1904
+
 
1905
+    # Extract the test file name from the arguments.
 
1906
     set testcase [lindex $gcov_args end]
 
1907
 
 
1908
     verbose "Running $GCOV $testcase" 2
 
1909
@@ -269,7 +277,7 @@
 
1910
        if { $xfailed } {
 
1911
            setup_xfail "*-*-*"
 
1912
        }
 
1913
-       fail "$subdir/$testcase gcov failed: [lindex $result 1]"
 
1914
+       fail "$testname gcov failed: [lindex $result 1]"
 
1915
        clean-gcov $testcase
 
1916
        return
 
1917
     }
 
1918
@@ -280,24 +288,24 @@
 
1919
        if { $xfailed } {
 
1920
            setup_xfail "*-*-*"
 
1921
        }
 
1922
-        fail "$subdir/$testcase gcov failed: $testcase.gcov does not exist"
 
1923
+        fail "$testname gcov failed: $testcase.gov does not exist"
 
1924
         clean-gcov $testcase
 
1925
         return
 
1926
     }
 
1927
     remote_upload host $testcase.gcov $testcase.gcov
 
1928
 
 
1929
     # Check that line execution counts are as expected.
 
1930
-    set lfailed [verify-lines $testcase $testcase.gcov]
 
1931
+    set lfailed [verify-lines $testname $testcase $testcase.gcov]
 
1932
 
 
1933
     # If requested via the .x file, check that branch and call information
 
1934
     # is correct.
 
1935
     if { $gcov_verify_branches } {
 
1936
-       set bfailed [verify-branches $testcase $testcase.gcov]
 
1937
+       set bfailed [verify-branches $testname $testcase $testcase.gcov]
 
1938
     } else {
 
1939
        set bfailed 0
 
1940
     }
 
1941
     if { $gcov_verify_calls } {
 
1942
-       set cfailed [verify-calls $testcase $testcase.gcov]
 
1943
+       set cfailed [verify-calls $testname $testcase $testcase.gcov]
 
1944
     } else {
 
1945
        set cfailed 0
 
1946
     }
 
1947
@@ -309,9 +317,9 @@
 
1948
        setup_xfail "*-*-*"
 
1949
     }
 
1950
     if { $tfailed > 0 } {
 
1951
-       fail "$subdir/$testcase gcov: $lfailed failures in line counts, $bfailed in branch percentages, $cfailed in return percentages"
 
1952
+       fail "$testname gcov: $lfailed failures in line counts, $bfailed in branch percentages, $cfailed in return percentages"
 
1953
     } else {
 
1954
-       pass "$subdir/$testcase gcov"
 
1955
+       pass "$testname gcov"
 
1956
        clean-gcov $testcase
 
1957
     }
 
1958
 }
 
1959
Index: gcc/testsuite/lib/dg-pch.exp
 
1960
===================================================================
 
1961
--- a/src/gcc/testsuite/lib/dg-pch.exp  (revision
 
1962
+++ b/src/gcc/testsuite/lib/dg-pch.exp  (revision
 
1963
@@ -50,14 +50,16 @@
 
1964
            # Ensure that the PCH file is used, not the original header.
 
1965
            file_on_host delete "$bname$suffix"
 
1966
 
 
1967
-           dg-test -keep-output $test "$otherflags $flags -I." ""
 
1968
+           # The flags "-Dwith_PCH" and "-Dwithout_PCH" are to distinguish the
 
1969
+           # two compiles in test summary lines.
 
1970
+           dg-test -keep-output $test "$otherflags $flags -I. -Dwith_PCH" ""
 
1971
            file_on_host delete "$bname$suffix.gch"
 
1972
            if { !$have_errs } {
 
1973
                if { [ file_on_host exists "$bname.s" ] } {
 
1974
                    remote_upload host "$bname.s" "$bname.s-gch"
 
1975
                    remote_download host "$bname.s-gch"
 
1976
                    gcc_copy_files "[file rootname $test]${suffix}s" "$bname$suffix"
 
1977
-                   dg-test -keep-output $test "$otherflags $flags -I." ""
 
1978
+                   dg-test -keep-output $test "$otherflags $flags -I. -Dwithout_PCH" ""
 
1979
                    remote_upload host "$bname.s"
 
1980
                    set tmp [ diff "$bname.s" "$bname.s-gch" ]
 
1981
                    if { $tmp == 0 } {
 
1982
@@ -89,4 +91,4 @@
 
1983
 
 
1984
 proc dg-pch { subdir test options suffix } {
 
1985
   return [dg-flags-pch $subdir $test "" $options $suffix]
 
1986
-}
 
1987
\ No newline at end of file
 
1988
+}
 
1989
Index: gcc/testsuite/lib/scandump.exp
 
1990
===================================================================
 
1991
--- a/src/gcc/testsuite/lib/scandump.exp        (revision
 
1992
+++ b/src/gcc/testsuite/lib/scandump.exp        (revision
 
1993
@@ -45,13 +45,11 @@
 
1994
         }
 
1995
     }
 
1996
 
 
1997
-    # This assumes that we are three frames down from dg-test, and that
 
1998
-    # it still stores the filename of the testcase in a local variable "name".
 
1999
-    # A cleaner solution would require a new DejaGnu release.
 
2000
-    upvar 3 name testcase
 
2001
+    set testcase [testname-for-summary]
 
2002
 
 
2003
+    set printable_pattern [make_pattern_printable [lindex $args 1]]
 
2004
     set suf [dump-suffix [lindex $args 2]]
 
2005
-    set testname "$testcase scan-[lindex $args 0]-dump $suf \"[lindex $args 1]\""
 
2006
+    set testname "$testcase scan-[lindex $args 0]-dump $suf \"$printable_pattern\""
 
2007
     set src [file tail [lindex $testcase 0]]
 
2008
     set output_file "[glob -nocomplain $src.[lindex $args 2]]"
 
2009
     if { $output_file == "" } {
 
2010
@@ -88,13 +86,10 @@
 
2011
        }
 
2012
     }
 
2013
 
 
2014
-    # This assumes that we are three frames down from dg-test, and that
 
2015
-    # it still stores the filename of the testcase in a local variable "name".
 
2016
-    # A cleaner solution would require a new DejaGnu release.
 
2017
-    upvar 3 name testcase
 
2018
-
 
2019
+    set testcase [testname-for-summary]
 
2020
     set suf [dump-suffix [lindex $args 3]]
 
2021
-    set testname "$testcase scan-[lindex $args 0]-dump-times $suf \"[lindex $args 1]\" [lindex $args 2]"
 
2022
+    set printable_pattern [make_pattern_printable [lindex $args 1]]
 
2023
+    set testname "$testcase scan-[lindex $args 0]-dump-times $suf \"$printable_pattern\" [lindex $args 2]"
 
2024
     set src [file tail [lindex $testcase 0]]
 
2025
     set output_file "[glob -nocomplain $src.[lindex $args 3]]"
 
2026
     if { $output_file == "" } {
 
2027
@@ -131,13 +126,10 @@
 
2028
        }
 
2029
     }
 
2030
 
 
2031
-    # This assumes that we are three frames down from dg-test, and that
 
2032
-    # it still stores the filename of the testcase in a local variable "name".
 
2033
-    # A cleaner solution would require a new DejaGnu release.
 
2034
-    upvar 3 name testcase
 
2035
-
 
2036
+    set testcase [testname-for-summary]
 
2037
+    set printable_pattern [make_pattern_printable [lindex $args 1]]
 
2038
     set suf [dump-suffix [lindex $args 2]]
 
2039
-    set testname "$testcase scan-[lindex $args 0]-dump-not $suf \"[lindex $args 1]\""
 
2040
+    set testname "$testcase scan-[lindex $args 0]-dump-not $suf \"$printable_pattern\""
 
2041
     set src [file tail [lindex $testcase 0]]
 
2042
     set output_file "[glob -nocomplain $src.[lindex $args 2]]"
 
2043
     if { $output_file == "" } {
 
2044
@@ -187,9 +179,10 @@
 
2045
        verbose -log "c++filt is $cxxfilt"
 
2046
     }
 
2047
 
 
2048
-    upvar 3 name testcase
 
2049
+    set testcase [testname-for-summary]
 
2050
+    set printable_pattern [make_pattern_printable [lindex $args 1]]
 
2051
     set suf [dump-suffix [lindex $args 2]]
 
2052
-    set testname "$testcase scan-[lindex $args 0]-dump-dem $suf \"[lindex $args 1]\""
 
2053
+    set testname "$testcase scan-[lindex $args 0]-dump-dem $suf \"$printable_pattern\""
 
2054
     set src [file tail [lindex $testcase 0]]
 
2055
     set output_file "[glob -nocomplain $src.[lindex $args 2]]"
 
2056
     if { $output_file == "" } {
 
2057
@@ -238,10 +231,10 @@
 
2058
        verbose -log "c++filt is $cxxfilt"
 
2059
     }
 
2060
 
 
2061
-    upvar 3 name testcase
 
2062
-
 
2063
+    set testcase [testname-for-summary]
 
2064
+    set printable_pattern [make_pattern_printable [lindex $args 1]
 
2065
     set suf [dump-suffix [lindex $args 2]]
 
2066
-    set testname "$testcase scan-[lindex $args 0]-dump-dem-not $suf \"[lindex $args 1]\""
 
2067
+    set testname "$testcase scan-[lindex $args 0]-dump-dem-not $suf \"$printable_pattern\""
 
2068
     set src [file tail [lindex $testcase 0]]
 
2069
     set output_file "[glob -nocomplain $src.[lindex $args 2]]"
 
2070
     if { $output_file == "" } {
 
2071
Index: gcc/testsuite/lib/target-supports-dg.exp
 
2072
===================================================================
 
2073
--- a/src/gcc/testsuite/lib/target-supports-dg.exp      (revision
 
2074
+++ b/src/gcc/testsuite/lib/target-supports-dg.exp      (revision
 
2075
@@ -31,6 +31,34 @@
 
2076
     return "$flags1 $flags2"
 
2077
 }
 
2078
 
 
2079
+# DejaGnu's dg-test defines a test name that includes torture options
 
2080
+# which is used in most pass/fail messages.  Grab a copy of it.
 
2081
+
 
2082
+proc testname-for-summary { } {
 
2083
+    global testname_with_flags
 
2084
+
 
2085
+    # A variable called "name" is too generic, so identify dg-test by
 
2086
+    # the existence of dg-extra-tool-flags.
 
2087
+    if ![info exists testname_with_flags] {
 
2088
+       set frames 2
 
2089
+       while { ![info exists flags] } {
 
2090
+           set frames [expr $frames + 1]
 
2091
+           upvar $frames dg-extra-tool-flags flags
 
2092
+       }
 
2093
+
 
2094
+       # We've got the stack level for dg-test; get the variable we want.
 
2095
+       upvar $frames name name
 
2096
+       set testname_with_flags $name
 
2097
+
 
2098
+       # If there are flags, add an extra space to improve readability of
 
2099
+       # the test summary.
 
2100
+       if { [llength $testname_with_flags] > 1 } {
 
2101
+           set testname_with_flags "$testname_with_flags "
 
2102
+       }
 
2103
+    }
 
2104
+    return "$testname_with_flags"
 
2105
+}
 
2106
+
 
2107
 # If this target does not support weak symbols, skip this test.
 
2108
 
 
2109
 proc dg-require-weak { args } {
936
2110
Index: gcc/testsuite/gfortran.dg/inline_sum_4.f90
937
2111
===================================================================
938
2112
--- a/src/gcc/testsuite/gfortran.dg/inline_sum_4.f90    (revision
982
2156
+130         CONTINUE
983
2157
+140   CONTINUE
984
2158
+      END
 
2159
Index: gcc/testsuite/gcc.c-torture/compile/sync-1.c
 
2160
===================================================================
 
2161
--- a/src/gcc/testsuite/gcc.c-torture/compile/sync-1.c  (revision
 
2162
+++ b/src/gcc/testsuite/gcc.c-torture/compile/sync-1.c  (revision
 
2163
@@ -1,5 +1,5 @@
 
2164
-/* { dg-message "note: '__sync_fetch_and_nand' changed semantics in GCC 4.4" "" { target *-*-* } 0 } */
 
2165
-/* { dg-message "note: '__sync_nand_and_fetch' changed semantics in GCC 4.4" "" { target *-*-* } 0 } */
 
2166
+/* { dg-message "note: '__sync_fetch_and_nand' changed semantics in GCC 4.4" "fetch_and_nand" { target *-*-* } 0 } */
 
2167
+/* { dg-message "note: '__sync_nand_and_fetch' changed semantics in GCC 4.4" "nand_and_fetch" { target *-*-* } 0 } */
 
2168
 /* { dg-options "-ffat-lto-objects" } */
 
2169
 
 
2170
 /* Validate that each of the __sync builtins compiles.  This won't 
985
2171
Index: gcc/testsuite/gnat.dg/recursive_call.adb
986
2172
===================================================================
987
2173
--- a/src/gcc/testsuite/gnat.dg/recursive_call.adb      (revision
1041
2227
+  procedure Proc (A : access Child);
1042
2228
+
1043
2229
+end Discr37;
 
2230
Index: gcc/testsuite/gcc.dg/vla-init-1.c
 
2231
===================================================================
 
2232
--- a/src/gcc/testsuite/gcc.dg/vla-init-1.c     (revision
 
2233
+++ b/src/gcc/testsuite/gcc.dg/vla-init-1.c     (revision
 
2234
@@ -10,6 +10,6 @@
 
2235
 foo (void)
 
2236
 {
 
2237
   int x[a] = { 1 }; /* { dg-error "variable-sized object may not be initialized" "VLA init" } */
 
2238
-  /* { dg-warning "excess elements in array initializer" "" { target *-*-* } 12 } */
 
2239
-  /* { dg-warning "near initialization" "" { target *-*-* } 12 } */
 
2240
+  /* { dg-warning "excess elements in array initializer" "excess" { target *-*-* } 12 } */
 
2241
+  /* { dg-warning "near initialization" "near" { target *-*-* } 12 } */
 
2242
 }
 
2243
Index: gcc/testsuite/gcc.dg/pr30551-2.c
 
2244
===================================================================
 
2245
--- a/src/gcc/testsuite/gcc.dg/pr30551-2.c      (revision
 
2246
+++ b/src/gcc/testsuite/gcc.dg/pr30551-2.c      (revision
 
2247
@@ -2,7 +2,7 @@
 
2248
 /* { dg-do compile } */
 
2249
 /* { dg-options "" } */
 
2250
 
 
2251
-void main(char a) {} /* { dg-bogus "first argument of .main. should be .int." } */
 
2252
-/* { dg-bogus ".main. takes only zero or two arguments" "" { target *-*-* } 5 } */ 
 
2253
-/* { dg-bogus "return type of .main. is not .int." "" { target *-*-* } 5 } */ 
 
2254
+void main(char a) {} /* { dg-bogus "first argument of .main. should be .int." "int" } */
 
2255
+/* { dg-bogus ".main. takes only zero or two arguments" "zero or two" { target *-*-* } 5 } */ 
 
2256
+/* { dg-bogus "return type of .main. is not .int." "return type" { target *-*-* } 5 } */ 
 
2257
 
 
2258
Index: gcc/testsuite/gcc.dg/pr48552-2.c
 
2259
===================================================================
 
2260
--- a/src/gcc/testsuite/gcc.dg/pr48552-2.c      (revision
 
2261
+++ b/src/gcc/testsuite/gcc.dg/pr48552-2.c      (revision
 
2262
@@ -7,15 +7,15 @@
 
2263
 void
 
2264
 f1 (void *x)
 
2265
 {
 
2266
-  __asm ("" : : "r" (*x));     /* { dg-warning "dereferencing" } */
 
2267
-}                              /* { dg-error "invalid use of void expression" "" { target *-*-* } 10 } */
 
2268
+  __asm ("" : : "r" (*x));     /* { dg-warning "dereferencing" "deref" } */
 
2269
+}                              /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } 10 } */
 
2270
 
 
2271
 void
 
2272
 f2 (void *x)
 
2273
 {
 
2274
-  __asm ("" : "=r" (*x));      /* { dg-warning "dereferencing" } */
 
2275
-}                              /* { dg-error "invalid use of void expression" "" { target *-*-* } 16 } */
 
2276
-                               /* { dg-error "invalid lvalue in asm output 0" "" { target *-*-* } 16 } */
 
2277
+  __asm ("" : "=r" (*x));      /* { dg-warning "dereferencing" "deref" } */
 
2278
+}                              /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } 16 } */
 
2279
+                               /* { dg-error "invalid lvalue in asm output 0" "invalid lvalue" { target *-*-* } 16 } */
 
2280
 void
 
2281
 f3 (void *x)
 
2282
 {
 
2283
@@ -31,15 +31,15 @@
 
2284
 void
 
2285
 f5 (void *x)
 
2286
 {
 
2287
-  __asm ("" : : "g" (*x));     /* { dg-warning "dereferencing" } */
 
2288
-}                              /* { dg-error "invalid use of void expression" "" { target *-*-* } 34 } */
 
2289
+  __asm ("" : : "g" (*x));     /* { dg-warning "dereferencing" "deref" } */
 
2290
+}                              /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } 34 } */
 
2291
 
 
2292
 void
 
2293
 f6 (void *x)
 
2294
 {
 
2295
-  __asm ("" : "=g" (*x));      /* { dg-warning "dereferencing" } */
 
2296
-}                              /* { dg-error "invalid use of void expression" "" { target *-*-* } 40 } */
 
2297
-                               /* { dg-error "invalid lvalue in asm output 0" "" { target *-*-* } 40 } */
 
2298
+  __asm ("" : "=g" (*x));      /* { dg-warning "dereferencing" "deref" } */
 
2299
+}                              /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } 40 } */
 
2300
+                               /* { dg-error "invalid lvalue in asm output 0" "invalid lvalue" { target *-*-* } 40 } */
 
2301
 void
 
2302
 f7 (struct S *x)
 
2303
 {
 
2304
@@ -49,5 +49,5 @@
 
2305
 void
 
2306
 f8 (struct S *x)
 
2307
 {
 
2308
-  __asm ("" : "=r" (*x));      /* { dg-error "dereferencing pointer to incomplete type" } */
 
2309
-}                              /* { dg-error "invalid lvalue in asm output 0" "" { target *-*-* } 52 } */
 
2310
+  __asm ("" : "=r" (*x));      /* { dg-error "dereferencing pointer to incomplete type" "incomplete" } */
 
2311
+}                              /* { dg-error "invalid lvalue in asm output 0" "invalid lvalue" { target *-*-* } 52 } */
 
2312
Index: gcc/testsuite/gcc.dg/parser-pr28152.c
 
2313
===================================================================
 
2314
--- a/src/gcc/testsuite/gcc.dg/parser-pr28152.c (revision
 
2315
+++ b/src/gcc/testsuite/gcc.dg/parser-pr28152.c (revision
 
2316
@@ -7,5 +7,5 @@
 
2317
   _Complex float z;
 
2318
 
 
2319
   z = _Complex (1.90000007326203904e+19, 0.0);   /* { dg-error "_Complex" } */
 
2320
-  z = _Complex (1.0e+0, 0.0) / z;   /* { dg-error "_Complex" } */
 
2321
-  /* { dg-error "at end of input" "" { target *-*-* } 10 } */
 
2322
+  z = _Complex (1.0e+0, 0.0) / z;   /* { dg-error "_Complex" "_Complex" } */
 
2323
+  /* { dg-error "at end of input" "end of input" { target *-*-* } 10 } */
 
2324
Index: gcc/testsuite/gcc.dg/pr30551-6.c
 
2325
===================================================================
 
2326
--- a/src/gcc/testsuite/gcc.dg/pr30551-6.c      (revision
 
2327
+++ b/src/gcc/testsuite/gcc.dg/pr30551-6.c      (revision
 
2328
@@ -2,6 +2,6 @@
 
2329
 /* { dg-do compile } */
 
2330
 /* { dg-options "-pedantic" } */
 
2331
 /* { dg-skip-if "-Wmain not enabled with -pedantic on SPU" { spu-*-* } } */
 
2332
-void main(char a) {} /* { dg-warning "first argument of .main. should be .int." } */
 
2333
-/* { dg-warning ".main. takes only zero or two arguments" "" { target *-*-* } 5 } */ 
 
2334
-/* { dg-warning "return type of .main. is not .int." "" { target *-*-* } 5 } */ 
 
2335
+void main(char a) {} /* { dg-warning "first argument of .main. should be .int." "int" } */
 
2336
+/* { dg-warning ".main. takes only zero or two arguments" "zero or two" { target *-*-* } 5 } */ 
 
2337
+/* { dg-warning "return type of .main. is not .int." "return type" { target *-*-* } 5 } */ 
 
2338
Index: gcc/testsuite/gcc.dg/c99-vla-jump-4.c
 
2339
===================================================================
 
2340
--- a/src/gcc/testsuite/gcc.dg/c99-vla-jump-4.c (revision
 
2341
+++ b/src/gcc/testsuite/gcc.dg/c99-vla-jump-4.c (revision
 
2342
@@ -305,5 +305,5 @@
 
2343
 void fd288 (int n) { P0A:goto P0A;{ typedef int (*b)[n]; P01A:goto P01A;{ typedef int (*c)[n]; P012A:goto P012A;0;} P01B:goto P01B;{ typedef int (*d)[n]; P013A:goto P013A;0;} P01C:goto P01C;; typedef int (*e)[n]; P014A:goto P014A;0;}; P0B:goto P0B;{ typedef int (*f)[n]; P02A:goto P02A;{ typedef int (*g)[n]; P024A:goto P024A;0;}; P02B:goto P02B;{ typedef int (*h)[n]; P025A:goto P025A;0;}; P02C:goto P02C;; typedef int (*i)[n]; P026A:goto P026A;0;}; P0C:goto P0C;; typedef int (*j)[n]; P03A:goto P03A;0;a: goto a; P03B:goto P03B; }
 
2344
 
 
2345
 /* Match extra informative notes.  */
 
2346
-/* { dg-message "note: label '\[^\n'\]*' defined here" "note: expected" { target *-*-* } 0 } */
 
2347
-/* { dg-message "note: '\[^\n'\]*' declared here" "note: expected" { target *-*-* } 0 } */
 
2348
+/* { dg-message "note: label '\[^\n'\]*' defined here" "note: defined" { target *-*-* } 0 } */
 
2349
+/* { dg-message "note: '\[^\n'\]*' declared here" "note: declared" { target *-*-* } 0 } */
 
2350
Index: gcc/testsuite/gcc.dg/decl-9.c
 
2351
===================================================================
 
2352
--- a/src/gcc/testsuite/gcc.dg/decl-9.c (revision
 
2353
+++ b/src/gcc/testsuite/gcc.dg/decl-9.c (revision
 
2354
@@ -21,7 +21,7 @@
 
2355
 {
 
2356
 b: a: ; /* { dg-bogus "a label can only be part of a statement" } */
 
2357
 c: d e; /* { dg-error "a label can only be part of a statement" } */
 
2358
-/* { dg-error "unknown type name 'd'" "" { target *-*-* } 23 } */
 
2359
+/* { dg-error "unknown type name 'd'" "unknown type name" { target *-*-* } 23 } */
 
2360
    ;
 
2361
 }
 
2362
 
 
2363
Index: gcc/testsuite/gcc.dg/Wstrict-aliasing-converted-assigned.c
 
2364
===================================================================
 
2365
--- a/src/gcc/testsuite/gcc.dg/Wstrict-aliasing-converted-assigned.c    (revision
 
2366
+++ b/src/gcc/testsuite/gcc.dg/Wstrict-aliasing-converted-assigned.c    (revision
 
2367
@@ -5,9 +5,12 @@
 
2368
 int foo()
 
2369
 {
 
2370
   int i;
 
2371
-  *(long*)&i = 0;  /* { dg-warning "type-punn" } */
 
2372
+  *(long*)&i = 0;  /* { dg-warning "type-punn" "type-punn" } */
 
2373
   return i;
 
2374
 }
 
2375
 
 
2376
-/* { dg-message "does break strict-aliasing" "" { target { *-*-* && lp64 } xfail *-*-* } 8 } */
 
2377
-/* { dg-message "initialized" "" { target { *-*-* && lp64 } xfail *-*-* } 8 } */
 
2378
+/* These messages are only expected for lp64, but fail there.  When they
 
2379
+   pass for lp64, replace "xfail *-*-*" with "target lp64".  */
 
2380
+
 
2381
+/* { dg-message "does break strict-aliasing" "break" { xfail *-*-* } 8 } */
 
2382
+/* { dg-message "initialized" "init" { xfail *-*-* } 8 } */
 
2383
Index: gcc/testsuite/gcc.dg/declspec-10.c
 
2384
===================================================================
 
2385
--- a/src/gcc/testsuite/gcc.dg/declspec-10.c    (revision
 
2386
+++ b/src/gcc/testsuite/gcc.dg/declspec-10.c    (revision
 
2387
@@ -44,4 +44,4 @@
 
2388
 
 
2389
 inline int main (void) { return 0; } /* { dg-warning "cannot inline function 'main'" } */
 
2390
 
 
2391
-/* { dg-message "error: register name not specified for 'y'" "" { target *-*-* } 19 } */
 
2392
+/* { dg-message "error: register name not specified for 'y'" "not specified" { target *-*-* } 19 } */
 
2393
Index: gcc/testsuite/gcc.dg/Wobjsize-1.c
 
2394
===================================================================
 
2395
--- a/src/gcc/testsuite/gcc.dg/Wobjsize-1.c     (revision
 
2396
+++ b/src/gcc/testsuite/gcc.dg/Wobjsize-1.c     (revision
 
2397
@@ -11,5 +11,5 @@
 
2398
 }
 
2399
 
 
2400
 /* { dg-warning "will always overflow destination buffer" "" { target *-*-* } 6 } */
 
2401
-/* { dg-message "file included" "" { target *-*-* } 0 } */
 
2402
-/* { dg-message "inlined from" "" { target *-*-* } 0 } */
 
2403
+/* { dg-message "file included" "included" { target *-*-* } 0 } */
 
2404
+/* { dg-message "inlined from" "inlined" { target *-*-* } 0 } */
 
2405
Index: gcc/testsuite/gcc.dg/cpp/include2a.c
 
2406
===================================================================
 
2407
--- a/src/gcc/testsuite/gcc.dg/cpp/include2a.c  (revision
 
2408
+++ b/src/gcc/testsuite/gcc.dg/cpp/include2a.c  (revision
 
2409
@@ -11,6 +11,6 @@
 
2410
 
 
2411
 /* These error is No such file or directory, just once.  However, this
 
2412
    message is locale-dependent, so don't test for it.  */
 
2413
-/* { dg-error "silly" "" { target *-*-* } 0 } */
 
2414
-/* { dg-error "missing" "" { target *-*-* } 0 } */
 
2415
-/* { dg-message "terminated" "" { target *-*-* } 0 } */
 
2416
+/* { dg-error "silly" "silly" { target *-*-* } 0 } */
 
2417
+/* { dg-error "missing" "missing" { target *-*-* } 0 } */
 
2418
+/* { dg-message "terminated" "terminated" { target *-*-* } 0 } */
 
2419
Index: gcc/testsuite/gcc.dg/cpp/pr30786.c
 
2420
===================================================================
 
2421
--- a/src/gcc/testsuite/gcc.dg/cpp/pr30786.c    (revision
 
2422
+++ b/src/gcc/testsuite/gcc.dg/cpp/pr30786.c    (revision
 
2423
@@ -1,8 +1,8 @@
 
2424
 /* PR preprocessor/30786 - _Pragma at end of file should not ICE */
 
2425
 /* { dg-do compile } */
 
2426
 
 
2427
-/* { dg-error "parenthesized" "" { target *-*-* } 9 } */
 
2428
-/* { dg-error "expected" "" { target *-*-* } 9 } */
 
2429
+/* { dg-error "parenthesized" "parenthesized" { target *-*-* } 9 } */
 
2430
+/* { dg-error "expected" "expected" { target *-*-* } 9 } */
 
2431
 
 
2432
 int x;
 
2433
 
 
2434
Index: gcc/testsuite/gcc.dg/cpp/pr28709.c
 
2435
===================================================================
 
2436
--- a/src/gcc/testsuite/gcc.dg/cpp/pr28709.c    (revision
 
2437
+++ b/src/gcc/testsuite/gcc.dg/cpp/pr28709.c    (revision
 
2438
@@ -4,5 +4,5 @@
 
2439
 /* { dg-do compile } */
 
2440
 #define foo - ## >>
 
2441
 foo;
 
2442
-/* { dg-error "expected identifier.*'-'" "" { target *-*-* } 6 } */
 
2443
-/* { dg-error pasting "" { target *-*-* } 6 } */
 
2444
+/* { dg-error "expected identifier.*'-'" "expected" { target *-*-* } 6 } */
 
2445
+/* { dg-error pasting "pasting" { target *-*-* } 6 } */
 
2446
Index: gcc/testsuite/gcc.dg/cpp/missing-header-MD.c
 
2447
===================================================================
 
2448
--- a/src/gcc/testsuite/gcc.dg/cpp/missing-header-MD.c  (revision
 
2449
+++ b/src/gcc/testsuite/gcc.dg/cpp/missing-header-MD.c  (revision
 
2450
@@ -3,8 +3,8 @@
 
2451
 /* { dg-options "-MD" } */
 
2452
 
 
2453
 #include "nonexistent.h"
 
2454
-/* { dg-message "nonexistent.h" "" { target *-*-* } 0 } */
 
2455
-/* { dg-message "terminated" "" { target *-*-* } 0 } */
 
2456
+/* { dg-message "nonexistent.h" "nonexistent.h" { target *-*-* } 0 } */
 
2457
+/* { dg-message "terminated" "terminated" { target *-*-* } 0 } */
 
2458
 
 
2459
 /* This declaration should not receive any diagnostic.  */
 
2460
 foo bar;
 
2461
Index: gcc/testsuite/gcc.dg/cpp/macspace2.c
 
2462
===================================================================
 
2463
--- a/src/gcc/testsuite/gcc.dg/cpp/macspace2.c  (revision
 
2464
+++ b/src/gcc/testsuite/gcc.dg/cpp/macspace2.c  (revision
 
2465
@@ -59,5 +59,5 @@
 
2466
 #define ag"abc"                /* { dg-error "requires whitespace" } */
 
2467
 
 
2468
 int dummy;
 
2469
-/* { dg-error "missing terminating" "" { target *-*-* } 6 } */
 
2470
-/* { dg-error "missing terminating" "" { target *-*-* } 10 } */
 
2471
+/* { dg-error "missing terminating" "missing-terminating" { target *-*-* } 6 } */
 
2472
+/* { dg-error "missing terminating" "missing-terminating" { target *-*-* } 10 } */
 
2473
Index: gcc/testsuite/gcc.dg/cpp/missing-header-1.c
 
2474
===================================================================
 
2475
--- a/src/gcc/testsuite/gcc.dg/cpp/missing-header-1.c   (revision
 
2476
+++ b/src/gcc/testsuite/gcc.dg/cpp/missing-header-1.c   (revision
 
2477
@@ -3,8 +3,8 @@
 
2478
 /* { dg-options "" } */
 
2479
 
 
2480
 #include "nonexistent.h"
 
2481
-/* { dg-message "nonexistent.h" "" { target *-*-* } 0 } */
 
2482
-/* { dg-message "terminated" "" { target *-*-* } 0 } */
 
2483
+/* { dg-message "nonexistent.h" "nonexistent.h" { target *-*-* } 0 } */
 
2484
+/* { dg-message "terminated" "terminated" { target *-*-* } 0 } */
 
2485
 
 
2486
 /* This declaration should not receive any diagnostic.  */
 
2487
 foo bar;
 
2488
Index: gcc/testsuite/gcc.dg/cpp/missing-header-MMD.c
 
2489
===================================================================
 
2490
--- a/src/gcc/testsuite/gcc.dg/cpp/missing-header-MMD.c (revision
 
2491
+++ b/src/gcc/testsuite/gcc.dg/cpp/missing-header-MMD.c (revision
 
2492
@@ -3,8 +3,8 @@
 
2493
 /* { dg-options "-MMD" } */
 
2494
 
 
2495
 #include "nonexistent.h"
 
2496
-/* { dg-message "nonexistent.h" "" { target *-*-* } 0 } */
 
2497
-/* { dg-message "terminated" "" { target *-*-* } 0 } */
 
2498
+/* { dg-message "nonexistent.h" "nonexistent.h" { target *-*-* } 0 } */
 
2499
+/* { dg-message "terminated" "terminated" { target *-*-* } 0 } */
 
2500
 
 
2501
 /* This declaration should not receive any diagnostic.  */
 
2502
 foo bar;
 
2503
Index: gcc/testsuite/gcc.dg/cpp/missing-sysheader-MD.c
 
2504
===================================================================
 
2505
--- a/src/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MD.c       (revision
 
2506
+++ b/src/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MD.c       (revision
 
2507
@@ -3,8 +3,8 @@
 
2508
 /* { dg-options "-MD" } */
 
2509
 
 
2510
 #include <nonexistent.h>
 
2511
-/* { dg-message "nonexistent.h" "" { target *-*-* } 0 } */
 
2512
-/* { dg-message "terminated" "" { target *-*-* } 0 } */
 
2513
+/* { dg-message "nonexistent.h" "nonexistent.h" { target *-*-* } 0 } */
 
2514
+/* { dg-message "terminated" "terminated" { target *-*-* } 0 } */
 
2515
 
 
2516
 /* This declaration should not receive any diagnostic.  */
 
2517
 foo bar;
 
2518
Index: gcc/testsuite/gcc.dg/cpp/missing-sysheader-MMD.c
 
2519
===================================================================
 
2520
--- a/src/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MMD.c      (revision
 
2521
+++ b/src/gcc/testsuite/gcc.dg/cpp/missing-sysheader-MMD.c      (revision
 
2522
@@ -3,8 +3,8 @@
 
2523
 /* { dg-options "-MMD" } */
 
2524
 
 
2525
 #include <nonexistent.h>
 
2526
-/* { dg-message "nonexistent.h" "" { target *-*-* } 0 } */
 
2527
-/* { dg-message "terminated" "" { target *-*-* } 0 } */
 
2528
+/* { dg-message "nonexistent.h" "nonexistent.h" { target *-*-* } 0 } */
 
2529
+/* { dg-message "terminated" "terminated" { target *-*-* } 0 } */
 
2530
 
 
2531
 /* This declaration should not receive any diagnostic.  */
 
2532
 foo bar;
 
2533
Index: gcc/testsuite/gcc.dg/20031223-1.c
 
2534
===================================================================
 
2535
--- a/src/gcc/testsuite/gcc.dg/20031223-1.c     (revision
 
2536
+++ b/src/gcc/testsuite/gcc.dg/20031223-1.c     (revision
 
2537
@@ -7,7 +7,7 @@
 
2538
 
 
2539
 void f ()
 
2540
 {
 
2541
- l: int; /* { dg-error "a label can only be part of a statement and a declaration is not a statement" } */
 
2542
- /* { dg-warning "useless type name in empty declaration" "" { target *-*-* } 10 } */
 
2543
- /* { dg-error "label at end of compound statement" "" { target *-*-* } 10 } */
 
2544
+ l: int; /* { dg-error "a label can only be part of a statement and a declaration is not a statement" "not stmt" } */
 
2545
+ /* { dg-warning "useless type name in empty declaration" "type name" { target *-*-* } 10 } */
 
2546
+ /* { dg-error "label at end of compound statement" "label" { target *-*-* } 10 } */
 
2547
 }
 
2548
Index: gcc/testsuite/gcc.dg/matrix/matrix.exp
 
2549
===================================================================
 
2550
--- a/src/gcc/testsuite/gcc.dg/matrix/matrix.exp        (revision
 
2551
+++ b/src/gcc/testsuite/gcc.dg/matrix/matrix.exp        (revision
 
2552
@@ -39,9 +39,6 @@
 
2553
 set tool gcc
 
2554
 set prof_ext "gcda"
 
2555
 
 
2556
-# Override the list defined in profopt.exp.
 
2557
-set PROFOPT_OPTIONS [list {}]
 
2558
-
 
2559
 if $tracelevel then {
 
2560
     strace $tracelevel
 
2561
 }
 
2562
@@ -49,6 +46,10 @@
 
2563
 # Load support procs.
 
2564
 load_lib profopt.exp
 
2565
 
 
2566
+# Save and override the default list defined in profopt.exp.
 
2567
+set matrix_save_profopt_options $PROFOPT_OPTIONS
 
2568
+set PROFOPT_OPTIONS [list {}]
 
2569
+
 
2570
 # These are globals used by profopt-execute.  The first is options
 
2571
 # needed to generate profile data, the second is options to use the
 
2572
 # profile data.
 
2573
@@ -63,3 +64,4 @@
 
2574
     profopt-execute $src
 
2575
 }
 
2576
 
 
2577
+set PROFOPT_OPTIONS $matrix_save_profopt_options
 
2578
Index: gcc/testsuite/gcc.dg/utf-dflt2.c
 
2579
===================================================================
 
2580
--- a/src/gcc/testsuite/gcc.dg/utf-dflt2.c      (revision
 
2581
+++ b/src/gcc/testsuite/gcc.dg/utf-dflt2.c      (revision
 
2582
@@ -2,8 +2,8 @@
 
2583
 /* { dg-do compile } */
 
2584
 /* { dg-options "" } */
 
2585
 
 
2586
-const void     *s0 = u8"a";            /* { dg-error "undeclared" } */
 
2587
-               /* { dg-error "expected ',' or ';'" "" { target *-*-* } 5 } */
 
2588
+const void     *s0 = u8"a";            /* { dg-error "undeclared" "undeclared" } */
 
2589
+               /* { dg-error "expected ',' or ';'" "expected" { target *-*-* } 5 } */
 
2590
 
 
2591
 #define u8     "a"
 
2592
 
 
2593
Index: gcc/testsuite/gcc.dg/pr30551-3.c
 
2594
===================================================================
 
2595
--- a/src/gcc/testsuite/gcc.dg/pr30551-3.c      (revision
 
2596
+++ b/src/gcc/testsuite/gcc.dg/pr30551-3.c      (revision
 
2597
@@ -2,6 +2,6 @@
 
2598
 /* { dg-do compile } */
 
2599
 /* { dg-options "-pedantic-errors" } */
 
2600
 /* { dg-skip-if "-Wmain not enabled with -pedantic on SPU" { spu-*-* } } */
 
2601
-void main(char a) {} /* { dg-error "first argument of .main. should be .int." } */
 
2602
-/* { dg-error ".main. takes only zero or two arguments" "" { target *-*-* } 5 } */ 
 
2603
-/* { dg-error "return type of .main. is not .int." "" { target *-*-* } 5 } */ 
 
2604
+void main(char a) {} /* { dg-error "first argument of .main. should be .int." "int" } */
 
2605
+/* { dg-error ".main. takes only zero or two arguments" "zero or two" { target *-*-* } 5 } */ 
 
2606
+/* { dg-error "return type of .main. is not .int." "return type" { target *-*-* } 5 } */ 
 
2607
Index: gcc/testsuite/gcc.dg/Wconversion-integer.c
 
2608
===================================================================
 
2609
--- a/src/gcc/testsuite/gcc.dg/Wconversion-integer.c    (revision
 
2610
+++ b/src/gcc/testsuite/gcc.dg/Wconversion-integer.c    (revision
 
2611
@@ -40,10 +40,10 @@
 
2612
   fuc ('A');
 
2613
   uc = 'A';
 
2614
 
 
2615
-  uc = x ? 1U : -1; /* { dg-warning " conversion" } */
 
2616
-  /* { dg-warning "negative integer implicitly converted to unsigned type" "" { target *-*-* } 43 } */
 
2617
-  uc = x ? SCHAR_MIN : 1U; /* { dg-warning " conversion" } */
 
2618
-  /* { dg-warning "negative integer implicitly converted to unsigned type" "" { target *-*-* } 45 } */
 
2619
+  uc = x ? 1U : -1; /* { dg-warning " conversion" "conversion" } */
 
2620
+  /* { dg-warning "negative integer implicitly converted to unsigned type" "implicit" { target *-*-* } 43 } */
 
2621
+  uc = x ? SCHAR_MIN : 1U; /* { dg-warning " conversion" "conversion" } */
 
2622
+  /* { dg-warning "negative integer implicitly converted to unsigned type" "implicit" { target *-*-* } 45 } */
 
2623
   uc = x ? 1 : -1; /* { dg-warning "negative integer implicitly converted to unsigned type" } */
 
2624
   uc = x ? SCHAR_MIN : 1; /* { dg-warning "negative integer implicitly converted to unsigned type" } */
 
2625
   ui = x ? 1U : -1; /* { dg-warning "negative integer implicitly converted to unsigned type" } */
 
2626
Index: gcc/testsuite/gcc.dg/c99-vla-jump-1.c
 
2627
===================================================================
 
2628
--- a/src/gcc/testsuite/gcc.dg/c99-vla-jump-1.c (revision
 
2629
+++ b/src/gcc/testsuite/gcc.dg/c99-vla-jump-1.c (revision
 
2630
@@ -305,5 +305,5 @@
 
2631
 void fa288 (int n) { { int b[n]; { int c[n]; 0;} { int d[n]; 0;} ; int e[n]; 0;}; { int f[n]; { int g[n]; 0;}; { int h[n]; 0;}; ; int i[n]; 0;}; ; int j[n]; 0;a: goto a;  }
 
2632
 
 
2633
 /* Match extra informative notes.  */
 
2634
-/* { dg-message "note: label '\[^\n'\]*' defined here" "note: expected" { target *-*-* } 0 } */
 
2635
-/* { dg-message "note: '\[^\n'\]*' declared here" "note: expected" { target *-*-* } 0 } */
 
2636
+/* { dg-message "note: label '\[^\n'\]*' defined here" "note: defined" { target *-*-* } 0 } */
 
2637
+/* { dg-message "note: '\[^\n'\]*' declared here" "note: declared" { target *-*-* } 0 } */
 
2638
Index: gcc/testsuite/gcc.dg/declspec-18.c
 
2639
===================================================================
 
2640
--- a/src/gcc/testsuite/gcc.dg/declspec-18.c    (revision
 
2641
+++ b/src/gcc/testsuite/gcc.dg/declspec-18.c    (revision
 
2642
@@ -5,7 +5,7 @@
 
2643
 
 
2644
 int z;                  /* { dg-message "previous declaration of 'z'" } */
 
2645
 typedef t2 *z;          /* { dg-error "unknown type name 't2'" } */
 
2646
-/* { dg-error "'z' redeclared " "" { target *-*-* } 7 } */
 
2647
+/* { dg-error "'z' redeclared " "redeclared" { target *-*-* } 7 } */
 
2648
 
 
2649
 extern t3 p1(void);     /* { dg-error "unknown type name 't3'" } */
 
2650
 int p2(const t4 x);     /* { dg-error "unknown type name 't4'" } */
 
2651
@@ -23,36 +23,36 @@
 
2652
 };
 
2653
 
 
2654
 typeof (z) c1;
 
2655
-typeof (x1) c2;         /* { dg-error "undeclared" } */
 
2656
+typeof (x1) c2;         /* { dg-error "undeclared" "undeclared" } */
 
2657
 typeof (const t11) c3;  /* { dg-error "unknown type name 't11'" } */
 
2658
-typeof (t12 *) c3;      /* { dg-error "unknown type name 't12'" "" { xfail *-*-* } } */
 
2659
-/* { dg-bogus "unknown type name 'x1'" "" { target *-*-* } 26 } */
 
2660
-/* { dg-bogus "undeclared" "" { xfail *-*-* } 28 } */
 
2661
-/* { dg-bogus "expected expression before" "" { xfail *-*-* } 28 } */
 
2662
+typeof (t12 *) c3;      /* { dg-error "unknown type name 't12'" "t12" { xfail *-*-* } } */
 
2663
+/* { dg-bogus "unknown type name 'x1'" unknown"" { target *-*-* } 26 } */
 
2664
+/* { dg-bogus "undeclared" "undeclared" { xfail *-*-* } 28 } */
 
2665
+/* { dg-bogus "expected expression before" "expected" { xfail *-*-* } 28 } */
 
2666
 
 
2667
 int recover1;
 
2668
 
 
2669
 int s0 = sizeof (z);
 
2670
-int s1 = sizeof (x2);          /* { dg-error "undeclared" } */
 
2671
+int s1 = sizeof (x2);          /* { dg-error "undeclared" "undeclared" } */
 
2672
 int s2 = sizeof (const t13);   /* { dg-error "unknown type name 't13'" } */
 
2673
-int s3 = sizeof (t14 *);       /* { dg-error "unknown type name 't14'" "" { xfail *-*-* } } */
 
2674
+int s3 = sizeof (t14 *);       /* { dg-error "unknown type name 't14'" "t14" { xfail *-*-* } } */
 
2675
 
 
2676
 int recover2;
 
2677
 
 
2678
-/* { dg-bogus "unknown type name 'x2'" "" { target *-*-* } 36 } */
 
2679
-/* { dg-bogus "undeclared" "" { xfail *-*-* } 38 } */
 
2680
-/* { dg-bogus "expected expression before" "" { xfail *-*-* } 38 } */
 
2681
+/* { dg-bogus "unknown type name 'x2'" "unknown" { target *-*-* } 36 } */
 
2682
+/* { dg-bogus "undeclared" "undeclared" { xfail *-*-* } 38 } */
 
2683
+/* { dg-bogus "expected expression before" "expected" { xfail *-*-* } 38 } */
 
2684
 
 
2685
 int a0 = __alignof__ (z);
 
2686
 int a1 = __alignof__ (x3);          /* { dg-error "undeclared" } */
 
2687
 int a2 = __alignof__ (const t15);   /* { dg-error "unknown type name 't15'" } */
 
2688
-int a3 = __alignof__ (t16 *);       /* { dg-error "unknown type name 't16'" "" { xfail *-*-* } } */
 
2689
+int a3 = __alignof__ (t16 *);       /* { dg-error "unknown type name 't16'" "t16" { xfail *-*-* } } */
 
2690
 
 
2691
 int recover3;
 
2692
 
 
2693
 /* { dg-bogus "unknown type name 'x3'" "" { target *-*-* } 47 } */
 
2694
-/* { dg-bogus "undeclared" "" { xfail *-*-* } 49 } */
 
2695
-/* { dg-bogus "expected expression before" "" { xfail *-*-* } 49 } */
 
2696
+/* { dg-bogus "undeclared" "undeclared" { xfail *-*-* } 49 } */
 
2697
+/* { dg-bogus "expected expression before" "expected" { xfail *-*-* } 49 } */
 
2698
 
 
2699
 
 
2700
 /* Cannot detect (undefd_type *) or (undefd_type (*) because it would
 
2701
@@ -60,14 +60,14 @@
 
2702
 
 
2703
 const char *f1()
 
2704
 {
 
2705
-  return (const t17) "abc";       /* { dg-error "unknown type name 't17'" } */
 
2706
-/* { dg-bogus "expected" "" { target *-*-* } 63 } */
 
2707
+  return (const t17) "abc";       /* { dg-error "unknown type name 't17'" "t17" } */
 
2708
+/* { dg-bogus "expected" "expected" { target *-*-* } 63 } */
 
2709
 }
 
2710
 
 
2711
 const char *f2()
 
2712
 {
 
2713
-  return (const t18 *) "abc";     /* { dg-error "unknown type name 't18'" } */
 
2714
-/* { dg-bogus "expected" "" { target *-*-* } 69 } */
 
2715
+  return (const t18 *) "abc";     /* { dg-error "unknown type name 't18'" "t18" } */
 
2716
+/* { dg-bogus "expected" "expected" { target *-*-* } 69 } */
 
2717
 }
 
2718
 
 
2719
 
 
2720
@@ -76,15 +76,15 @@
 
2721
 
 
2722
 void *f3(int x)
 
2723
 {
 
2724
-  return (void *) ((void *(*)(t19)) f3);       /* { dg-error "unknown type name 't19'" } */
 
2725
-/* { dg-bogus "expected" "" { xfail *-*-* } 79 } */
 
2726
+  return (void *) ((void *(*)(t19)) f3);       /* { dg-error "unknown type name 't19'" "t19" } */
 
2727
+/* { dg-bogus "expected" "expected" { xfail *-*-* } 79 } */
 
2728
 }
 
2729
 
 
2730
 const void *f4()
 
2731
 {
 
2732
   return &((const t20){1});       /* { dg-error "unknown type name 't20'" } */
 
2733
-/* { dg-bogus "return discards 'const'" "" { target *-*-* } 85 } */
 
2734
-/* { dg-bogus "expected" "" { target *-*-* } 85 } */
 
2735
+/* { dg-bogus "return discards 'const'" "discards" { target *-*-* } 85 } */
 
2736
+/* { dg-bogus "expected" "expected" { target *-*-* } 85 } */
 
2737
 }
 
2738
 
 
2739
 int f5(__builtin_va_list ap)
 
2740
@@ -95,6 +95,6 @@
 
2741
 
 
2742
 int f6(void)
 
2743
 {
 
2744
-  return __builtin_offsetof (t23, field); /* { dg-error "unknown type name 't23'" } */
 
2745
-/* { dg-bogus "request for member" "" { target *-*-* } 98 } */
 
2746
+  return __builtin_offsetof (t23, field); /* { dg-error "unknown type name 't23'" "t23" } */
 
2747
+/* { dg-bogus "request for member" "request" { target *-*-* } 98 } */
 
2748
 }
 
2749
Index: gcc/testsuite/gcc.dg/c99-vla-jump-5.c
 
2750
===================================================================
 
2751
--- a/src/gcc/testsuite/gcc.dg/c99-vla-jump-5.c (revision
 
2752
+++ b/src/gcc/testsuite/gcc.dg/c99-vla-jump-5.c (revision
 
2753
@@ -30,5 +30,5 @@
 
2754
 }
 
2755
 
 
2756
 /* Match extra informative notes.  */
 
2757
-/* { dg-message "note: switch starts here" "note: expected" { target *-*-* } 0 } */
 
2758
-/* { dg-message "note: '\[^\n'\]*' declared here" "note: expected" { target *-*-* } 0 } */
 
2759
+/* { dg-message "note: switch starts here" "note: starts" { target *-*-* } 0 } */
 
2760
+/* { dg-message "note: '\[^\n'\]*' declared here" "note: declared" { target *-*-* } 0 } */
 
2761
Index: gcc/testsuite/gcc.dg/redecl-1.c
 
2762
===================================================================
 
2763
--- a/src/gcc/testsuite/gcc.dg/redecl-1.c       (revision
 
2764
+++ b/src/gcc/testsuite/gcc.dg/redecl-1.c       (revision
 
2765
@@ -52,21 +52,21 @@
 
2766
 
 
2767
 void prime4(void)
 
2768
 {
 
2769
-  bar4();                      /* { dg-warning "implicit declaration of function" } */
 
2770
+  bar4();                      /* { dg-warning "implicit declaration of function" "implicit" } */
 
2771
 }
 
2772
 
 
2773
 void test4(void)
 
2774
 {
 
2775
   extern double bar4(double);  /* { dg-error "conflict" } */
 
2776
-/* { dg-message "note: previous implicit declaration" "" { target *-*-* } 55 } */
 
2777
+/* { dg-message "note: previous implicit declaration" "previous" { target *-*-* } 55 } */
 
2778
 }
 
2779
 
 
2780
 /* Implicit decl, clashing with extern at previous function scope.  */
 
2781
 
 
2782
 void prime5(void)
 
2783
 {
 
2784
-  extern double bar5(double);  /* { dg-message "note: previous declaration" "" } */
 
2785
-} /* { dg-message "note: previous implicit declaration" "" { target *-*-* } 68 } */
 
2786
+  extern double bar5(double);  /* { dg-message "note: previous declaration" "previous 1" } */
 
2787
+} /* { dg-message "note: previous implicit declaration" "previous 2" { target *-*-* } 68 } */
 
2788
 
 
2789
 void test5(void)
 
2790
 {
 
2791
Index: gcc/testsuite/gcc.dg/di-longlong64-sync-1.c
 
2792
===================================================================
 
2793
--- a/src/gcc/testsuite/gcc.dg/di-longlong64-sync-1.c   (revision
 
2794
+++ b/src/gcc/testsuite/gcc.dg/di-longlong64-sync-1.c   (revision
 
2795
@@ -3,8 +3,8 @@
 
2796
 /* { dg-options "-std=gnu99" } */
 
2797
 /* { dg-additional-options "-march=pentium" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */
 
2798
 
 
2799
-/* { dg-message "note: '__sync_fetch_and_nand' changed semantics in GCC 4.4" "" { target *-*-* } 0 } */
 
2800
-/* { dg-message "note: '__sync_nand_and_fetch' changed semantics in GCC 4.4" "" { target *-*-* } 0 } */
 
2801
+/* { dg-message "note: '__sync_fetch_and_nand' changed semantics in GCC 4.4" "fetch_and_nand" { target *-*-* } 0 } */
 
2802
+/* { dg-message "note: '__sync_nand_and_fetch' changed semantics in GCC 4.4" "nand_and_fetch" { target *-*-* } 0 } */
 
2803
 
 
2804
 
 
2805
 /* Test basic functionality of the intrinsics.  The operations should
 
2806
Index: gcc/testsuite/gcc.dg/noncompile/pr44517.c
 
2807
===================================================================
 
2808
--- a/src/gcc/testsuite/gcc.dg/noncompile/pr44517.c     (revision
 
2809
+++ b/src/gcc/testsuite/gcc.dg/noncompile/pr44517.c     (revision
 
2810
@@ -1,7 +1,7 @@
 
2811
 /* PR c/44517: Improve diagnostic for misspelled typename in function declaration. */
 
2812
 int f1(int x, pid_t y, long z, in t) {
 
2813
-/* { dg-error "unknown type name 'pid_t'" "" { target *-*-* } 2 } */
 
2814
-/* { dg-error "unknown type name 'in'" "" { target *-*-* } 2 } */
 
2815
+/* { dg-error "unknown type name 'pid_t'" "pid_t" { target *-*-* } 2 } */
 
2816
+/* { dg-error "unknown type name 'in'" "in" { target *-*-* } 2 } */
 
2817
   return x + y + z + t;
 
2818
 }
 
2819
 
 
2820
Index: gcc/testsuite/gcc.dg/noncompile/pr52290.c
 
2821
===================================================================
 
2822
--- a/src/gcc/testsuite/gcc.dg/noncompile/pr52290.c     (revision
 
2823
+++ b/src/gcc/testsuite/gcc.dg/noncompile/pr52290.c     (revision
 
2824
@@ -1,3 +1,3 @@
 
2825
-/* { dg-error "undeclared here" "" { target *-*-* } 3 } */
 
2826
-/* { dg-error "expected" "" { target *-*-* } 3 } */
 
2827
+/* { dg-error "undeclared here" "undeclared" { target *-*-* } 3 } */
 
2828
+/* { dg-error "expected" "expected" { target *-*-* } 3 } */
 
2829
 int f()[j]
 
2830
Index: gcc/testsuite/gcc.dg/utf-dflt.c
 
2831
===================================================================
 
2832
--- a/src/gcc/testsuite/gcc.dg/utf-dflt.c       (revision
 
2833
+++ b/src/gcc/testsuite/gcc.dg/utf-dflt.c       (revision
 
2834
@@ -3,10 +3,10 @@
 
2835
 /* { dg-do compile } */
 
2836
 /* { dg-options "" } */
 
2837
 
 
2838
-const unsigned short   c0      = u'a';         /* { dg-error "undeclared" } */
 
2839
-               /* { dg-error "expected ',' or ';'" "" { target *-*-* } 6 } */
 
2840
-const unsigned long    c1      = U'a';         /* { dg-error "undeclared" } */
 
2841
-               /* { dg-error "expected ',' or ';'" "" { target *-*-* } 8 } */
 
2842
+const unsigned short   c0      = u'a';         /* { dg-error "undeclared" "undeclared" } */
 
2843
+               /* { dg-error "expected ',' or ';'" "expected" { target *-*-* } 6 } */
 
2844
+const unsigned long    c1      = U'a';         /* { dg-error "undeclared" "undeclared" } */
 
2845
+               /* { dg-error "expected ',' or ';'" "expected" { target *-*-* } 8 } */
 
2846
 
 
2847
 #define u      1 +
 
2848
 #define U      2 +
 
2849
Index: gcc/testsuite/gcc.dg/pr27953.c
 
2850
===================================================================
 
2851
--- a/src/gcc/testsuite/gcc.dg/pr27953.c        (revision
 
2852
+++ b/src/gcc/testsuite/gcc.dg/pr27953.c        (revision
 
2853
@@ -1,8 +1,8 @@
 
2854
 /* PR c/27953 */
 
2855
 
 
2856
-void foo(struct A a) {}  /* { dg-warning "declared inside parameter list" } */
 
2857
-/* { dg-warning "its scope is only" "" { target *-*-* } 3 } */
 
2858
-/* { dg-error "incomplete type" "" { target *-*-* } 3 } */
 
2859
+void foo(struct A a) {}  /* { dg-warning "declared inside parameter list" "inside" } */
 
2860
+/* { dg-warning "its scope is only" "scope" { target *-*-* } 3 } */
 
2861
+/* { dg-error "incomplete type" "incomplete" { target *-*-* } 3 } */
 
2862
 
 
2863
-void foo() {}            /* { dg-error "redefinition" } */
 
2864
-/* { dg-message "note: previous definition" "" { target *-*-* } 3 } */
 
2865
+void foo() {}            /* { dg-error "redefinition" "redef" } */
 
2866
+/* { dg-message "note: previous definition" "previous" { target *-*-* } 3 } */
 
2867
Index: gcc/testsuite/gcc.dg/pr30551-4.c
 
2868
===================================================================
 
2869
--- a/src/gcc/testsuite/gcc.dg/pr30551-4.c      (revision
 
2870
+++ b/src/gcc/testsuite/gcc.dg/pr30551-4.c      (revision
 
2871
@@ -2,7 +2,7 @@
 
2872
 /* { dg-do compile } */
 
2873
 /* { dg-options "-pedantic-errors -Wno-main" } */
 
2874
 
 
2875
-void main(char a) {} /* { dg-bogus "first argument of .main. should be .int." } */
 
2876
-/* { dg-bogus ".main. takes only zero or two arguments" "" { target *-*-* } 5 } */ 
 
2877
-/* { dg-bogus "return type of .main. is not .int." "" { target *-*-* } 5 } */ 
 
2878
+void main(char a) {} /* { dg-bogus "first argument of .main. should be .int." "int" } */
 
2879
+/* { dg-bogus ".main. takes only zero or two arguments" "zero or two" { target *-*-* } 5 } */ 
 
2880
+/* { dg-bogus "return type of .main. is not .int." "return type" { target *-*-* } 5 } */ 
 
2881
 
 
2882
Index: gcc/testsuite/gcc.dg/pr14475.c
 
2883
===================================================================
 
2884
--- a/src/gcc/testsuite/gcc.dg/pr14475.c        (revision
 
2885
+++ b/src/gcc/testsuite/gcc.dg/pr14475.c        (revision
 
2886
@@ -3,8 +3,8 @@
 
2887
 
 
2888
 struct tree_common
 
2889
 {
 
2890
-  enum tree_code code : 8; /* { dg-error "ISO C forbids forward references to" "" } */
 
2891
-  /* { dg-error "type of bit-field .code. is a GCC extension" "" { target *-*-* } 6 } */
 
2892
-  /* { dg-warning "narrower than values of its type" "" { target *-*-* } 6 } */
 
2893
-  /* { dg-error "incomplete type" "" { target *-*-* } 6 } */
 
2894
+  enum tree_code code : 8; /* { dg-error "ISO C forbids forward references to" "forward ref" } */
 
2895
+  /* { dg-error "type of bit-field .code. is a GCC extension" "extension" { target *-*-* } 6 } */
 
2896
+  /* { dg-warning "narrower than values of its type" "narrower" { target *-*-* } 6 } */
 
2897
+  /* { dg-error "incomplete type" "incomplete" { target *-*-* } 6 } */
 
2898
 };
 
2899
Index: gcc/testsuite/gcc.dg/c99-vla-jump-2.c
 
2900
===================================================================
 
2901
--- a/src/gcc/testsuite/gcc.dg/c99-vla-jump-2.c (revision
 
2902
+++ b/src/gcc/testsuite/gcc.dg/c99-vla-jump-2.c (revision
 
2903
@@ -305,5 +305,5 @@
 
2904
 void fb288 (int n) { P0A:goto P0A;{ int b[n]; P01A:goto P01A;{ int c[n]; P012A:goto P012A;0;} P01B:goto P01B;{ int d[n]; P013A:goto P013A;0;} P01C:goto P01C;; int e[n]; P014A:goto P014A;0;}; P0B:goto P0B;{ int f[n]; P02A:goto P02A;{ int g[n]; P024A:goto P024A;0;}; P02B:goto P02B;{ int h[n]; P025A:goto P025A;0;}; P02C:goto P02C;; int i[n]; P026A:goto P026A;0;}; P0C:goto P0C;; int j[n]; P03A:goto P03A;0;a: goto a; P03B:goto P03B; }
 
2905
 
 
2906
 /* Match extra informative notes.  */
 
2907
-/* { dg-message "note: label '\[^\n'\]*' defined here" "note: expected" { target *-*-* } 0 } */
 
2908
-/* { dg-message "note: '\[^\n'\]*' declared here" "note: expected" { target *-*-* } 0 } */
 
2909
+/* { dg-message "note: label '\[^\n'\]*' defined here" "note: defined" { target *-*-* } 0 } */
 
2910
+/* { dg-message "note: '\[^\n'\]*' declared here" "note: declared" { target *-*-* } 0 } */
 
2911
Index: gcc/testsuite/gcc.dg/transparent-union-3.c
 
2912
===================================================================
 
2913
--- a/src/gcc/testsuite/gcc.dg/transparent-union-3.c    (revision
 
2914
+++ b/src/gcc/testsuite/gcc.dg/transparent-union-3.c    (revision
 
2915
@@ -6,15 +6,15 @@
 
2916
 
 
2917
 enum e { A };
 
2918
 
 
2919
-union __attribute__((__transparent_union__)) ue1 { enum e; }; /* { dg-warning "declaration does not declare anything" } */
 
2920
-/* { dg-warning "union cannot be made transparent" "" { target *-*-* } 9 } */
 
2921
-union ue2 { enum e; } __attribute__((__transparent_union__)); /* { dg-warning "declaration does not declare anything" } */
 
2922
-/* { dg-warning "union cannot be made transparent" "" { target *-*-* } 11 } */
 
2923
+union __attribute__((__transparent_union__)) ue1 { enum e; }; /* { dg-warning "declaration does not declare anything" "not anything" } */
 
2924
+/* { dg-warning "union cannot be made transparent" "cannot" { target *-*-* } 9 } */
 
2925
+union ue2 { enum e; } __attribute__((__transparent_union__)); /* { dg-warning "declaration does not declare anything" "not anything" } */
 
2926
+/* { dg-warning "union cannot be made transparent" "cannot" { target *-*-* } 11 } */
 
2927
 
 
2928
-union __attribute__((__transparent_union__)) ui1 { int; }; /* { dg-warning "declaration does not declare anything" } */
 
2929
-/* { dg-warning "union cannot be made transparent" "" { target *-*-* } 14 } */
 
2930
-union ui2 { int; } __attribute__((__transparent_union__)); /* { dg-warning "declaration does not declare anything" } */
 
2931
-/* { dg-warning "union cannot be made transparent" "" { target *-*-* } 16 } */
 
2932
+union __attribute__((__transparent_union__)) ui1 { int; }; /* { dg-warning "declaration does not declare anything" "not anything" } */
 
2933
+/* { dg-warning "union cannot be made transparent" "cannot" { target *-*-* } 14 } */
 
2934
+union ui2 { int; } __attribute__((__transparent_union__)); /* { dg-warning "declaration does not declare anything" "no anything" } */
 
2935
+/* { dg-warning "union cannot be made transparent" "cannot" { target *-*-* } 16 } */
 
2936
 
 
2937
 union __attribute__((__transparent_union__)) u1 { };
 
2938
 /* { dg-warning "union cannot be made transparent" "" { target *-*-* } 19 } */
 
2939
Index: gcc/testsuite/gcc.dg/pr45461.c
 
2940
===================================================================
 
2941
--- a/src/gcc/testsuite/gcc.dg/pr45461.c        (revision
 
2942
+++ b/src/gcc/testsuite/gcc.dg/pr45461.c        (revision
 
2943
@@ -9,10 +9,10 @@
 
2944
   short e;
 
2945
   va_list ap;
 
2946
   va_start (ap, i);
 
2947
-  e = va_arg (ap, short);      /* { dg-warning "is promoted" } */
 
2948
+  e = va_arg (ap, short);      /* { dg-warning "is promoted" "promoted" } */
 
2949
   va_end (ap);
 
2950
   return e;
 
2951
 }
 
2952
 
 
2953
-/* { dg-message "note: \\(so you should pass" "" {target *-*-* } 12 } */
 
2954
-/* { dg-message "note: if this code" "" {target *-*-* } 12 } */
 
2955
+/* { dg-message "note: \\(so you should pass" "should pass" {target *-*-* } 12 } */
 
2956
+/* { dg-message "note: if this code" "if this code" {target *-*-* } 12 } */
 
2957
Index: gcc/testsuite/gcc.dg/ia64-sync-2.c
 
2958
===================================================================
 
2959
--- a/src/gcc/testsuite/gcc.dg/ia64-sync-2.c    (revision
 
2960
+++ b/src/gcc/testsuite/gcc.dg/ia64-sync-2.c    (revision
 
2961
@@ -4,8 +4,8 @@
 
2962
 /* { dg-options "-march=i486" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */
 
2963
 /* { dg-options "-mcpu=v9" { target sparc*-*-* } } */
 
2964
 
 
2965
-/* { dg-message "note: '__sync_fetch_and_nand' changed semantics in GCC 4.4" "" { target *-*-* } 0 } */
 
2966
-/* { dg-message "note: '__sync_nand_and_fetch' changed semantics in GCC 4.4" "" { target *-*-* } 0 } */
 
2967
+/* { dg-message "note: '__sync_fetch_and_nand' changed semantics in GCC 4.4" "fetch_and_nand" { target *-*-* } 0 } */
 
2968
+/* { dg-message "note: '__sync_nand_and_fetch' changed semantics in GCC 4.4" "nand_and_fetch" { target *-*-* } 0 } */
 
2969
 
 
2970
 /* Test basic functionality of the intrinsics.  */
 
2971
 
 
2972
Index: gcc/testsuite/gcc.dg/parser-pr28152-2.c
 
2973
===================================================================
 
2974
--- a/src/gcc/testsuite/gcc.dg/parser-pr28152-2.c       (revision
 
2975
+++ b/src/gcc/testsuite/gcc.dg/parser-pr28152-2.c       (revision
 
2976
@@ -7,5 +7,5 @@
 
2977
   __complex__ float z;
 
2978
 
 
2979
   z = __complex__ (1.90000007326203904e+19, 0.0);   /* { dg-error "__complex__" } */
 
2980
-  z = __complex__ (1.0e+0, 0.0) / z;   /* { dg-error "__complex__" } */
 
2981
-  /* { dg-error "at end of input" "" { target *-*-* } 10 } */
 
2982
+  z = __complex__ (1.0e+0, 0.0) / z;   /* { dg-error "__complex__" "Complex" } */
 
2983
+  /* { dg-error "at end of input" "end of input" { target *-*-* } 10 } */
 
2984
Index: gcc/testsuite/gcc.dg/torture/stackalign/alloca-6.c
 
2985
===================================================================
 
2986
--- a/src/gcc/testsuite/gcc.dg/torture/stackalign/alloca-6.c    (revision
 
2987
+++ b/src/gcc/testsuite/gcc.dg/torture/stackalign/alloca-6.c    (revision
 
2988
@@ -1,6 +1,6 @@
 
2989
 /* PR middle-end/45234 */
 
2990
 /* { dg-do run { target { { i?86-*-* x86_64-*-* } && ia32 } } } */
 
2991
-/* { dg-options "-mincoming-stack-boundary=2 -mpreferred-stack-boundary=2" } */
 
2992
+/* { dg-additional-options "-mincoming-stack-boundary=2 -mpreferred-stack-boundary=2" } */
 
2993
 
 
2994
 #include "check.h"
 
2995
 
 
2996
Index: gcc/testsuite/gcc.dg/torture/stackalign/vararg-3.c
 
2997
===================================================================
 
2998
--- a/src/gcc/testsuite/gcc.dg/torture/stackalign/vararg-3.c    (revision
 
2999
+++ b/src/gcc/testsuite/gcc.dg/torture/stackalign/vararg-3.c    (revision
 
3000
@@ -1,6 +1,6 @@
 
3001
 /* PR middle-end/37009 */
 
3002
 /* { dg-do run { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
 
3003
-/* { dg-options "-msse2" } */
 
3004
+/* { dg-additional-options "-mmmx -msse2" } */
 
3005
 /* { dg-require-effective-target sse2_runtime } */
 
3006
 
 
3007
 #include <stdarg.h>
 
3008
Index: gcc/testsuite/gcc.dg/torture/stackalign/stackalign.exp
 
3009
===================================================================
 
3010
--- a/src/gcc/testsuite/gcc.dg/torture/stackalign/stackalign.exp        (revision
 
3011
+++ b/src/gcc/testsuite/gcc.dg/torture/stackalign/stackalign.exp        (revision
 
3012
@@ -1,4 +1,4 @@
 
3013
-# Copyright (C) 2008, 2010
 
3014
+# Copyright (C) 2008, 2010, 2012
 
3015
 # Free Software Foundation, Inc.
 
3016
 
 
3017
 # This program is free software; you can redistribute it and/or modify
 
3018
@@ -18,33 +18,53 @@
 
3019
 # This harness is for tests that should be run at all optimisation levels.
 
3020
 
 
3021
 load_lib gcc-dg.exp
 
3022
+load_lib torture-options.exp
 
3023
 
 
3024
-set additional_flags ""
 
3025
+global DG_TORTURE_OPTIONS LTO_TORTURE_OPTIONS
 
3026
+
 
3027
+dg-init
 
3028
+torture-init
 
3029
+
 
3030
+# default_flags are replaced by a dg-options test directive, or appended
 
3031
+# to by using dg-additional-options.  Use default_flags for options that
 
3032
+# are used in all of the torture sets to limit the amount of noise in
 
3033
+# test summaries.
 
3034
+set default_flags ""
 
3035
+
 
3036
+# torture_flags are combined with other torture options and do not
 
3037
+# affect options specified within a test.
 
3038
+set torture_flags ""
 
3039
+
 
3040
+set stackalign_options [list]
 
3041
 if { [check_effective_target_automatic_stack_alignment] } then {
 
3042
-    lappend additional_flags "-mstackrealign"
 
3043
-    lappend additional_flags "-mpreferred-stack-boundary=5"
 
3044
+    append default_flags " -mstackrealign"
 
3045
+    append default_flags " -mpreferred-stack-boundary=5"
 
3046
 }
 
3047
 if { [istarget i?86*-*-*] || [istarget x86_64-*-*] } then {
 
3048
-    lappend additional_flags "-mno-mmx"
 
3049
+    append default_flags " -mno-mmx"
 
3050
 }
 
3051
+lappend stackalign_options [join $torture_flags]
 
3052
 
 
3053
-dg-init
 
3054
-
 
3055
-gcc-dg-runtest [lsort [glob $srcdir/$subdir/*.c]] $additional_flags
 
3056
 if { [check_effective_target_fpic] } then {
 
3057
-    set pic_additional_flags $additional_flags
 
3058
-    lappend pic_additional_flags "-fpic"
 
3059
-    gcc-dg-runtest [lsort [glob $srcdir/$subdir/*.c]] $pic_additional_flags
 
3060
+    set pic_torture_flags $torture_flags
 
3061
+    append pic_torture_flags " -fpic"
 
3062
+    lappend stackalign_options [join $pic_torture_flags]
 
3063
 }
 
3064
 
 
3065
 if { [check_effective_target_automatic_stack_alignment] } then {
 
3066
-    lappend additional_flags "-mforce-drap"
 
3067
-    gcc-dg-runtest [lsort [glob $srcdir/$subdir/*.c]] $additional_flags
 
3068
+    append torture_flags " -mforce-drap"
 
3069
+    lappend stackalign_options [join $torture_flags]
 
3070
     if { [check_effective_target_fpic] } then {
 
3071
-       set pic_additional_flags $additional_flags
 
3072
-       lappend pic_additional_flags "-fpic"
 
3073
-       gcc-dg-runtest [lsort [glob $srcdir/$subdir/*.c]] $pic_additional_flags
 
3074
+       set pic_torture_flags $torture_flags
 
3075
+       append pic_torture_flags " -fpic"
 
3076
+       lappend stackalign_options [join $pic_torture_flags]
 
3077
     }
 
3078
 }
 
3079
 
 
3080
+# Combine stackalign options with the usual torture optimization flags.
 
3081
+set-torture-options [concat $DG_TORTURE_OPTIONS $LTO_TORTURE_OPTIONS] $stackalign_options
 
3082
+
 
3083
+gcc-dg-runtest [lsort [glob $srcdir/$subdir/*.c]] "$default_flags"
 
3084
+
 
3085
+torture-finish
 
3086
 dg-finish
 
3087
Index: gcc/testsuite/gcc.dg/torture/stackalign/push-1.c
 
3088
===================================================================
 
3089
--- a/src/gcc/testsuite/gcc.dg/torture/stackalign/push-1.c      (revision
 
3090
+++ b/src/gcc/testsuite/gcc.dg/torture/stackalign/push-1.c      (revision
 
3091
@@ -1,6 +1,6 @@
 
3092
 /* PR middle-end/37010 */
 
3093
 /* { dg-do run { target { { i?86-*-* x86_64-*-* } && ia32 } } } */
 
3094
-/* { dg-options "-msse2 -mpreferred-stack-boundary=2" } */
 
3095
+/* { dg-additional-options "-mmmx -msse2 -mpreferred-stack-boundary=2" } */
 
3096
 /* { dg-require-effective-target sse2_runtime } */
 
3097
 
 
3098
 #include <emmintrin.h>
 
3099
Index: gcc/testsuite/gcc.dg/torture/stackalign/alloca-2.c
 
3100
===================================================================
 
3101
--- a/src/gcc/testsuite/gcc.dg/torture/stackalign/alloca-2.c    (revision
 
3102
+++ b/src/gcc/testsuite/gcc.dg/torture/stackalign/alloca-2.c    (revision
 
3103
@@ -1,6 +1,6 @@
 
3104
 /* PR middle-end/37009 */
 
3105
 /* { dg-do run { target { { i?86-*-* x86_64-*-* } && ia32 } } } */
 
3106
-/* { dg-options "-msse2" } */
 
3107
+/* { dg-additional-options "-mmmx -msse2" } */
 
3108
 /* { dg-require-effective-target sse2_runtime } */
 
3109
 
 
3110
 #include <emmintrin.h>
 
3111
Index: gcc/testsuite/gcc.dg/torture/stackalign/alloca-3.c
 
3112
===================================================================
 
3113
--- a/src/gcc/testsuite/gcc.dg/torture/stackalign/alloca-3.c    (revision
 
3114
+++ b/src/gcc/testsuite/gcc.dg/torture/stackalign/alloca-3.c    (revision
 
3115
@@ -1,6 +1,6 @@
 
3116
 /* PR middle-end/37009 */
 
3117
 /* { dg-do run { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
 
3118
-/* { dg-options "-msse2" } */
 
3119
+/* { dg-additional-options "-mmmx -msse2" } */
 
3120
 /* { dg-require-effective-target sse2_runtime } */
 
3121
 
 
3122
 #include <emmintrin.h>
 
3123
Index: gcc/testsuite/gcc.dg/torture/stackalign/alloca-4.c
 
3124
===================================================================
 
3125
--- a/src/gcc/testsuite/gcc.dg/torture/stackalign/alloca-4.c    (revision
 
3126
+++ b/src/gcc/testsuite/gcc.dg/torture/stackalign/alloca-4.c    (revision
 
3127
@@ -1,6 +1,6 @@
 
3128
 /* PR middle-end/37009 */
 
3129
 /* { dg-do run { target { { i?86-*-* x86_64-*-* } && ia32 } } } */
 
3130
-/* { dg-options "-mincoming-stack-boundary=2 -mpreferred-stack-boundary=2" } */
 
3131
+/* { dg-additional-options "-mincoming-stack-boundary=2 -mpreferred-stack-boundary=2" } */
 
3132
 
 
3133
 #include "check.h"
 
3134
 
 
3135
Index: gcc/testsuite/gcc.dg/torture/stackalign/alloca-5.c
 
3136
===================================================================
 
3137
--- a/src/gcc/testsuite/gcc.dg/torture/stackalign/alloca-5.c    (revision
 
3138
+++ b/src/gcc/testsuite/gcc.dg/torture/stackalign/alloca-5.c    (revision
 
3139
@@ -1,6 +1,6 @@
 
3140
 /* PR middle-end/45234 */
 
3141
 /* { dg-do run { target { { i?86-*-* x86_64-*-* } && ia32 } } } */
 
3142
-/* { dg-options "-mincoming-stack-boundary=2 -mpreferred-stack-boundary=2" } */
 
3143
+/* { dg-additional-options "-mincoming-stack-boundary=2 -mpreferred-stack-boundary=2" } */
 
3144
 
 
3145
 #include "check.h"
 
3146
 
 
3147
Index: gcc/testsuite/gcc.dg/Wfatal-2.c
 
3148
===================================================================
 
3149
--- a/src/gcc/testsuite/gcc.dg/Wfatal-2.c       (revision
 
3150
+++ b/src/gcc/testsuite/gcc.dg/Wfatal-2.c       (revision
 
3151
@@ -5,5 +5,5 @@
 
3152
 int i = INT_MAX + 1; /* { dg-error "integer overflow in expression" } */
 
3153
 int k = 1 / 0; 
 
3154
 int j = INT_MIN - 1;
 
3155
-/* { dg-message "being treated as errors" "" { target *-*-* } 0 } */
 
3156
-/* { dg-message "terminated due to -Wfatal-errors" "" { target *-*-* } 0 } */
 
3157
+/* { dg-message "being treated as errors" "treated as errors" { target *-*-* } 0 } */
 
3158
+/* { dg-message "terminated due to -Wfatal-errors" "terminated" { target *-*-* } 0 } */
 
3159
Index: gcc/testsuite/gcc.dg/pr48552-1.c
 
3160
===================================================================
 
3161
--- a/src/gcc/testsuite/gcc.dg/pr48552-1.c      (revision
 
3162
+++ b/src/gcc/testsuite/gcc.dg/pr48552-1.c      (revision
 
3163
@@ -7,15 +7,15 @@
 
3164
 void
 
3165
 f1 (void *x)
 
3166
 {
 
3167
-  __asm volatile ("" : : "r" (*x));    /* { dg-warning "dereferencing" } */
 
3168
-}                                      /* { dg-error "invalid use of void expression" "" { target *-*-* } 10 } */
 
3169
+  __asm volatile ("" : : "r" (*x));    /* { dg-warning "dereferencing" "deref" } */
 
3170
+}                                      /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } 10 } */
 
3171
 
 
3172
 void
 
3173
 f2 (void *x)
 
3174
 {
 
3175
-  __asm volatile ("" : "=r" (*x));     /* { dg-warning "dereferencing" } */
 
3176
-}                                      /* { dg-error "invalid use of void expression" "" { target *-*-* } 16 } */
 
3177
-                                       /* { dg-error "invalid lvalue in asm output 0" "" { target *-*-* } 16 } */
 
3178
+  __asm volatile ("" : "=r" (*x));     /* { dg-warning "dereferencing" "deref" } */
 
3179
+}                                      /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } 16 } */
 
3180
+                                       /* { dg-error "invalid lvalue in asm output 0" "invalid lvalue" { target *-*-* } 16 } */
 
3181
 void
 
3182
 f3 (void *x)
 
3183
 {
 
3184
@@ -31,15 +31,15 @@
 
3185
 void
 
3186
 f5 (void *x)
 
3187
 {
 
3188
-  __asm volatile ("" : : "g" (*x));    /* { dg-warning "dereferencing" } */
 
3189
-}                                      /* { dg-error "invalid use of void expression" "" { target *-*-* } 34 } */
 
3190
+  __asm volatile ("" : : "g" (*x));    /* { dg-warning "dereferencing" "deref" } */
 
3191
+}                                      /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } 34 } */
 
3192
 
 
3193
 void
 
3194
 f6 (void *x)
 
3195
 {
 
3196
-  __asm volatile ("" : "=g" (*x));     /* { dg-warning "dereferencing" } */
 
3197
-}                                      /* { dg-error "invalid use of void expression" "" { target *-*-* } 40 } */
 
3198
-                                       /* { dg-error "invalid lvalue in asm output 0" "" { target *-*-* } 40 } */
 
3199
+  __asm volatile ("" : "=g" (*x));     /* { dg-warning "dereferencing" "deref" } */
 
3200
+}                                      /* { dg-error "invalid use of void expression" "void expr" { target *-*-* } 40 } */
 
3201
+                                       /* { dg-error "invalid lvalue in asm output 0" "invalid lvalue" { target *-*-* } 40 } */
 
3202
 void
 
3203
 f7 (struct S *x)
 
3204
 {
 
3205
@@ -49,5 +49,5 @@
 
3206
 void
 
3207
 f8 (struct S *x)
 
3208
 {
 
3209
-  __asm volatile ("" : "=r" (*x));     /* { dg-error "dereferencing pointer to incomplete type" } */
 
3210
-}                                      /* { dg-error "invalid lvalue in asm output 0" "" { target *-*-* } 52 } */
 
3211
+  __asm volatile ("" : "=r" (*x));     /* { dg-error "dereferencing pointer to incomplete type" "incomplete" } */
 
3212
+}                                      /* { dg-error "invalid lvalue in asm output 0" "invalid lvalue" { target *-*-* } 52 } */
 
3213
Index: gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp
 
3214
===================================================================
 
3215
--- a/src/gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp  (revision
 
3216
+++ b/src/gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp  (revision
 
3217
@@ -29,9 +29,6 @@
 
3218
 set tool gcc
 
3219
 set prof_ext "gcda"
 
3220
 
 
3221
-# Override the list defined in profopt.exp.
 
3222
-set PROFOPT_OPTIONS [list {}]
 
3223
-
 
3224
 if $tracelevel then {
 
3225
     strace $tracelevel
 
3226
 }
 
3227
@@ -39,6 +36,10 @@
 
3228
 # Load support procs.
 
3229
 load_lib profopt.exp
 
3230
 
 
3231
+# Save and override the default list defined in profopt.exp.
 
3232
+set treeprof_save_profopt_options $PROFOPT_OPTIONS
 
3233
+set PROFOPT_OPTIONS [list {}]
 
3234
+
 
3235
 # These are globals used by profopt-execute.  The first is options
 
3236
 # needed to generate profile data, the second is options to use the
 
3237
 # profile data.
 
3238
@@ -52,3 +53,5 @@
 
3239
     }
 
3240
     profopt-execute $src
 
3241
 }
 
3242
+
 
3243
+set PROFOPT_OPTIONS $treeprof_save_profopt_options
 
3244
Index: gcc/testsuite/gcc.dg/pr30551-5.c
 
3245
===================================================================
 
3246
--- a/src/gcc/testsuite/gcc.dg/pr30551-5.c      (revision
 
3247
+++ b/src/gcc/testsuite/gcc.dg/pr30551-5.c      (revision
 
3248
@@ -2,6 +2,6 @@
 
3249
 /* { dg-do compile } */
 
3250
 /* { dg-options "-pedantic -Wno-main" } */
 
3251
 
 
3252
-void main(char a) {} /* { dg-bogus "first argument of .main. should be .int." } */
 
3253
-/* { dg-bogus ".main. takes only zero or two arguments" "" { target *-*-* } 5 } */ 
 
3254
-/* { dg-bogus "return type of .main. is not .int." "" { target *-*-* } 5 } */ 
 
3255
+void main(char a) {} /* { dg-bogus "first argument of .main. should be .int." "int" } */
 
3256
+/* { dg-bogus ".main. takes only zero or two arguments" "zero or two" { target *-*-* } 5 } */ 
 
3257
+/* { dg-bogus "return type of .main. is not .int." "return type" { target *-*-* } 5 } */ 
 
3258
Index: gcc/testsuite/gcc.dg/wtr-int-type-1.c
 
3259
===================================================================
 
3260
--- a/src/gcc/testsuite/gcc.dg/wtr-int-type-1.c (revision
 
3261
+++ b/src/gcc/testsuite/gcc.dg/wtr-int-type-1.c (revision
 
3262
@@ -25,8 +25,8 @@
 
3263
 
 
3264
   /* But this one should, since it doesn't fit in long (long), but
 
3265
      does fit in unsigned long (long).  */
 
3266
-  i = 18446744073709551615; /* { dg-warning "integer constant is so large that it is unsigned" "decimal constant" } */
 
3267
-  /* { dg-warning "this decimal constant would be unsigned in ISO C90" "decimal constant" { target *-*-* } 28 } */
 
3268
+  i = 18446744073709551615; /* { dg-warning "integer constant is so large that it is unsigned" "so large" } */
 
3269
+  /* { dg-warning "this decimal constant would be unsigned in ISO C90" "ISO C90" { target *-*-* } 28 } */
 
3270
 
 
3271
 # 29 "sys-header.h" 3
 
3272
 }
 
3273
Index: gcc/testsuite/gcc.dg/c99-vla-jump-3.c
 
3274
===================================================================
 
3275
--- a/src/gcc/testsuite/gcc.dg/c99-vla-jump-3.c (revision
 
3276
+++ b/src/gcc/testsuite/gcc.dg/c99-vla-jump-3.c (revision
 
3277
@@ -305,5 +305,5 @@
 
3278
 void fc288 (int n) { { typedef int (*b)[n]; { typedef int (*c)[n]; 0;} { typedef int (*d)[n]; 0;} ; typedef int (*e)[n]; 0;}; { typedef int (*f)[n]; { typedef int (*g)[n]; 0;}; { typedef int (*h)[n]; 0;}; ; typedef int (*i)[n]; 0;}; ; typedef int (*j)[n]; 0;a: goto a;  }
 
3279
 
 
3280
 /* Match extra informative notes.  */
 
3281
-/* { dg-message "note: label '\[^\n'\]*' defined here" "note: expected" { target *-*-* } 0 } */
 
3282
-/* { dg-message "note: '\[^\n'\]*' declared here" "note: expected" { target *-*-* } 0 } */
 
3283
+/* { dg-message "note: label '\[^\n'\]*' defined here" "note: defined" { target *-*-* } 0 } */
 
3284
+/* { dg-message "note: '\[^\n'\]*' declared here" "note: declared" { target *-*-* } 0 } */
 
3285
Index: gcc/testsuite/gcc.dg/pr30551.c
 
3286
===================================================================
 
3287
--- a/src/gcc/testsuite/gcc.dg/pr30551.c        (revision
 
3288
+++ b/src/gcc/testsuite/gcc.dg/pr30551.c        (revision
 
3289
@@ -2,6 +2,6 @@
 
3290
 /* { dg-do compile } */
 
3291
 /* { dg-options "-Wall" } */
 
3292
 /* { dg-skip-if "-Wmain not enabled with -Wall on SPU" { spu-*-* } } */
 
3293
-void main(char a) {} /* { dg-warning "first argument of .main. should be .int." } */
 
3294
-/* { dg-warning ".main. takes only zero or two arguments" "" { target *-*-* } 5 } */ 
 
3295
-/* { dg-warning "return type of .main. is not .int." "" { target *-*-* } 5 } */ 
 
3296
+void main(char a) {} /* { dg-warning "first argument of .main. should be .int." "int" } */
 
3297
+/* { dg-warning ".main. takes only zero or two arguments" "zero or two" { target *-*-* } 5 } */ 
 
3298
+/* { dg-warning "return type of .main. is not .int." "return type" { target *-*-* } 5 } */ 
 
3299
Index: gcc/testsuite/gcc.dg/Wfatal.c
 
3300
===================================================================
 
3301
--- a/src/gcc/testsuite/gcc.dg/Wfatal.c (revision
 
3302
+++ b/src/gcc/testsuite/gcc.dg/Wfatal.c (revision
 
3303
@@ -5,8 +5,8 @@
 
3304
 int i = INT_MAX + 1; /* { dg-warning "integer overflow in expression" } */
 
3305
 int k = 1 / 0; /* { dg-error "division by zero" } */
 
3306
 int j = INT_MIN - 1;
 
3307
-/* { dg-message "some warnings being treated as errors" "" {target "*-*-*"} 0 } */
 
3308
-/* { dg-message "terminated due to -Wfatal-errors" "" { target *-*-* } 0 } */
 
3309
+/* { dg-message "some warnings being treated as errors" "treated as errors" {target "*-*-*"} 0 } */
 
3310
+/* { dg-message "terminated due to -Wfatal-errors" "terminated" { target *-*-* } 0 } */
 
3311
 
 
3312
 
 
3313
 
 
3314
Index: gcc/testsuite/gcc.dg/vla-8.c
 
3315
===================================================================
 
3316
--- a/src/gcc/testsuite/gcc.dg/vla-8.c  (revision
 
3317
+++ b/src/gcc/testsuite/gcc.dg/vla-8.c  (revision
 
3318
@@ -30,5 +30,5 @@
 
3319
 }
 
3320
 
 
3321
 /* Match extra informative notes.  */
 
3322
-/* { dg-message "note: label '\[^\n'\]*' defined here" "note: expected" { target *-*-* } 0 } */
 
3323
-/* { dg-message "note: '\[^\n'\]*' declared here" "note: expected" { target *-*-* } 0 } */
 
3324
+/* { dg-message "note: label '\[^\n'\]*' defined here" "defined" { target *-*-* } 0 } */
 
3325
+/* { dg-message "note: '\[^\n'\]*' declared here" "declared" { target *-*-* } 0 } */
 
3326
Index: gcc/testsuite/gcc.dg/sync-2.c
 
3327
===================================================================
 
3328
--- a/src/gcc/testsuite/gcc.dg/sync-2.c (revision
 
3329
+++ b/src/gcc/testsuite/gcc.dg/sync-2.c (revision
 
3330
@@ -4,8 +4,8 @@
 
3331
 /* { dg-options "-march=i486" { target { { i?86-*-* x86_64-*-* } && ia32 } } } */
 
3332
 /* { dg-options "-mcpu=v9" { target sparc*-*-* } } */
 
3333
 
 
3334
-/* { dg-message "note: '__sync_fetch_and_nand' changed semantics in GCC 4.4" "" { target *-*-* } 0 } */
 
3335
-/* { dg-message "note: '__sync_nand_and_fetch' changed semantics in GCC 4.4" "" { target *-*-* } 0 } */
 
3336
+/* { dg-message "note: '__sync_fetch_and_nand' changed semantics in GCC 4.4" "fetch_and_nand" { target *-*-* } 0 } */
 
3337
+/* { dg-message "note: '__sync_nand_and_fetch' changed semantics in GCC 4.4" "nand_and_fetch" { target *-*-* } 0 } */
 
3338
 
 
3339
 /* Test functionality of the intrinsics for 'short' and 'char'.  */
 
3340
 
 
3341
Index: gcc/testsuite/gcc.dg/mtune.c
 
3342
===================================================================
 
3343
--- a/src/gcc/testsuite/gcc.dg/mtune.c  (revision
 
3344
+++ b/src/gcc/testsuite/gcc.dg/mtune.c  (revision
 
3345
@@ -1,8 +1,8 @@
 
3346
 /* { dg-do compile } */
 
3347
 /* { dg-skip-if "" { *-*-* } { "-mtune=*" } { "" } } */
 
3348
 /* { dg-options "-mtune=foo" } */
 
3349
-/* { dg-error "mtune" "" { target *-*-* } 0 } */
 
3350
-/* { dg-bogus "march" "" { target *-*-* } 0 } */
 
3351
-/* { dg-bogus "mcpu" "" { target *-*-* } 0 } */
 
3352
+/* { dg-error "mtune" "mtune" { target *-*-* } 0 } */
 
3353
+/* { dg-bogus "march" "march" { target *-*-* } 0 } */
 
3354
+/* { dg-bogus "mcpu" "mcpu" { target *-*-* } 0 } */
 
3355
 /* { dg-prune-output "note: valid arguments.*" } */
 
3356
 int i;
 
3357
Index: gcc/testsuite/gcc.dg/pr30457.c
 
3358
===================================================================
 
3359
--- a/src/gcc/testsuite/gcc.dg/pr30457.c        (revision
 
3360
+++ b/src/gcc/testsuite/gcc.dg/pr30457.c        (revision
 
3361
@@ -17,9 +17,9 @@
 
3362
   va_start(ap, paramN); /* { dg-warning "undefined behaviour when second parameter of 'va_start' is declared with 'register' storage" } */
 
3363
   
 
3364
   /* Undefined by C99 7.15.1.1p2:  */
 
3365
-  (void) va_arg(ap, char); /* { dg-warning "'char' is promoted to 'int' when passed through '...'" } */
 
3366
-  /* { dg-message "note: .so you should pass .int. not .char. to .va_arg.." "" { target *-*-* } 20 } */
 
3367
-  /* { dg-message "note: if this code is reached, the program will abort"  "" { target *-*-* } 20 } */
 
3368
+  (void) va_arg(ap, char); /* { dg-warning "'char' is promoted to 'int' when passed through '...'" "promoted" } */
 
3369
+  /* { dg-message "note: .so you should pass .int. not .char. to .va_arg.." "int not char" { target *-*-* } 20 } */
 
3370
+  /* { dg-message "note: if this code is reached, the program will abort"  "will abort" { target *-*-* } 20 } */
 
3371
 
 
3372
   va_end(ap);
 
3373
 }
 
3374
Index: gcc/testsuite/gcc.dg/format/few-1.c
 
3375
===================================================================
 
3376
--- a/src/gcc/testsuite/gcc.dg/format/few-1.c   (revision
 
3377
+++ b/src/gcc/testsuite/gcc.dg/format/few-1.c   (revision
 
3378
@@ -4,15 +4,15 @@
 
3379
 int f(int *ip, char *cp)
 
3380
 {
 
3381
        __builtin_printf ("%*.*s");
 
3382
-/* { dg-warning "field width specifier '\\*' expects a matching 'int' argument" "" { target *-*-* } 6 } */
 
3383
-/* { dg-warning "field precision specifier '\\.\\*' expects a matching 'int' argument" "" { target *-*-* } 6 } */
 
3384
-/* { dg-warning "format '%s' expects a matching 'char \\*' argument" "" { target *-*-* } 6 } */
 
3385
+/* { dg-warning "field width specifier '\\*' expects a matching 'int' argument" "width" { target *-*-* } 6 } */
 
3386
+/* { dg-warning "field precision specifier '\\.\\*' expects a matching 'int' argument" "precision" { target *-*-* } 6 } */
 
3387
+/* { dg-warning "format '%s' expects a matching 'char \\*' argument" "format" { target *-*-* } 6 } */
 
3388
        __builtin_printf ("%*.*s", ip, *cp);
 
3389
-/* { dg-warning "field width specifier '\\*' expects argument of type 'int'" "" { target *-*-* } 10 } */
 
3390
-/* { dg-warning "format '%s' expects a matching 'char \\*' argument" "" { target *-*-* } 10 } */
 
3391
+/* { dg-warning "field width specifier '\\*' expects argument of type 'int'" "width" { target *-*-* } 10 } */
 
3392
+/* { dg-warning "format '%s' expects a matching 'char \\*' argument" "format" { target *-*-* } 10 } */
 
3393
        __builtin_printf ("%s %i", ip, ip);
 
3394
-/* { dg-warning "format '%s' expects argument of type 'char \\*'" "" { target *-*-* } 13 } */
 
3395
-/* { dg-warning "format '%i' expects argument of type 'int'" "" { target *-*-* } 13 } */
 
3396
+/* { dg-warning "format '%s' expects argument of type 'char \\*'" "char" { target *-*-* } 13 } */
 
3397
+/* { dg-warning "format '%i' expects argument of type 'int'" "int" { target *-*-* } 13 } */
 
3398
        __builtin_printf ("%s %i", cp);
 
3399
 /* { dg-warning "format '%i' expects a matching 'int' argument" "" { target *-*-* } 16 } */
 
3400
        __builtin_printf ("%lc");
 
3401
Index: gcc/testsuite/gcc.dg/pr28322-3.c
 
3402
===================================================================
 
3403
--- a/src/gcc/testsuite/gcc.dg/pr28322-3.c      (revision
 
3404
+++ b/src/gcc/testsuite/gcc.dg/pr28322-3.c      (revision
 
3405
@@ -6,5 +6,5 @@
 
3406
 {
 
3407
   int i =  1;
 
3408
 }
 
3409
-/* { dg-message "unrecognized command line option .-fno-foobar." "" { target *-*-* } 0 } */
 
3410
-/* { dg-message "unrecognized command line option .-mno-foobar." "" { target *-*-* } 0 } */
 
3411
+/* { dg-message "unrecognized command line option .-fno-foobar." "f" { target *-*-* } 0 } */
 
3412
+/* { dg-message "unrecognized command line option .-mno-foobar." "m" { target *-*-* } 0 } */
 
3413
Index: gcc/testsuite/gcc.misc-tests/bprob.exp
 
3414
===================================================================
 
3415
--- a/src/gcc/testsuite/gcc.misc-tests/bprob.exp        (revision
 
3416
+++ b/src/gcc/testsuite/gcc.misc-tests/bprob.exp        (revision
 
3417
@@ -30,16 +30,6 @@
 
3418
 set prof_ext "gcda"
 
3419
 set perf_ext tim
 
3420
 
 
3421
-# Override the list defined in profopt.exp.
 
3422
-set PROFOPT_OPTIONS [list \
 
3423
-       { -g } \
 
3424
-       { -O0 } \
 
3425
-       { -O1 } \
 
3426
-       { -O2 -DPERFTIME } \
 
3427
-       { -O3 -DPERFTIME } \
 
3428
-       { -O3 -g -DPERFTIME } \
 
3429
-       { -Os } ]
 
3430
-
 
3431
 if $tracelevel then {
 
3432
     strace $tracelevel
 
3433
 }
 
3434
@@ -47,6 +37,10 @@
 
3435
 # Load support procs.
 
3436
 load_lib profopt.exp
 
3437
 
 
3438
+# Save and override the default list defined in profopt.exp.
 
3439
+set bprob_save_profopt_options $PROFOPT_OPTIONS
 
3440
+set PROFOPT_OPTIONS [list { -O2 } { -O3  }]
 
3441
+
 
3442
 set profile_options "-fprofile-arcs"
 
3443
 set feedback_options "-fbranch-probabilities"
 
3444
 
 
3445
@@ -59,3 +53,5 @@
 
3446
         profopt-execute $src
 
3447
     }
 
3448
 }
 
3449
+
 
3450
+set PROFOPT_OPTIONS $bprob_save_profopt_options
1044
3451
Index: gcc/testsuite/ChangeLog
1045
3452
===================================================================
1046
3453
--- a/src/gcc/testsuite/ChangeLog       (revision
1047
3454
+++ b/src/gcc/testsuite/ChangeLog       (revision
1048
 
@@ -1,3 +1,49 @@
 
3455
@@ -1,3 +1,265 @@
 
3456
+2012-07-10  Uros Bizjak  <ubizjak@gmail.com>
 
3457
+
 
3458
+       Backport from mainline
 
3459
+       2012-07-03  Uros Bizjak  <ubizjak@gmail.com>
 
3460
+
 
3461
+       PR target/53811
 
3462
+       * g++.dg/other/pr53811.C: New test.
 
3463
+
 
3464
+2012-07-10  Jason Merrill  <jason@redhat.com>
 
3465
+
 
3466
+       PR c++/53733
 
3467
+       * g++.dg/cpp0x/defaulted36.C: New.
 
3468
+       * g++.dg/cpp0x/defaulted21.C: Adjust.
 
3469
+
 
3470
+       * g++.dg/cpp0x/implicit13.C: New.
 
3471
+
 
3472
+2012-07-09  Janis Johnson  <janisjo@codesourcery.com>
 
3473
+
 
3474
+       Backport from mainline.
 
3475
+       2012-06-28  Janis Johnson  <janisjo@codesourcery.com>
 
3476
+
 
3477
+       * g++.dg/cpp0x/nullptr19.c: Remove exta directives on same line.
 
3478
+
 
3479
+       * g++.dg/template/error46.C: Add missing comment to dg-message.
 
3480
+       * g++.dg/template/crash107.C: Likewise.
 
3481
+       * g++.dg/template/error47.C: Likewise.
 
3482
+       * g++.dg/template/crash108.C: Likewise.
 
3483
+       * g++.dg/overload/operator5.C: Likewise.
 
3484
+
 
3485
+       * gcc.dg/Wstrict-aliasing-converted-assigned.c: Fix syntax
 
3486
+       errors in dg-message directives, add comments.
 
3487
+
 
3488
+       2012-06-26  Janis Johnson  <janisjo@codesourcery.com>
 
3489
+
 
3490
+       * lib/scandump.exp (scan-dump, scan-dump-not, scan-dump-dem,
 
3491
+       scan-dump-dem-not): Use printable pattern in test name.
 
3492
+
 
3493
+       2012-06-25  Janis Johnson  <janisjo@codesourcery.com>
 
3494
+
 
3495
+       * lib/target-supports-dg.exp (testname-for-summary): New.
 
3496
+       * lib/profopt.exp (profopt_execute): Define testname_with_flags.
 
3497
+       * lib/gcc-dg.exp (cleanup-coverage-files, cleanup-repo-notes,
 
3498
+       cleanup-stack-usage, cleanup-dump, cleanup-saved-temps, scan-module,
 
3499
+       scan-module-absence, output-exists, output-exists-not: Use
 
3500
+       testname-for-summary.
 
3501
+       (dg-test): Clean up testname_with_flags.
 
3502
+       * lib/scanasm.exp (scan-assembler, scan-assembler-not, scan-hidden,
 
3503
+       scan-not-hidden, scan-file, scan-file-not, scan-stack-usage,
 
3504
+       scan-stack-usage-not, scan-assembler-times, scan-assembler-dem,
 
3505
+       scan-assembler-dem-not, object-size: Use testname-for-summary.
 
3506
+       * lib/gcov.exp (run-gcov): Likewise.
 
3507
+       * lib/scandump.exp (scan-dump, scan-dump-times, scan-dump-not,
 
3508
+       scan-dump-dem, scan-dump-dem-note): Likewise.
 
3509
+
 
3510
+       * lib/profopt.exp: Make prof_option_list local to profopt-execute.
 
3511
+       * g++.dg/tree-prof/tree-prof.exp (PROFOPT_OPTIONS): Define after
 
3512
+       including profopt.opt; save and restore existing value.
 
3513
+       * g++.dg/bprob/bprob.exp: Likewise.
 
3514
+       * gcc.dg/matrix/matrix.exp: Likewise.
 
3515
+       * gcc.dg/tree-prof/tree-prof.exp: Likewise.
 
3516
+       * gcc.misc-tests/bprob.exp: Likewise; also replace formerly-ignored
 
3517
+       PROFOPT_OPTIONS.
 
3518
+
 
3519
+       2012-06-15  Janis Johnson  <janosjo@codesourcery.com>
 
3520
+
 
3521
+       * lib/gcov.exp (verify-lines, verify-branches, verify-calls): Use
 
3522
+       testname that includes flags, passed in as new argument, in
 
3523
+       pass/fail messages.
 
3524
+       (run_gcov): Get testname from dg-test, use it in pass/fail messages
 
3525
+       and pass it to verify-* procedures.
 
3526
+
 
3527
+       * g++.dg/torture/stackalign/stackalign.exp: Combine stack
 
3528
+       alignment torture options with usual torture options.
 
3529
+
 
3530
+       * g++.dg/cpp0x/auto27.C: Add comments to checks for multiple
 
3531
+       messages reported for one line of source code.
 
3532
+       * g++.dg/cpp0x/constexpr-decl.C: Likewise.
 
3533
+       * g++.dg/cpp0x/decltype2.C: Likewise.
 
3534
+       * g++.dg/cpp0x/decltype3.C: Likewise.
 
3535
+       * g++.dg/cpp0x/lambda/lambda-syntax1.C: Likewise.
 
3536
+       * g++.dg/cpp0x/regress/error-recovery1.C: Likewise.
 
3537
+       * g++.dg/cpp0x/static_assert3.C: Likewise.
 
3538
+       * g++.dg/cpp0x/udlit-cpp98-neg.C: Likewise.
 
3539
+       * g++.dg/cpp0x/udlit-shadow-neg.C: Likewise.
 
3540
+       * g++.dg/cpp0x/union1.C: Likewise.
 
3541
+       * g++.dg/cpp0x/variadic-ex10.C: Likewise.
 
3542
+       * g++.dg/cpp0x/variadic-ex14.C: Likewise.
 
3543
+       * g++.dg/cpp0x/variadic2.C: Likewise.
 
3544
+       * g++.dg/cpp0x/variadic20.C: Likewise.
 
3545
+       * g++.dg/cpp0x/variadic74.C: Likewise.
 
3546
+       * g++.dg/diagnostic/bitfld2.C: Likewise.
 
3547
+       * g++.dg/ext/attrib44.C: Likewise.
 
3548
+       * g++.dg/ext/no-asm-1.C: Likewise.
 
3549
+       * g++.dg/other/error34.C: Likewise.
 
3550
+       * g++.dg/parse/crash46.C: Likewise.
 
3551
+       * g++.dg/parse/error10.C: Likewise.
 
3552
+       * g++.dg/parse/error2.C: Likewise.
 
3553
+       * g++.dg/parse/error3.C: Likewise.
 
3554
+       * g++.dg/parse/error36.C: Likewise.
 
3555
+       * g++.dg/parse/error8.C: Likewise.
 
3556
+       * g++.dg/parse/error9.C: Likewise.
 
3557
+       * g++.dg/parse/parser-pr28152-2.C: Likewise.
 
3558
+       * g++.dg/parse/parser-pr28152.C: Likewise.
 
3559
+       * g++.dg/parse/template25.C: Likewise.
 
3560
+       * g++.dg/parse/typename11.C: Likewise.
 
3561
+       * g++.dg/tc1/dr147.C: Likewise.
 
3562
+       * g++.dg/template/deduce3.C: Likewise.
 
3563
+       * g++.dg/template/koenig9.C: Likewise.
 
3564
+       * g++.dg/template/pr23510.C: Likewise.
 
3565
+       * g++.dg/warn/pr12242.C: Likewise.
 
3566
+       * g++.dg/warn/pr30551-2.C: Likewise.
 
3567
+       * g++.dg/warn/pr30551.C: Likewise.
 
3568
+       * g++.old-deja/g++.other/typename1.C: Likewise.
 
3569
+       * g++.old-deja/g++.pt/niklas01a.C: Likewise.
 
3570
+
 
3571
+       2012-06-13  Janis Johnson  <janisjo@codesourcery.com>
 
3572
+
 
3573
+       PR testsuite/20771
 
3574
+       * lib/dg-pch.exp (dg-flags-pch): Add flags to make compile lines in
 
3575
+       test summary unique.
 
3576
+
 
3577
+       * lib/scanasm.exp (scan-assembler, scan-assembler-not, scan-hidden,
 
3578
+       scan-not-hiddent, scan-file, scan-file-not, scan-stack-usage,
 
3579
+       scan-stack-usage-not): Don't strip torture options from test name.
 
3580
+
 
3581
+       * lib/scandump.exp (scan-dump-times): Use printable version of
 
3582
+       regexp in test summary line.
 
3583
+
 
3584
+       * gcc.dg/di-longlong64-sync-1.c: Add comments to checks for multiple
 
3585
+       messages reported for one line of source code.
 
3586
+       * gcc.dg/format/few-1.c: Likewise.
 
3587
+       * gcc.dg/ia64-sync-2.c: Likewise.
 
3588
+       * gcc.dg/sync-2.c: Likewise.
 
3589
+       * gcc.dg/noncompile/pr44517.c: Likewise.
 
3590
+
 
3591
+       2012-06-12  Janis Johnson  <janisjo@codesourcery.com>
 
3592
+
 
3593
+       * gcc.dg/torture/stackalign/stackalign.exp: Combine stack
 
3594
+       alignment torture options with usual torture options.
 
3595
+       * gcc.dg/torture/stackalign/alloca-2.c: Use dg-additional-options
 
3596
+       instead of dg-options.
 
3597
+       * gcc.dg/torture/stackalign/alloca-3.c: Likewise.
 
3598
+       * gcc.dg/torture/stackalign/alloca-4.c: Likewise.
 
3599
+       * gcc.dg/torture/stackalign/alloca-5.c: Likewise.
 
3600
+       * gcc.dg/torture/stackalign/alloca-6.c: Likewise.
 
3601
+       * gcc.dg/torture/stackalign/push-1.c: Likewise.
 
3602
+       * gcc.dg/torture/stackalign/vararg-3.c: Likewise.
 
3603
+
 
3604
+       * gcc.target/arm/di-longlong64-sync-withhelpers.c: Add comments
 
3605
+       to checks for multiple messages reported for one line of source code.
 
3606
+       * gcc.target/arm/di-longlong64-sync-withldrexd.c: Likewise.
 
3607
+
 
3608
+       * gcc.c-torture/compile/sync-1.c: Add comments to checks for multiple
 
3609
+       messages reported for one line of source code.
 
3610
+
 
3611
+       * gcc.dg/20031223-1.c: Add comments to check for multiple
 
3612
+       messages reported for one line of source code.
 
3613
+       * gcc.dg/Wconversion-integer.c: Likewise.
 
3614
+       * gcc.dg/Wfatal-2.c: Likewise.
 
3615
+       * gcc.dg/Wfatal.c: Likewise.
 
3616
+       * gcc.dg/Wobjsize-1.c: Likewise.
 
3617
+       * gcc.dg/c99-vla-jump-1.c: Likewise.
 
3618
+       * gcc.dg/c99-vla-jump-2.c: Likewise.
 
3619
+       * gcc.dg/c99-vla-jump-3.c: Likewise.
 
3620
+       * gcc.dg/c99-vla-jump-4.c: Likewise.
 
3621
+       * gcc.dg/c99-vla-jump-5.c: Likewise.
 
3622
+       * gcc.dg/decl-9.c: Likewise.
 
3623
+       * gcc.dg/declspec-10.c: Likewise.
 
3624
+       * gcc.dg/declspec-18.c: Likewise.
 
3625
+       * gcc.dg/mtune.c: Likewise.
 
3626
+       * gcc.dg/parser-pr28152-2.c: Likewise.
 
3627
+       * gcc.dg/parser-pr28152.c: Likewise.
 
3628
+       * gcc.dg/pr14475.c: Likewise.
 
3629
+       * gcc.dg/pr27953.c: Likewise.
 
3630
+       * gcc.dg/pr28322-3.c: Likewise.
 
3631
+       * gcc.dg/pr30457.c: Likewise.
 
3632
+       * gcc.dg/pr30551-2.c: Likewise.
 
3633
+       * gcc.dg/pr30551-3.c: Likewise.
 
3634
+       * gcc.dg/pr30551-4.c: Likewise.
 
3635
+       * gcc.dg/pr30551-5.c: Likewise.
 
3636
+       * gcc.dg/pr30551-6.c: Likewise.
 
3637
+       * gcc.dg/pr30551.c: Likewise.
 
3638
+       * gcc.dg/pr45461.c: Likewise.
 
3639
+       * gcc.dg/pr48552-1.c: Likewise.
 
3640
+       * gcc.dg/pr48552-2.c: Likewise.
 
3641
+       * gcc.dg/redecl-1.c: Likewise.
 
3642
+       * gcc.dg/transparent-union-3.c: Likewise.
 
3643
+       * gcc.dg/utf-dflt.c: Likewise.
 
3644
+       * gcc.dg/utf-dflt2.c: Likewise.
 
3645
+       * gcc.dg/vla-8.c: Likewise.
 
3646
+       * gcc.dg/vla-init-1.c: Likewise.
 
3647
+       * gcc.dg/wtr-int-type-1.c: Likewise.
 
3648
+
 
3649
+       * c-c++-common/raw-string-3.c: Add comments to checks for multiple
 
3650
+       messages reported for for one line of source code.
 
3651
+       * c-c++-common/raw-string-5.c: Likewise.
 
3652
+       * c-c++-common/raw-string-4.c: Likewise.
 
3653
+       * c-c++-common/raw-string-6.c: Likewise.
 
3654
+       * c-c++-common/pr20000.c: Likewise.
 
3655
+
 
3656
+       * gcc.dg/cpp/include2a.c: Add comments to checks for multiple
 
3657
+       messages reported for one line of source code.
 
3658
+       * gcc.dg/cpp/pr30786.c: Likewise.
 
3659
+       * gcc.dg/cpp/pr28709.c: Likewise.
 
3660
+       * gcc.dg/cpp/missing-header-MD.c: Likewise.
 
3661
+       * gcc.dg/cpp/macspace2.c: Likewise.
 
3662
+       * gcc.dg/cpp/missing-header-1.c: Likewise.
 
3663
+       * gcc.dg/cpp/missing-header-MMD.c: Likewise.
 
3664
+       * gcc.dg/cpp/missing-sysheader-MD.c: Likewise.
 
3665
+       * gcc.dg/cpp/missing-sysheader-MMD.c: Likewise.
 
3666
+
 
3667
+2012-07-09  Jason Merrill  <jason@redhat.com>
 
3668
+
 
3669
+       PR c++/53882
 
3670
+       * g++.dg/cpp0x/nullptr29.C: New.
 
3671
+
1049
3672
+2012-07-06  Mikael Morin  <mikael@gcc.gnu.org>
1050
3673
+
1051
3674
+       PR fortran/53732
1095
3718
 2012-06-29  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
1096
3719
 
1097
3720
        Backport from mainline.
 
3721
Index: gcc/testsuite/g++.dg/ext/attrib44.C
 
3722
===================================================================
 
3723
--- a/src/gcc/testsuite/g++.dg/ext/attrib44.C   (revision
 
3724
+++ b/src/gcc/testsuite/g++.dg/ext/attrib44.C   (revision
 
3725
@@ -1,4 +1,4 @@
 
3726
 // PR c++/52671
 
3727
 // { dg-do compile }
 
3728
-__attribute__ ((deprecated)) enum E { E0 };    // { dg-warning "attribute ignored in declaration of" }
 
3729
-// { dg-message "must follow the" "" { target *-*-* } 3 }
 
3730
+__attribute__ ((deprecated)) enum E { E0 };    // { dg-warning "attribute ignored in declaration of" "ignored" }
 
3731
+// { dg-message "must follow the" "must follow" { target *-*-* } 3 }
 
3732
Index: gcc/testsuite/g++.dg/ext/no-asm-1.C
 
3733
===================================================================
 
3734
--- a/src/gcc/testsuite/g++.dg/ext/no-asm-1.C   (revision
 
3735
+++ b/src/gcc/testsuite/g++.dg/ext/no-asm-1.C   (revision
 
3736
@@ -5,6 +5,6 @@
 
3737
 // keywords.
 
3738
 
 
3739
 int asm;       // { dg-error "before .asm." }
 
3740
-int typeof;    // { dg-error "expected" }
 
3741
-// { dg-error "multiple types" "" { target *-*-* } 8 }
 
3742
-// { dg-error "declaration" "" { target *-*-* } 8 }
 
3743
+int typeof;    // { dg-error "expected" "expected" }
 
3744
+// { dg-error "multiple types" "multiple" { target *-*-* } 8 }
 
3745
+// { dg-error "declaration" "declaration" { target *-*-* } 8 }
 
3746
Index: gcc/testsuite/g++.dg/tree-prof/tree-prof.exp
 
3747
===================================================================
 
3748
--- a/src/gcc/testsuite/g++.dg/tree-prof/tree-prof.exp  (revision
 
3749
+++ b/src/gcc/testsuite/g++.dg/tree-prof/tree-prof.exp  (revision
 
3750
@@ -29,9 +29,6 @@
 
3751
 set tool g++
 
3752
 set prof_ext "gcda"
 
3753
 
 
3754
-# Override the list defined in profopt.exp.
 
3755
-set PROFOPT_OPTIONS [list {}]
 
3756
-
 
3757
 if $tracelevel then {
 
3758
     strace $tracelevel
 
3759
 }
 
3760
@@ -39,6 +36,10 @@
 
3761
 # Load support procs.
 
3762
 load_lib profopt.exp
 
3763
 
 
3764
+# Save and override the default list defined in profopt.exp.
 
3765
+set treeprof_save_profopt_options $PROFOPT_OPTIONS
 
3766
+set PROFOPT_OPTIONS [list {}]
 
3767
+
 
3768
 # These are globals used by profopt-execute.  The first is options
 
3769
 # needed to generate profile data, the second is options to use the
 
3770
 # profile data.
 
3771
@@ -52,3 +53,5 @@
 
3772
     }
 
3773
     profopt-execute $src
 
3774
 }
 
3775
+
 
3776
+set PROFOPT_OPTIONS $treeprof_save_profopt_options
 
3777
Index: gcc/testsuite/g++.dg/other/pr53811.C
 
3778
===================================================================
 
3779
--- a/src/gcc/testsuite/g++.dg/other/pr53811.C  (revision
 
3780
+++ b/src/gcc/testsuite/g++.dg/other/pr53811.C  (revision
 
3781
@@ -0,0 +1,29 @@
 
3782
+// { dg-do compile }
 
3783
+// { dg-options "-mcmodel=large" { target { { i?86-*-* x86_64-*-* } && lp64 } } }
 
3784
+
 
3785
+struct ICCStringClass
 
3786
+{
 
3787
+  virtual void *
 
3788
+  CreateString (const char *fromText) = 0;
 
3789
+};
 
3790
+
 
3791
+struct AGSCCDynamicObject
 
3792
+{
 
3793
+  virtual void
 
3794
+  Unserialize (int index, const char *serializedData, int dataSize) = 0;
 
3795
+};
 
3796
+
 
3797
+
 
3798
+struct ScriptString:AGSCCDynamicObject, ICCStringClass
 
3799
+{
 
3800
+  virtual void *CreateString (const char *fromText);
 
3801
+};
 
3802
+
 
3803
+const char *
 
3804
+CreateNewScriptString (const char *fromText, bool reAllocate = true);
 
3805
+
 
3806
+void *
 
3807
+ScriptString::CreateString (const char *fromText)
 
3808
+{
 
3809
+  return (void *) CreateNewScriptString (fromText);
 
3810
+}
 
3811
Index: gcc/testsuite/g++.dg/other/error34.C
 
3812
===================================================================
 
3813
--- a/src/gcc/testsuite/g++.dg/other/error34.C  (revision
 
3814
+++ b/src/gcc/testsuite/g++.dg/other/error34.C  (revision
 
3815
@@ -2,5 +2,5 @@
 
3816
 // { dg-do compile }
 
3817
 // { dg-options "" }
 
3818
 
 
3819
-S () : str(__PRETTY_FUNCTION__) {}     // { dg-error "forbids declaration" }
 
3820
-// { dg-error "only constructors" "" { target *-*-* } 5 }
 
3821
+S () : str(__PRETTY_FUNCTION__) {}     // { dg-error "forbids declaration" "decl" }
 
3822
+// { dg-error "only constructors" "constructor" { target *-*-* } 5 }
 
3823
Index: gcc/testsuite/g++.dg/diagnostic/bitfld2.C
 
3824
===================================================================
 
3825
--- a/src/gcc/testsuite/g++.dg/diagnostic/bitfld2.C     (revision
 
3826
+++ b/src/gcc/testsuite/g++.dg/diagnostic/bitfld2.C     (revision
 
3827
@@ -3,7 +3,7 @@
 
3828
 
 
3829
 template<int> struct A
 
3830
 {
 
3831
-  struct {} : 2;   // { dg-error "expected ';' after struct" }
 
3832
+  struct {} : 2;   // { dg-error "expected ';' after struct" "expected" }
 
3833
 };
 
3834
-// { dg-error "ISO C.. forbids declaration" "" { target *-*-* } 6 }
 
3835
-// { dg-error "ISO C.. prohibits anonymous" "" { target *-*-* } 6 }
 
3836
+// { dg-error "ISO C.. forbids declaration" "declaration" { target *-*-* } 6 }
 
3837
+// { dg-error "ISO C.. prohibits anonymous" "anonymous" { target *-*-* } 6 }
 
3838
Index: gcc/testsuite/g++.dg/warn/pr30551-2.C
 
3839
===================================================================
 
3840
--- a/src/gcc/testsuite/g++.dg/warn/pr30551-2.C (revision
 
3841
+++ b/src/gcc/testsuite/g++.dg/warn/pr30551-2.C (revision
 
3842
@@ -2,5 +2,5 @@
 
3843
 // { dg-do compile }
 
3844
 // { dg-options "-pedantic-errors" }
 
3845
 // { dg-skip-if "-Wmain not enabled with -pedantic on SPU" { spu-*-* } } 
 
3846
-int main(char a) {} /* { dg-error "first argument of .*main.* should be .int." } */
 
3847
-/* { dg-error "main.* takes only zero or two arguments" "" { target *-*-* } 5 } */ 
 
3848
+int main(char a) {} /* { dg-error "first argument of .*main.* should be .int." "int" } */
 
3849
+/* { dg-error "main.* takes only zero or two arguments" "zero or two" { target *-*-* } 5 } */ 
 
3850
Index: gcc/testsuite/g++.dg/warn/pr30551.C
 
3851
===================================================================
 
3852
--- a/src/gcc/testsuite/g++.dg/warn/pr30551.C   (revision
 
3853
+++ b/src/gcc/testsuite/g++.dg/warn/pr30551.C   (revision
 
3854
@@ -2,5 +2,5 @@
 
3855
 // { dg-do compile }
 
3856
 // { dg-options "" }
 
3857
 // { dg-skip-if "-Wmain not enabled on SPU" { spu-*-* } } 
 
3858
-int main(char a) {} /* { dg-warning "first argument of .*main.* should be .int." } */
 
3859
-/* { dg-warning "main.* takes only zero or two arguments" "" { target *-*-* } 5 } */ 
 
3860
+int main(char a) {} /* { dg-warning "first argument of .*main.* should be .int." "int" } */
 
3861
+/* { dg-warning "main.* takes only zero or two arguments" "zero or two" { target *-*-* } 5 } */ 
 
3862
Index: gcc/testsuite/g++.dg/warn/pr12242.C
 
3863
===================================================================
 
3864
--- a/src/gcc/testsuite/g++.dg/warn/pr12242.C   (revision
 
3865
+++ b/src/gcc/testsuite/g++.dg/warn/pr12242.C   (revision
 
3866
@@ -10,8 +10,8 @@
 
3867
   X x;
 
3868
   Y y;
 
3869
   
 
3870
-  x = 10;  // { dg-warning "invalid conversion from .int. to .X." }
 
3871
-           // { dg-warning "unspecified" "" { target *-*-* } 13 }
 
3872
+  x = 10;  // { dg-warning "invalid conversion from .int. to .X." "invalid" }
 
3873
+           // { dg-warning "unspecified" "unspecified" { target *-*-* } 13 }
 
3874
   x = 1;   // { dg-warning "invalid conversion from .int. to .X." }
 
3875
   x = C;   // { dg-error "cannot convert .Y. to .X. in assignment" }  
 
3876
   x = D;   // { dg-error "cannot convert .Y. to .X. in assignment" }  
 
3877
Index: gcc/testsuite/g++.dg/parse/error36.C
 
3878
===================================================================
 
3879
--- a/src/gcc/testsuite/g++.dg/parse/error36.C  (revision
 
3880
+++ b/src/gcc/testsuite/g++.dg/parse/error36.C  (revision
 
3881
@@ -11,22 +11,22 @@
 
3882
 void f(T t)
 
3883
 {
 
3884
   typedef A<T>::foo type;      // { dg-error "typename" }
 
3885
-  A<T>::bar b;                 // { dg-error "typename" }
 
3886
-} // { dg-error "expected ';'" "" { target *-*-* } 14 }
 
3887
+  A<T>::bar b;                 // { dg-error "typename" "typename" }
 
3888
+} // { dg-error "expected ';'" "expected" { target *-*-* } 14 }
 
3889
 
 
3890
 // PR c++/36353
 
3891
 template <class T> struct B
 
3892
 {
 
3893
   void f()
 
3894
   {
 
3895
-    A<T>::baz z;               // { dg-error "typename" }
 
3896
-  } // { dg-error "expected ';'" "" { target *-*-* } 22 }
 
3897
+    A<T>::baz z;               // { dg-error "typename" "typename" }
 
3898
+  } // { dg-error "expected ';'" "expected" { target *-*-* } 22 }
 
3899
 };
 
3900
 
 
3901
 // PR c++/40738
 
3902
 template <class T>
 
3903
-void g(const A<T>::type &t);   // { dg-error "typename" }
 
3904
-// { dg-error "no type" "" { target *-*-* } 28 }
 
3905
+void g(const A<T>::type &t);   // { dg-error "typename" "typename" }
 
3906
+// { dg-error "no type" "no type" { target *-*-* } 28 }
 
3907
 
 
3908
 // PR c++/18451
 
3909
 template <class T> A<T>::B A<T>::b; // { dg-error "typename" }
 
3910
Index: gcc/testsuite/g++.dg/parse/error9.C
 
3911
===================================================================
 
3912
--- a/src/gcc/testsuite/g++.dg/parse/error9.C   (revision
 
3913
+++ b/src/gcc/testsuite/g++.dg/parse/error9.C   (revision
 
3914
@@ -5,5 +5,5 @@
 
3915
 int a[] = { FOO: 1, BAR: 2 };
 
3916
 
 
3917
 // the following 2 column locations are still not accurate enough
 
3918
-// { dg-error "28:name 'FOO' used in a GNU-style designated initializer for an array" "" { target *-*-* } 5 }
 
3919
-// { dg-error "28:name 'BAR' used in a GNU-style designated initializer for an array" "" { target *-*-* } 5 }
 
3920
+// { dg-error "28:name 'FOO' used in a GNU-style designated initializer for an array" "FOO" { target *-*-* } 5 }
 
3921
+// { dg-error "28:name 'BAR' used in a GNU-style designated initializer for an array" "BAR" { target *-*-* } 5 }
 
3922
Index: gcc/testsuite/g++.dg/parse/error2.C
 
3923
===================================================================
 
3924
--- a/src/gcc/testsuite/g++.dg/parse/error2.C   (revision
 
3925
+++ b/src/gcc/testsuite/g++.dg/parse/error2.C   (revision
 
3926
@@ -8,8 +8,8 @@
 
3927
 template <int>
 
3928
 struct Foo {};
 
3929
 
 
3930
-Foo<func(g)> f; // { dg-error "5:'int func.double.' cannot appear in a constant-expression" "" { target *-*-* } 11 }
 
3931
-// { dg-error "10:'g' cannot appear in a constant-expression" "" { target *-*-* } 11 }
 
3932
-// { dg-error "11:a function call cannot appear in a constant-expression" "" { target *-*-* } 11 }
 
3933
-// { dg-error "12:template argument 1 is invalid" "" { target *-*-* } 11 }
 
3934
-// { dg-error "15:invalid type in declaration before ';' token" "" { target *-*-* } 11 }
 
3935
+Foo<func(g)> f; // { dg-error "5:'int func.double.' cannot appear in a constant-expression" "func double" { target *-*-* } 11 }
 
3936
+// { dg-error "10:'g' cannot appear in a constant-expression" "g" { target *-*-* } 11 }
 
3937
+// { dg-error "11:a function call cannot appear in a constant-expression" "call" { target *-*-* } 11 }
 
3938
+// { dg-error "12:template argument 1 is invalid" "invalid template argument" { target *-*-* } 11 }
 
3939
+// { dg-error "15:invalid type in declaration before ';' token" "invalid type" { target *-*-* } 11 }
 
3940
Index: gcc/testsuite/g++.dg/parse/template25.C
 
3941
===================================================================
 
3942
--- a/src/gcc/testsuite/g++.dg/parse/template25.C       (revision
 
3943
+++ b/src/gcc/testsuite/g++.dg/parse/template25.C       (revision
 
3944
@@ -9,6 +9,6 @@
 
3945
 
 
3946
 void g(void)
 
3947
 {
 
3948
-  template f<int>(); /* { dg-error "expected primary-expression" } */
 
3949
-  /* { dg-error "expected ';'" "" { target *-*-* } 12 } */
 
3950
+  template f<int>(); /* { dg-error "expected primary-expression" "primary-expression" } */
 
3951
+  /* { dg-error "expected ';'" "semicolon" { target *-*-* } 12 } */
 
3952
 }
 
3953
Index: gcc/testsuite/g++.dg/parse/parser-pr28152-2.C
 
3954
===================================================================
 
3955
--- a/src/gcc/testsuite/g++.dg/parse/parser-pr28152-2.C (revision
 
3956
+++ b/src/gcc/testsuite/g++.dg/parse/parser-pr28152-2.C (revision
 
3957
@@ -6,8 +6,8 @@
 
3958
 {
 
3959
   __complex__ float z;
 
3960
 
 
3961
-  z = __complex__ (1.90000007326203904e+19, 0.0);   // { dg-error "expected primary-expression before '__complex__'" } 
 
3962
-  // { dg-error "expected .;. before .__complex__." "" { target *-*-* } 9 } 
 
3963
-  z = __complex__ (1.0e+0, 0.0) / z;    // { dg-error "expected primary-expression before '__complex__'" } 
 
3964
-  // { dg-error "expected .;. before '__complex__'" "" { target *-*-* } 11 } 
 
3965
-  // { dg-error "at end of input" "" { target *-*-* } 11 } 
 
3966
+  z = __complex__ (1.90000007326203904e+19, 0.0);   // { dg-error "expected primary-expression before '__complex__'" "primary-expression" } 
 
3967
+  // { dg-error "expected .;. before .__complex__." "semicolon" { target *-*-* } 9 } 
 
3968
+  z = __complex__ (1.0e+0, 0.0) / z;    // { dg-error "expected primary-expression before '__complex__'" "primaty-expression" } 
 
3969
+  // { dg-error "expected .;. before '__complex__'" "semicolon" { target *-*-* } 11 } 
 
3970
+  // { dg-error "at end of input" "end" { target *-*-* } 11 } 
 
3971
Index: gcc/testsuite/g++.dg/parse/error3.C
 
3972
===================================================================
 
3973
--- a/src/gcc/testsuite/g++.dg/parse/error3.C   (revision
 
3974
+++ b/src/gcc/testsuite/g++.dg/parse/error3.C   (revision
 
3975
@@ -5,5 +5,5 @@
 
3976
                                   void(*AddFunction)(const TYPE&,bool&,
 
3977
                                                      char*, char*,
 
3978
                                                      unsigned*));
 
3979
-// { dg-error "64: ISO C\\+\\+ forbids declaration of 'parameter' with no type" "" { target *-*-* }  { 5 } }
 
3980
-// { dg-error "60: 'TYPE' does not name a type" "" { target *-*-* } { 5 } }
 
3981
+// { dg-error "64: ISO C\\+\\+ forbids declaration of 'parameter' with no type" "forbids" { target *-*-* }  { 5 } }
 
3982
+// { dg-error "60: 'TYPE' does not name a type" "does not" { target *-*-* } { 5 } }
 
3983
Index: gcc/testsuite/g++.dg/parse/crash46.C
 
3984
===================================================================
 
3985
--- a/src/gcc/testsuite/g++.dg/parse/crash46.C  (revision
 
3986
+++ b/src/gcc/testsuite/g++.dg/parse/crash46.C  (revision
 
3987
@@ -2,17 +2,17 @@
 
3988
 // { dg-do compile }
 
3989
 
 
3990
 void
 
3991
-foo (_Decimal32)       // { dg-error "declared void" }
 
3992
+foo (_Decimal32)       // { dg-error "declared void" "declared" }
 
3993
 {
 
3994
 }
 
3995
-                       // { dg-error "was not declared" "" { target *-*-* } 5 }
 
3996
+                       // { dg-error "was not declared" "not" { target *-*-* } 5 }
 
3997
 void
 
3998
-bar (_Bool)            // { dg-error "declared void" }
 
3999
+bar (_Bool)            // { dg-error "declared void" "declared" }
 
4000
 {
 
4001
 }
 
4002
-                       // { dg-error "was not declared" "" { target *-*-* } 10 }
 
4003
+                       // { dg-error "was not declared" "not" { target *-*-* } 10 }
 
4004
 void
 
4005
-baz (_Fract)           // { dg-error "declared void" }
 
4006
+baz (_Fract)           // { dg-error "declared void" "declared" }
 
4007
 {
 
4008
 }
 
4009
-                       // { dg-error "was not declared" "" { target *-*-* } 15 }
 
4010
+                       // { dg-error "was not declared" "not" { target *-*-* } 15 }
 
4011
Index: gcc/testsuite/g++.dg/parse/parser-pr28152.C
 
4012
===================================================================
 
4013
--- a/src/gcc/testsuite/g++.dg/parse/parser-pr28152.C   (revision
 
4014
+++ b/src/gcc/testsuite/g++.dg/parse/parser-pr28152.C   (revision
 
4015
@@ -6,8 +6,8 @@
 
4016
 {
 
4017
   _Complex float z;
 
4018
 
 
4019
-  z = _Complex (1.90000007326203904e+19, 0.0);   // { dg-error "expected primary-expression before '_Complex'" } 
 
4020
-  // { dg-error "expected .;. before ._Complex." "" { target *-*-* } 9 } 
 
4021
-  z = _Complex (1.0e+0, 0.0) / z;    // { dg-error "expected primary-expression before '_Complex'" } 
 
4022
-  // { dg-error "expected .;. before '_Complex'" "" { target *-*-* } 11 } 
 
4023
-  // { dg-error "at end of input" "" { target *-*-* } 11 } 
 
4024
+  z = _Complex (1.90000007326203904e+19, 0.0);   // { dg-error "expected primary-expression before '_Complex'" "primary-expression" } 
 
4025
+  // { dg-error "expected .;. before ._Complex." "semicolon" { target *-*-* } 9 } 
 
4026
+  z = _Complex (1.0e+0, 0.0) / z;    // { dg-error "expected primary-expression before '_Complex'" "primary-expression" } 
 
4027
+  // { dg-error "expected .;. before '_Complex'" "semicolon" { target *-*-* } 11 } 
 
4028
+  // { dg-error "at end of input" "end" { target *-*-* } 11 } 
 
4029
Index: gcc/testsuite/g++.dg/parse/error10.C
 
4030
===================================================================
 
4031
--- a/src/gcc/testsuite/g++.dg/parse/error10.C  (revision
 
4032
+++ b/src/gcc/testsuite/g++.dg/parse/error10.C  (revision
 
4033
@@ -15,5 +15,5 @@
 
4034
 }
 
4035
 
 
4036
 // Here, columns nums are not very accurate either. Still acceptable though
 
4037
-// { dg-error "30:invalid type in declaration before ';' token" "" { target *-*-* } 14 }
 
4038
-// { dg-error "30:two or more data types in declaration of 'e4'" "" { target *-*-* } 14 }
 
4039
+// { dg-error "30:invalid type in declaration before ';' token" "invalid" { target *-*-* } 14 }
 
4040
+// { dg-error "30:two or more data types in declaration of 'e4'" "2 or more" { target *-*-* } 14 }
 
4041
Index: gcc/testsuite/g++.dg/parse/error8.C
 
4042
===================================================================
 
4043
--- a/src/gcc/testsuite/g++.dg/parse/error8.C   (revision
 
4044
+++ b/src/gcc/testsuite/g++.dg/parse/error8.C   (revision
 
4045
@@ -4,6 +4,6 @@
 
4046
 struct A { friend typename struct B; };
 
4047
 
 
4048
 
 
4049
-// { dg-error "28:expected nested-name-specifier before 'struct'" "" { target *-*-* } 4 }
 
4050
-// { dg-error "35:multiple types in one declaration" "" { target *-*-* } 4 }
 
4051
-// { dg-error "12:friend declaration does not name a class or function" "" { target *-*-* } 4 }
 
4052
+// { dg-error "28:expected nested-name-specifier before 'struct'" "expected" { target *-*-* } 4 }
 
4053
+// { dg-error "35:multiple types in one declaration" "multiple" { target *-*-* } 4 }
 
4054
+// { dg-error "12:friend declaration does not name a class or function" "friend decl" { target *-*-* } 4 }
 
4055
Index: gcc/testsuite/g++.dg/parse/typename11.C
 
4056
===================================================================
 
4057
--- a/src/gcc/testsuite/g++.dg/parse/typename11.C       (revision
 
4058
+++ b/src/gcc/testsuite/g++.dg/parse/typename11.C       (revision
 
4059
@@ -10,7 +10,7 @@
 
4060
 
 
4061
 // note: I is nested type in X, not Y!
 
4062
 template <int dim>
 
4063
-Y<dim>::I::I () {}             // { dg-error "dependent typedef" }
 
4064
-// { dg-error "no type|dependent type" "" { target *-*-* } 13 }
 
4065
+Y<dim>::I::I () {}             // { dg-error "dependent typedef" "typedef" }
 
4066
+// { dg-error "no type|dependent type" "no type" { target *-*-* } 13 }
 
4067
 
 
4068
 template struct Y<1>;
 
4069
Index: gcc/testsuite/g++.dg/tc1/dr147.C
 
4070
===================================================================
 
4071
--- a/src/gcc/testsuite/g++.dg/tc1/dr147.C      (revision
 
4072
+++ b/src/gcc/testsuite/g++.dg/tc1/dr147.C      (revision
 
4073
@@ -20,8 +20,8 @@
 
4074
 
 
4075
 void f()
 
4076
 {
 
4077
-  A::A a; // { dg-error "constructor" }
 
4078
-} // { dg-error "" "" { target *-*-* } 23 } error cascade
 
4079
+  A::A a; // { dg-error "constructor" "constructor" }
 
4080
+} // { dg-error "" "error cascade" { target *-*-* } 23 } error cascade
 
4081
 }
 
4082
 
 
4083
 namespace N2 {
 
4084
Index: gcc/testsuite/g++.dg/cpp0x/variadic-ex14.C
 
4085
===================================================================
 
4086
--- a/src/gcc/testsuite/g++.dg/cpp0x/variadic-ex14.C    (revision
 
4087
+++ b/src/gcc/testsuite/g++.dg/cpp0x/variadic-ex14.C    (revision
 
4088
@@ -8,12 +8,12 @@
 
4089
 template<template<class...> class Q> class Y { /* ... */ };
 
4090
 
 
4091
 X<A> xA; // okay
 
4092
-X<B> xB; // { dg-error "mismatch" }
 
4093
-// { dg-error "expected a template" "" { target *-*-* } 11 }
 
4094
-// { dg-error "invalid type" "" { target *-*-* } 11 }
 
4095
-X<C> xC; // { dg-error "mismatch" }
 
4096
-// { dg-error "expected a template" "" { target *-*-* } 14 }
 
4097
-// { dg-error "invalid type" "" { target *-*-* } 14 }
 
4098
+X<B> xB; // { dg-error "mismatch" "mismatch" }
 
4099
+// { dg-error "expected a template" "expected" { target *-*-* } 11 }
 
4100
+// { dg-error "invalid type" "invalid" { target *-*-* } 11 }
 
4101
+X<C> xC; // { dg-error "mismatch" "mismatch" }
 
4102
+// { dg-error "expected a template" "expected" { target *-*-* } 14 }
 
4103
+// { dg-error "invalid type" "invalid" { target *-*-* } 14 }
 
4104
 Y<A> yA;
 
4105
 Y<B> yB;
 
4106
 Y<C> yC; // okay
 
4107
Index: gcc/testsuite/g++.dg/cpp0x/defaulted36.C
 
4108
===================================================================
 
4109
--- a/src/gcc/testsuite/g++.dg/cpp0x/defaulted36.C      (revision
 
4110
+++ b/src/gcc/testsuite/g++.dg/cpp0x/defaulted36.C      (revision
 
4111
@@ -0,0 +1,24 @@
 
4112
+// PR c++/53733
 
4113
+// { dg-do compile { target c++11 } }
 
4114
+
 
4115
+template<typename T>
 
4116
+struct wrap
 
4117
+{
 
4118
+  wrap() = default;
 
4119
+  wrap(wrap&&) = default; // Line 5
 
4120
+  wrap(const wrap&) = default;
 
4121
+
 
4122
+  T t;
 
4123
+};
 
4124
+
 
4125
+struct S {
 
4126
+  S() = default;
 
4127
+  S(const S&){}
 
4128
+  S(S&&) = default;
 
4129
+};
 
4130
+
 
4131
+typedef wrap<const S> W;
 
4132
+
 
4133
+W get() { return W(); } // Line 19
 
4134
+
 
4135
+int main() {}
 
4136
Index: gcc/testsuite/g++.dg/cpp0x/union1.C
 
4137
===================================================================
 
4138
--- a/src/gcc/testsuite/g++.dg/cpp0x/union1.C   (revision
 
4139
+++ b/src/gcc/testsuite/g++.dg/cpp0x/union1.C   (revision
 
4140
@@ -14,8 +14,8 @@
 
4141
   A a;                         // { dg-error "union member" }
 
4142
 };
 
4143
 
 
4144
-B b;                           // { dg-error "B::B\\(\\)" }
 
4145
-B b2(b);                       // { dg-error "B::B\\(const B&\\)" }
 
4146
+B b;                           // { dg-error "B::B\\(\\)" "B::B" }
 
4147
+B b2(b);                       // { dg-error "B::B\\(const B&\\)" "B::B" }
 
4148
 
 
4149
 struct C
 
4150
 {
 
4151
@@ -25,10 +25,10 @@
 
4152
   };
 
4153
 };
 
4154
 
 
4155
-C c;                           // { dg-error "C::C\\(\\)" }
 
4156
-C c2(c);                       // { dg-error "C::C\\(const C&\\)" }
 
4157
+C c;                           // { dg-error "C::C\\(\\)" "C::C" }
 
4158
+C c2(c);                       // { dg-error "C::C\\(const C&\\)" "C::C" }
 
4159
 
 
4160
-// { dg-error "B::~B" "" { target *-*-* } 17 }
 
4161
-// { dg-error "B::~B" "" { target *-*-* } 18 }
 
4162
-// { dg-error "C::~C" "" { target *-*-* } 28 }
 
4163
-// { dg-error "C::~C" "" { target *-*-* } 29 }
 
4164
+// { dg-error "B::~B" "B::~B" { target *-*-* } 17 }
 
4165
+// { dg-error "B::~B" "B::~B" { target *-*-* } 18 }
 
4166
+// { dg-error "C::~C" "C::~C" { target *-*-* } 28 }
 
4167
+// { dg-error "C::~C" "C::~C" { target *-*-* } 29 }
1098
4168
Index: gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template6.C
1099
4169
===================================================================
1100
4170
--- a/src/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-template6.C  (revision
1114
4184
+{
1115
4185
+  f<void>();
1116
4186
+}
 
4187
Index: gcc/testsuite/g++.dg/cpp0x/lambda/lambda-syntax1.C
 
4188
===================================================================
 
4189
--- a/src/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-syntax1.C    (revision
 
4190
+++ b/src/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-syntax1.C    (revision
 
4191
@@ -1,5 +1,5 @@
 
4192
 // PR c++/46124
 
4193
 // { dg-options -std=c++0x }
 
4194
 
 
4195
-void foo() { [] () -> void (); } // { dg-error "returning a function" }
 
4196
-// { dg-error "expected .\{" "" { target *-*-* } 4 }
 
4197
+void foo() { [] () -> void (); } // { dg-error "returning a function" "returning" }
 
4198
+// { dg-error "expected .\{" "expected" { target *-*-* } 4 }
 
4199
Index: gcc/testsuite/g++.dg/cpp0x/variadic20.C
 
4200
===================================================================
 
4201
--- a/src/gcc/testsuite/g++.dg/cpp0x/variadic20.C       (revision
 
4202
+++ b/src/gcc/testsuite/g++.dg/cpp0x/variadic20.C       (revision
 
4203
@@ -37,11 +37,11 @@
 
4204
 
 
4205
 int a0[metatuple<>::value == 0? 1 : -1];
 
4206
 int a1[metatuple<add_pointer>::value == 1? 1 : -1];
 
4207
-int a2a[metatuple<add_pointer, add_pointer>::value == 2? 1 : -1]; // { dg-error "ambiguous|array bound" }
 
4208
+int a2a[metatuple<add_pointer, add_pointer>::value == 2? 1 : -1]; // { dg-error "ambiguous|array bound" "bound" }
 
4209
 int a2b[metatuple<add_reference, add_reference>::value == 2? 1 : -1];
 
4210
-int a3[metatuple<add_pointer, add_reference>::value == 3? 1 : -1]; // { dg-error "ambiguous|array bound" }
 
4211
+int a3[metatuple<add_pointer, add_reference>::value == 3? 1 : -1]; // { dg-error "ambiguous|array bound" "bound" }
 
4212
 int a4[metatuple<add_reference>::value == 4? 1 : -1];
 
4213
 int a5[metatuple<add_reference, add_pointer>::value == 5? 1 : -1];
 
4214
 
 
4215
-// { dg-error "incomplete" "" { target *-*-* } 40 }
 
4216
-// { dg-error "incomplete" "" { target *-*-* } 42 }
 
4217
+// { dg-error "incomplete" "incomplete" { target *-*-* } 40 }
 
4218
+// { dg-error "incomplete" "incomplete" { target *-*-* } 42 }
 
4219
Index: gcc/testsuite/g++.dg/cpp0x/udlit-cpp98-neg.C
 
4220
===================================================================
 
4221
--- a/src/gcc/testsuite/g++.dg/cpp0x/udlit-cpp98-neg.C  (revision
 
4222
+++ b/src/gcc/testsuite/g++.dg/cpp0x/udlit-cpp98-neg.C  (revision
 
4223
@@ -12,6 +12,6 @@
 
4224
 operator"" _Q(const char *, std::size_t)       // { dg-warning "user-defined literals only available with" }
 
4225
 { return 42; }
 
4226
 
 
4227
-int x = "Hello"_Q;     // { dg-error "invalid conversion from" }
 
4228
+int x = "Hello"_Q;     // { dg-error "invalid conversion from" "invalid" }
 
4229
 
 
4230
-// { dg-error "expected" "" { target *-*-* } 15 }
 
4231
+// { dg-error "expected" "expected" { target *-*-* } 15 }
 
4232
Index: gcc/testsuite/g++.dg/cpp0x/static_assert3.C
 
4233
===================================================================
 
4234
--- a/src/gcc/testsuite/g++.dg/cpp0x/static_assert3.C   (revision
 
4235
+++ b/src/gcc/testsuite/g++.dg/cpp0x/static_assert3.C   (revision
 
4236
@@ -1,4 +1,4 @@
 
4237
 // { dg-options "-std=c++0x" }
 
4238
-static_assert(7 / 0, "X"); // { dg-error "non-constant condition" }
 
4239
-// { dg-warning "division by zero" "" { target *-*-* } 2 }
 
4240
-// { dg-error "7 / 0.. is not a constant expression" "" { target *-*-* } 2 }
 
4241
+static_assert(7 / 0, "X"); // { dg-error "non-constant condition" "non-constant" }
 
4242
+// { dg-warning "division by zero" "zero" { target *-*-* } 2 }
 
4243
+// { dg-error "7 / 0.. is not a constant expression" "not a constant" { target *-*-* } 2 }
 
4244
Index: gcc/testsuite/g++.dg/cpp0x/implicit13.C
 
4245
===================================================================
 
4246
--- a/src/gcc/testsuite/g++.dg/cpp0x/implicit13.C       (revision
 
4247
+++ b/src/gcc/testsuite/g++.dg/cpp0x/implicit13.C       (revision
 
4248
@@ -0,0 +1,32 @@
 
4249
+// Make sure that A's destructor doesn't affect constexpr
 
4250
+// or exception-spec on D's default constructor.
 
4251
+// { dg-do compile { target c++11 } }
 
4252
+
 
4253
+struct A {
 
4254
+  constexpr A() noexcept: i(0) { }
 
4255
+  int i;
 
4256
+  ~A() noexcept(false);
 
4257
+};
 
4258
+
 
4259
+struct B: A { };
 
4260
+
 
4261
+// Should get static initialization, so no constructor call.
 
4262
+// { dg-final { scan-assembler-not "_ZN1BC1Ev" } }
 
4263
+B b;
 
4264
+
 
4265
+struct C { C() noexcept; ~C() noexcept(false); };
 
4266
+struct D: C { };
 
4267
+extern D d;
 
4268
+
 
4269
+void *operator new(__SIZE_TYPE__, void*) noexcept;
 
4270
+
 
4271
+#define SA(X) static_assert((X),#X)
 
4272
+SA(noexcept(new (&d) D));
 
4273
+
 
4274
+struct E: virtual C { };
 
4275
+extern E e;
 
4276
+SA(noexcept (new (&e) E));
 
4277
+
 
4278
+struct F { C c; };
 
4279
+extern F f;
 
4280
+SA(noexcept (new (&f) F));
 
4281
Index: gcc/testsuite/g++.dg/cpp0x/auto27.C
 
4282
===================================================================
 
4283
--- a/src/gcc/testsuite/g++.dg/cpp0x/auto27.C   (revision
 
4284
+++ b/src/gcc/testsuite/g++.dg/cpp0x/auto27.C   (revision
 
4285
@@ -1,6 +1,6 @@
 
4286
 // PR c++/51186
 
4287
 
 
4288
-auto main()->int              // { dg-error "std=" "" { target c++98 } }
 
4289
-                              // { dg-error "auto" "" { target c++98 } 3 }
 
4290
-                              // { dg-error "no type" "" { target c++98 } 3 }
 
4291
+auto main()->int              // { dg-error "std=" "std" { target c++98 } }
 
4292
+                              // { dg-error "auto" "auto" { target c++98 } 3 }
 
4293
+                              // { dg-error "no type" "no type" { target c++98 } 3 }
 
4294
 { }
 
4295
Index: gcc/testsuite/g++.dg/cpp0x/regress/error-recovery1.C
 
4296
===================================================================
 
4297
--- a/src/gcc/testsuite/g++.dg/cpp0x/regress/error-recovery1.C  (revision
 
4298
+++ b/src/gcc/testsuite/g++.dg/cpp0x/regress/error-recovery1.C  (revision
 
4299
@@ -5,7 +5,7 @@
 
4300
 foo ()
 
4301
 {
 
4302
   const bool b =;              // { dg-error "" }
 
4303
-  foo < b > ();                        // { dg-error "constant expression" }
 
4304
+  foo < b > ();                        // { dg-error "constant expression" "const expr" }
 
4305
 };
 
4306
 
 
4307
-// { dg-error "no match" "" { target *-*-* } 8 }
 
4308
+// { dg-error "no match" "no match" { target *-*-* } 8 }
 
4309
Index: gcc/testsuite/g++.dg/cpp0x/variadic2.C
 
4310
===================================================================
 
4311
--- a/src/gcc/testsuite/g++.dg/cpp0x/variadic2.C        (revision
 
4312
+++ b/src/gcc/testsuite/g++.dg/cpp0x/variadic2.C        (revision
 
4313
@@ -8,8 +8,8 @@
 
4314
 template<typename T1, typename T2, typename... Rest>
 
4315
 struct two_or_more {}; // { dg-error "provided for" }
 
4316
 
 
4317
-typedef two_or_more<int> bad; // { dg-error "2 or more" }
 
4318
-// { dg-error "invalid type" "" { target *-*-* } 11 }
 
4319
+typedef two_or_more<int> bad; // { dg-error "2 or more" "2 or more" }
 
4320
+// { dg-error "invalid type" "invalid type" { target *-*-* } 11 }
 
4321
 
 
4322
 void f()
 
4323
 {
 
4324
Index: gcc/testsuite/g++.dg/cpp0x/udlit-shadow-neg.C
 
4325
===================================================================
 
4326
--- a/src/gcc/testsuite/g++.dg/cpp0x/udlit-shadow-neg.C (revision
 
4327
+++ b/src/gcc/testsuite/g++.dg/cpp0x/udlit-shadow-neg.C (revision
 
4328
@@ -39,11 +39,11 @@
 
4329
 
 
4330
 }
 
4331
 
 
4332
-// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "" { target *-*-* } 5 }
 
4333
-// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "" { target *-*-* } 9 }
 
4334
-// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "" { target *-*-* } 13 }
 
4335
-// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "" { target *-*-* } 17 }
 
4336
-// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "" { target *-*-* } 25 }
 
4337
-// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "" { target *-*-* } 29 }
 
4338
-// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "" { target *-*-* } 33 }
 
4339
-// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "" { target *-*-* } 37 }
 
4340
+// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 5 }
 
4341
+// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 9 }
 
4342
+// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 13 }
 
4343
+// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 17 }
 
4344
+// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 25 }
 
4345
+// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 29 }
 
4346
+// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 33 }
 
4347
+// { dg-warning "literal operator suffixes not preceded by|are reserved for future standardization" "reserved" { target *-*-* } 37 }
 
4348
Index: gcc/testsuite/g++.dg/cpp0x/constexpr-decl.C
 
4349
===================================================================
 
4350
--- a/src/gcc/testsuite/g++.dg/cpp0x/constexpr-decl.C   (revision
 
4351
+++ b/src/gcc/testsuite/g++.dg/cpp0x/constexpr-decl.C   (revision
 
4352
@@ -2,8 +2,8 @@
 
4353
 // { dg-options -std=c++0x }
 
4354
 
 
4355
 struct S {
 
4356
-  static constexpr int size;   // { dg-error "must have an initializer" }
 
4357
-  // { dg-error "previous declaration" "" { target *-*-* } 5 }
 
4358
+  static constexpr int size;   // { dg-error "must have an initializer" "must have" }
 
4359
+  // { dg-error "previous declaration" "previous" { target *-*-* } 5 }
 
4360
 };
 
4361
 
 
4362
 const int limit = 2 * S::size;
 
4363
Index: gcc/testsuite/g++.dg/cpp0x/defaulted21.C
 
4364
===================================================================
 
4365
--- a/src/gcc/testsuite/g++.dg/cpp0x/defaulted21.C      (revision
 
4366
+++ b/src/gcc/testsuite/g++.dg/cpp0x/defaulted21.C      (revision
 
4367
@@ -3,7 +3,8 @@
 
4368
 
 
4369
 struct U {
 
4370
   U();
 
4371
-  U(U const&);
 
4372
+private:
 
4373
+  U(U const&);                 // { dg-error "private" }
 
4374
 };
 
4375
 
 
4376
 struct X {
 
4377
@@ -13,7 +14,7 @@
 
4378
 };
 
4379
 
 
4380
 X::X(X&&)=default;             // { dg-message "implicitly deleted" }
 
4381
-// { dg-error "does not have a move constructor" "" { target *-*-* } 15 }
 
4382
+// { dg-prune-output "within this context" }
 
4383
 
 
4384
 X f() {
 
4385
   return X();
 
4386
Index: gcc/testsuite/g++.dg/cpp0x/decltype2.C
 
4387
===================================================================
 
4388
--- a/src/gcc/testsuite/g++.dg/cpp0x/decltype2.C        (revision
 
4389
+++ b/src/gcc/testsuite/g++.dg/cpp0x/decltype2.C        (revision
 
4390
@@ -45,8 +45,8 @@
 
4391
 int bar(int); 
 
4392
 CHECK_DECLTYPE(decltype(foo), int(char));
 
4393
 
 
4394
-decltype(bar) z; // { dg-error "overload" }
 
4395
-// { dg-error "invalid type" "" { target *-*-* } 48 }
 
4396
+decltype(bar) z; // { dg-error "overload" "overload" }
 
4397
+// { dg-error "invalid type" "invalid" { target *-*-* } 48 }
 
4398
 
 
4399
 CHECK_DECLTYPE(decltype(&foo), int(*)(char));
 
4400
 CHECK_DECLTYPE(decltype(*&foo), int(&)(char));
 
4401
Index: gcc/testsuite/g++.dg/cpp0x/variadic-ex10.C
 
4402
===================================================================
 
4403
--- a/src/gcc/testsuite/g++.dg/cpp0x/variadic-ex10.C    (revision
 
4404
+++ b/src/gcc/testsuite/g++.dg/cpp0x/variadic-ex10.C    (revision
 
4405
@@ -4,6 +4,6 @@
 
4406
 Tuple<> t0; // Types contains no arguments
 
4407
 Tuple<int> t1; // Types contains one argument: int
 
4408
 Tuple<int, float> t2; // Types contains two arguments: int and float
 
4409
-Tuple<0> error; // { dg-error "mismatch" }
 
4410
-// { dg-error "expected a type" "" { target *-*-* } 7 }
 
4411
-// { dg-error "in declaration" "" { target *-*-* } 7 }
 
4412
+Tuple<0> error; // { dg-error "mismatch" "mismatch" }
 
4413
+// { dg-error "expected a type" "expected a type" { target *-*-* } 7 }
 
4414
+// { dg-error "in declaration" "in declaration" { target *-*-* } 7 }
 
4415
Index: gcc/testsuite/g++.dg/cpp0x/decltype3.C
 
4416
===================================================================
 
4417
--- a/src/gcc/testsuite/g++.dg/cpp0x/decltype3.C        (revision
 
4418
+++ b/src/gcc/testsuite/g++.dg/cpp0x/decltype3.C        (revision
 
4419
@@ -55,8 +55,8 @@
 
4420
 }; 
 
4421
 
 
4422
 CHECK_DECLTYPE(decltype(aa.*&A::a), int&);
 
4423
-decltype(aa.*&A::b) zz; // { dg-error "cannot create pointer to reference member" }
 
4424
-// { dg-error "invalid type" "" { target *-*-* } 58 }
 
4425
+decltype(aa.*&A::b) zz; // { dg-error "cannot create pointer to reference member" "cannot" }
 
4426
+// { dg-error "invalid type" "invalid type" { target *-*-* } 58 }
 
4427
 CHECK_DECLTYPE(decltype(caa.*&A::a), const int&);
 
4428
 
 
4429
 class X { 
 
4430
Index: gcc/testsuite/g++.dg/cpp0x/variadic74.C
 
4431
===================================================================
 
4432
--- a/src/gcc/testsuite/g++.dg/cpp0x/variadic74.C       (revision
 
4433
+++ b/src/gcc/testsuite/g++.dg/cpp0x/variadic74.C       (revision
 
4434
@@ -19,8 +19,8 @@
 
4435
 A<int*, float*>::X<&i, &f> apple1;
 
4436
 B<int, float>::X<&i, &f> banana1;
 
4437
 
 
4438
-A<int*, float*>::X<&i> apple2; // { dg-error "wrong number of template arguments" }
 
4439
-// { dg-error "invalid type" "" { target *-*-* } 22 }
 
4440
-A<int*, float*>::X<&i, &f, &f> apple3; // { dg-error "wrong number of template arguments" }
 
4441
-// { dg-error "invalid type" "" { target *-*-* } 24 }
 
4442
+A<int*, float*>::X<&i> apple2; // { dg-error "wrong number of template arguments" "wrong number" }
 
4443
+// { dg-error "invalid type" "invalid" { target *-*-* } 22 }
 
4444
+A<int*, float*>::X<&i, &f, &f> apple3; // { dg-error "wrong number of template arguments" "wrong number" }
 
4445
+// { dg-error "invalid type" "invalid" { target *-*-* } 24 }
 
4446
 A<int, float> apple4;
 
4447
Index: gcc/testsuite/g++.dg/cpp0x/nullptr19.C
 
4448
===================================================================
 
4449
--- a/src/gcc/testsuite/g++.dg/cpp0x/nullptr19.C        (revision
 
4450
+++ b/src/gcc/testsuite/g++.dg/cpp0x/nullptr19.C        (revision
 
4451
@@ -5,8 +5,8 @@
 
4452
 
 
4453
 typedef decltype(nullptr) nullptr_t;
 
4454
 
 
4455
-char* k( char* );      /* { dg-message "note" } { dg-message "note" } */
 
4456
-nullptr_t k( nullptr_t ); /* { dg-message "note" } { dg-message "note" } */
 
4457
+char* k( char* );      /* { dg-message "note" } */
 
4458
+nullptr_t k( nullptr_t ); /* { dg-message "note" } */
 
4459
 
 
4460
 void test_k()
 
4461
 {
 
4462
Index: gcc/testsuite/g++.dg/cpp0x/nullptr29.C
 
4463
===================================================================
 
4464
--- a/src/gcc/testsuite/g++.dg/cpp0x/nullptr29.C        (revision
 
4465
+++ b/src/gcc/testsuite/g++.dg/cpp0x/nullptr29.C        (revision
 
4466
@@ -0,0 +1,4 @@
 
4467
+// PR c++/53882
 
4468
+// { dg-options "-std=gnu++11 -O" }
 
4469
+
 
4470
+void f(decltype(nullptr) &__restrict np) { }
 
4471
Index: gcc/testsuite/g++.dg/bprob/bprob.exp
 
4472
===================================================================
 
4473
--- a/src/gcc/testsuite/g++.dg/bprob/bprob.exp  (revision
 
4474
+++ b/src/gcc/testsuite/g++.dg/bprob/bprob.exp  (revision
 
4475
@@ -33,7 +33,11 @@
 
4476
     strace $tracelevel
 
4477
 }
 
4478
 
 
4479
-# Override the list defined in profopt.exp.
 
4480
+# Load support procs.
 
4481
+load_lib profopt.exp
 
4482
+
 
4483
+# Save and override the default list defined in profopt.exp.
 
4484
+set bprob_save_profopt_options $PROFOPT_OPTIONS
 
4485
 set PROFOPT_OPTIONS [list \
 
4486
        { -g } \
 
4487
        { -O0 } \
 
4488
@@ -47,9 +51,6 @@
 
4489
     strace $tracelevel
 
4490
 }
 
4491
 
 
4492
-# Load support procs.
 
4493
-load_lib profopt.exp
 
4494
-
 
4495
 set profile_options "-fprofile-arcs"
 
4496
 set feedback_options "-fbranch-probabilities"
 
4497
 
 
4498
@@ -63,3 +64,5 @@
 
4499
         profopt-execute $src
 
4500
     }
 
4501
 }
 
4502
+
 
4503
+set PROFOPT_OPTIONS $bprob_save_profopt_options
1117
4504
Index: gcc/testsuite/g++.dg/torture/pr53693.C
1118
4505
===================================================================
1119
4506
--- a/src/gcc/testsuite/g++.dg/torture/pr53693.C        (revision
1140
4527
+      dst_b[x] = ((gs  - gh) << 5)  | (gs  - gh);
1141
4528
+    }
1142
4529
+}
 
4530
Index: gcc/testsuite/g++.dg/torture/stackalign/stackalign.exp
 
4531
===================================================================
 
4532
--- a/src/gcc/testsuite/g++.dg/torture/stackalign/stackalign.exp        (revision
 
4533
+++ b/src/gcc/testsuite/g++.dg/torture/stackalign/stackalign.exp        (revision
 
4534
@@ -1,4 +1,4 @@
 
4535
-# Copyright (C) 2008, 2010
 
4536
+# Copyright (C) 2008, 2010, 2012
 
4537
 # Free Software Foundation, Inc.
 
4538
 
 
4539
 # This program is free software; you can redistribute it and/or modify
 
4540
@@ -18,18 +18,41 @@
 
4541
 # This harness is for tests that should be run at all optimisation levels.
 
4542
 
 
4543
 load_lib g++-dg.exp
 
4544
+load_lib torture-options.exp
 
4545
+
 
4546
+global DG_TORTURE_OPTIONS LTO_TORTURE_OPTIONS
 
4547
+
 
4548
 dg-init
 
4549
-set additional_flags ""
 
4550
+torture-init
 
4551
 
 
4552
+# default_flags are replaced by a dg-options test directive, or appended
 
4553
+# to by using dg-additional-options.  Use default_flags for options that
 
4554
+# are used in all of the torture sets to limit the amount of noise in
 
4555
+# test summaries.
 
4556
+set default_flags ""
 
4557
+
 
4558
+# torture_flags are combined with other torture options and do not
 
4559
+# affect options specified within a test.
 
4560
+set torture_flags ""
 
4561
+
 
4562
+set stackalign_options [list]
 
4563
+
 
4564
 # If automatic stack alignment is supported, force it on.
 
4565
 if { [check_effective_target_automatic_stack_alignment] } then {
 
4566
-    lappend additional_flags "-mstackrealign"
 
4567
-    lappend additional_flags "-mpreferred-stack-boundary=5"
 
4568
+    append default_flags " -mstackrealign"
 
4569
+    append default_flags " -mpreferred-stack-boundary=5"
 
4570
 }
 
4571
+lappend stackalign_options [join $torture_flags]
 
4572
 
 
4573
-gcc-dg-runtest [lsort [glob $srcdir/$subdir/*.C]] $additional_flags
 
4574
 if { [check_effective_target_fpic] } then {
 
4575
-    lappend additional_flags "-fpic"
 
4576
-    gcc-dg-runtest [lsort [glob $srcdir/$subdir/*.C]] $additional_flags
 
4577
+    lappend torture_flags "-fpic"
 
4578
+    lappend stackalign_options [join $torture_flags]
 
4579
 }
 
4580
+
 
4581
+# Combine stackalign options with the usual torture optimization flags.
 
4582
+set-torture-options [concat $DG_TORTURE_OPTIONS $LTO_TORTURE_OPTIONS] $stackalign_options
 
4583
+
 
4584
+gcc-dg-runtest [lsort [glob $srcdir/$subdir/*.C]] "$default_flags"
 
4585
+
 
4586
+torture-finish
 
4587
 dg-finish
 
4588
Index: gcc/testsuite/g++.dg/overload/operator5.C
 
4589
===================================================================
 
4590
--- a/src/gcc/testsuite/g++.dg/overload/operator5.C     (revision
 
4591
+++ b/src/gcc/testsuite/g++.dg/overload/operator5.C     (revision
 
4592
@@ -13,4 +13,4 @@
 
4593
                                       const String& b,
 
4594
                                       bool ignoreCase) {
 
4595
   return ignoreCase ? equalIgnoringCase(a, b) : (a == b); } // { dg-error "ambiguous" }
 
4596
-// { dg-message "note" { target *-*-* } 15 }
 
4597
+// { dg-message "note" "note" { target *-*-* } 15 }
1143
4598
Index: gcc/testsuite/g++.dg/template/ref6.C
1144
4599
===================================================================
1145
4600
--- a/src/gcc/testsuite/g++.dg/template/ref6.C  (revision
1160
4615
+    W (U const &x) { V<int> const &v = x.v; v.v(); }
1161
4616
+  };
1162
4617
+};
 
4618
Index: gcc/testsuite/g++.dg/template/deduce3.C
 
4619
===================================================================
 
4620
--- a/src/gcc/testsuite/g++.dg/template/deduce3.C       (revision
 
4621
+++ b/src/gcc/testsuite/g++.dg/template/deduce3.C       (revision
 
4622
@@ -1,11 +1,11 @@
 
4623
 template <typename T>
 
4624
-void f(int, T (*)() = 0);      // { dg-message "note" }
 
4625
+void f(int, T (*)() = 0);      // { dg-message "note" "note" }
 
4626
 
 
4627
 void g() {
 
4628
   typedef int A[2];
 
4629
   f<A>(0); // { dg-error "" }
 
4630
-  // { dg-error "returning an array" "candidate explanation" { target *-*-* } 2 }
 
4631
+  // { dg-error "returning an array" "returning an array" { target *-*-* } 2 }
 
4632
   typedef void F();
 
4633
   f<F>(0); // { dg-error "" }
 
4634
-  // { dg-error "returning a function" "candidate explanation" { target *-*-* } 2 }
 
4635
+  // { dg-error "returning a function" "returning a function" { target *-*-* } 2 }
 
4636
 }
 
4637
Index: gcc/testsuite/g++.dg/template/pr23510.C
 
4638
===================================================================
 
4639
--- a/src/gcc/testsuite/g++.dg/template/pr23510.C       (revision
 
4640
+++ b/src/gcc/testsuite/g++.dg/template/pr23510.C       (revision
 
4641
@@ -3,9 +3,9 @@
 
4642
 template<unsigned int nFactor>
 
4643
 struct Factorial
 
4644
 {
 
4645
-  enum { nValue = nFactor * Factorial<nFactor - 1>::nValue }; // { dg-error "depth exceeds maximum" } 
 
4646
-  // { dg-message "recursively required" "" { target *-*-* } 6 }
 
4647
-  // { dg-error "incomplete type" "" { target *-*-* } 6 } 
 
4648
+  enum { nValue = nFactor * Factorial<nFactor - 1>::nValue }; // { dg-error "depth exceeds maximum" "exceeds" } 
 
4649
+  // { dg-message "recursively required" "recurse" { target *-*-* } 6 }
 
4650
+  // { dg-error "incomplete type" "incomplete" { target *-*-* } 6 } 
 
4651
 } // { dg-error "expected ';' after" }
 
4652
 
 
4653
   template<>
 
4654
Index: gcc/testsuite/g++.dg/template/error46.C
 
4655
===================================================================
 
4656
--- a/src/gcc/testsuite/g++.dg/template/error46.C       (revision
 
4657
+++ b/src/gcc/testsuite/g++.dg/template/error46.C       (revision
 
4658
@@ -8,4 +8,4 @@
 
4659
 {
 
4660
   foo(A<0>(), A<1>()); // { dg-error "no matching" }
 
4661
 }
 
4662
-// { dg-message "candidate|parameter 'N' ('0' and '1')" { target *-*-* } 9 }
 
4663
+// { dg-message "candidate|parameter 'N' ('0' and '1')" "" { target *-*-* } 9 }
 
4664
Index: gcc/testsuite/g++.dg/template/crash107.C
 
4665
===================================================================
 
4666
--- a/src/gcc/testsuite/g++.dg/template/crash107.C      (revision
 
4667
+++ b/src/gcc/testsuite/g++.dg/template/crash107.C      (revision
 
4668
@@ -14,7 +14,7 @@
 
4669
     }
 
4670
 };
 
4671
 Vec<double> v(3,4,12); // { dg-error "no matching" }
 
4672
-// { dg-message "note" { target *-*-* } 16 }
 
4673
+// { dg-message "note" "note" { target *-*-* } 16 }
 
4674
 Vec<double> V(12,4,3);  // { dg-error "no matching" }
 
4675
-// { dg-message "note" { target *-*-* } 18 }
 
4676
+// { dg-message "note" "note" { target *-*-* } 18 }
 
4677
 Vec<double> c = v^V;   // { dg-message "required" }
 
4678
Index: gcc/testsuite/g++.dg/template/error47.C
 
4679
===================================================================
 
4680
--- a/src/gcc/testsuite/g++.dg/template/error47.C       (revision
 
4681
+++ b/src/gcc/testsuite/g++.dg/template/error47.C       (revision
 
4682
@@ -6,4 +6,4 @@
 
4683
 {
 
4684
   foo(0, p); // { dg-error "no matching" }
 
4685
 }
 
4686
-// { dg-message "candidate|parameter 'T' ('int' and 'void*')" { target *-*-* } 7 }
 
4687
+// { dg-message "candidate|parameter 'T' ('int' and 'void*')" "" { target *-*-* } 7 }
 
4688
Index: gcc/testsuite/g++.dg/template/crash108.C
 
4689
===================================================================
 
4690
--- a/src/gcc/testsuite/g++.dg/template/crash108.C      (revision
 
4691
+++ b/src/gcc/testsuite/g++.dg/template/crash108.C      (revision
 
4692
@@ -2,4 +2,4 @@
 
4693
 
 
4694
 template<class T> struct A {A(int b=k(0));}; // { dg-error "arguments" }
 
4695
 void f(int k){A<int> a;} // // { dg-error "parameter|declared" }
 
4696
-// { dg-message "note" { target *-*-* } 3 }
 
4697
+// { dg-message "note" "note" { target *-*-* } 3 }
 
4698
Index: gcc/testsuite/g++.dg/template/koenig9.C
 
4699
===================================================================
 
4700
--- a/src/gcc/testsuite/g++.dg/template/koenig9.C       (revision
 
4701
+++ b/src/gcc/testsuite/g++.dg/template/koenig9.C       (revision
 
4702
@@ -16,8 +16,8 @@
 
4703
 
 
4704
 template <class T> struct B: A<T>
 
4705
 {
 
4706
-  void f() { h(T()); }         // { dg-error "argument-dependent" }
 
4707
-  static void g() { h(T()); }  // { dg-error "argument-dependent" }
 
4708
+  void f() { h(T()); }         // { dg-error "argument-dependent" "arg-dep" }
 
4709
+  static void g() { h(T()); }  // { dg-error "argument-dependent" "arg-dep" }
 
4710
 };
 
4711
 
 
4712
 int main()
 
4713
@@ -27,7 +27,7 @@
 
4714
   b.g();
 
4715
 }
 
4716
 
 
4717
-// { dg-message "dependent base .A.int" "" { target *-*-* } 19 }
 
4718
-// { dg-message "this->h" "" { target *-*-* } 19 }
 
4719
-// { dg-message "dependent base .A.int" "" { target *-*-* } 20 }
 
4720
-// { dg-message "B::h" "" { target *-*-* } 20 }
 
4721
+// { dg-message "dependent base .A.int" "base" { target *-*-* } 19 }
 
4722
+// { dg-message "this->h" "this->h" { target *-*-* } 19 }
 
4723
+// { dg-message "dependent base .A.int" "base" { target *-*-* } 20 }
 
4724
+// { dg-message "B::h" "B::h" { target *-*-* } 20 }
 
4725
Index: gcc/testsuite/c-c++-common/raw-string-3.c
 
4726
===================================================================
 
4727
--- a/src/gcc/testsuite/c-c++-common/raw-string-3.c     (revision
 
4728
+++ b/src/gcc/testsuite/c-c++-common/raw-string-3.c     (revision
 
4729
@@ -4,27 +4,27 @@
 
4730
 // { dg-options "" { target c } }
 
4731
 // { dg-options "-std=c++98" { target c++ } }
 
4732
 
 
4733
-const void     *s0     = R"(a)";       // { dg-error "was not declared|undeclared" }
 
4734
-               // { dg-error "expected ',' or ';'" "" { target *-*-* } 7 }
 
4735
-const void     *s1     = uR"(a)";      // { dg-error "was not declared|undeclared" }
 
4736
-               // { dg-error "expected ',' or ';'" "" { target *-*-* } 9 }
 
4737
-const void     *s2     = UR"(a)";      // { dg-error "was not declared|undeclared" }
 
4738
-               // { dg-error "expected ',' or ';'" "" { target *-*-* } 11 }
 
4739
-const void     *s3     = u8R"(a)";     // { dg-error "was not declared|undeclared" }
 
4740
-               // { dg-error "expected ',' or ';'" "" { target *-*-* } 13 }
 
4741
-const void     *s4     = LR"(a)";      // { dg-error "was not declared|undeclared" }
 
4742
-               // { dg-error "expected ',' or ';'" "" { target *-*-* } 15 }
 
4743
+const void     *s0     = R"(a)";       // { dg-error "was not declared|undeclared" "undeclared" }
 
4744
+               // { dg-error "expected ',' or ';'" "expected" { target *-*-* } 7 }
 
4745
+const void     *s1     = uR"(a)";      // { dg-error "was not declared|undeclared" "undeclared" }
 
4746
+               // { dg-error "expected ',' or ';'" "expected" { target *-*-* } 9 }
 
4747
+const void     *s2     = UR"(a)";      // { dg-error "was not declared|undeclared" "undeclared" }
 
4748
+               // { dg-error "expected ',' or ';'" "expected" { target *-*-* } 11 }
 
4749
+const void     *s3     = u8R"(a)";     // { dg-error "was not declared|undeclared" "undeclared" }
 
4750
+               // { dg-error "expected ',' or ';'" "expected" { target *-*-* } 13 }
 
4751
+const void     *s4     = LR"(a)";      // { dg-error "was not declared|undeclared" "undeclared" }
 
4752
+               // { dg-error "expected ',' or ';'" "expected" { target *-*-* } 15 }
 
4753
 
 
4754
-const int      i0      = R'a';         // { dg-error "expected ',' or ';'" }
 
4755
-               // { dg-error "was not declared" "" { target c++ } 18 }
 
4756
-const int      i1      = uR'a';        // { dg-error "expected ',' or ';'" }
 
4757
-               // { dg-error "was not declared" "" { target c++ } 20 }
 
4758
-const int      i2      = UR'a';        // { dg-error "expected ',' or ';'" }
 
4759
-               // { dg-error "was not declared" "" { target c++ } 22 }
 
4760
-const int      i3      = u8R'a';       // { dg-error "expected ',' or ';'" }
 
4761
-               // { dg-error "was not declared" "" { target c++ } 24 }
 
4762
-const int      i4      = LR'a';        // { dg-error "expected ',' or ';'" }
 
4763
-               // { dg-error "was not declared" "" { target c++ } 26 }
 
4764
+const int      i0      = R'a';         // { dg-error "expected ',' or ';'" "expected" }
 
4765
+               // { dg-error "was not declared" "undeclared" { target c++ } 18 }
 
4766
+const int      i1      = uR'a';        // { dg-error "expected ',' or ';'" "expected" }
 
4767
+               // { dg-error "was not declared" "undeclared" { target c++ } 20 }
 
4768
+const int      i2      = UR'a';        // { dg-error "expected ',' or ';'" "expected" }
 
4769
+               // { dg-error "was not declared" "undeclared" { target c++ } 22 }
 
4770
+const int      i3      = u8R'a';       // { dg-error "expected ',' or ';'" "expected" }
 
4771
+               // { dg-error "was not declared" "undeclared" { target c++ } 24 }
 
4772
+const int      i4      = LR'a';        // { dg-error "expected ',' or ';'" "expected" }
 
4773
+               // { dg-error "was not declared" "undeclared" { target c++ } 26 }
 
4774
 
 
4775
 #define R      "a"
 
4776
 #define uR     "b"
 
4777
Index: gcc/testsuite/c-c++-common/raw-string-5.c
 
4778
===================================================================
 
4779
--- a/src/gcc/testsuite/c-c++-common/raw-string-5.c     (revision
 
4780
+++ b/src/gcc/testsuite/c-c++-common/raw-string-5.c     (revision
 
4781
@@ -3,25 +3,25 @@
 
4782
 // { dg-options "-std=c++0x" { target c++ } }
 
4783
 
 
4784
 const void *s0 = R"0123456789abcdefg()0123456789abcdefg";
 
4785
-       // { dg-error "raw string delimiter longer" "" { target *-*-* } 5 }
 
4786
-       // { dg-error "stray" "" { target *-*-* } 5 }
 
4787
+       // { dg-error "raw string delimiter longer" "longer" { target *-*-* } 5 }
 
4788
+       // { dg-error "stray" "stray" { target *-*-* } 5 }
 
4789
 const void *s1 = R" () ";
 
4790
-       // { dg-error "invalid character" "" { target *-*-* } 8 }
 
4791
-       // { dg-error "stray" "" { target *-*-* } 8 }
 
4792
+       // { dg-error "invalid character" "invalid" { target *-*-* } 8 }
 
4793
+       // { dg-error "stray" "stray" { target *-*-* } 8 }
 
4794
 const void *s2 = R"    ()      ";
 
4795
-       // { dg-error "invalid character" "" { target *-*-* } 11 }
 
4796
-       // { dg-error "stray" "" { target *-*-* } 11 }
 
4797
+       // { dg-error "invalid character" invalid"" { target *-*-* } 11 }
 
4798
+       // { dg-error "stray" "stray" { target *-*-* } 11 }
 
4799
 const void *s3 = R")())";
 
4800
-       // { dg-error "invalid character" "" { target *-*-* } 14 }
 
4801
-       // { dg-error "stray" "" { target *-*-* } 14 }
 
4802
+       // { dg-error "invalid character" invalid"" { target *-*-* } 14 }
 
4803
+       // { dg-error "stray" "stray" { target *-*-* } 14 }
 
4804
 const void *s4 = R"@()@";
 
4805
-       // { dg-error "invalid character" "" { target *-*-* } 17 }
 
4806
-       // { dg-error "stray" "" { target *-*-* } 17 }
 
4807
+       // { dg-error "invalid character" invalid"" { target *-*-* } 17 }
 
4808
+       // { dg-error "stray" "stray" { target *-*-* } 17 }
 
4809
 const void *s5 = R"$()$";
 
4810
-       // { dg-error "invalid character" "" { target *-*-* } 20 }
 
4811
-       // { dg-error "stray" "" { target *-*-* } 20 }
 
4812
+       // { dg-error "invalid character" invalid"" { target *-*-* } 20 }
 
4813
+       // { dg-error "stray" "stray" { target *-*-* } 20 }
 
4814
 const void *s6 = R"\u0040()\u0040";
 
4815
-       // { dg-error "invalid character" "" { target *-*-* } 23 }
 
4816
-       // { dg-error "stray" "" { target *-*-* } 23 }
 
4817
+       // { dg-error "invalid character" invalid"" { target *-*-* } 23 }
 
4818
+       // { dg-error "stray" "stray" { target *-*-* } 23 }
 
4819
 
 
4820
 int main () {}
 
4821
Index: gcc/testsuite/c-c++-common/raw-string-4.c
 
4822
===================================================================
 
4823
--- a/src/gcc/testsuite/c-c++-common/raw-string-4.c     (revision
 
4824
+++ b/src/gcc/testsuite/c-c++-common/raw-string-4.c     (revision
 
4825
@@ -3,16 +3,16 @@
 
4826
 // { dg-options "-std=gnu99" { target c } }
 
4827
 // { dg-options "-std=c++0x" { target c++ } }
 
4828
 
 
4829
-const int      i0      = R'a'; // { dg-error "was not declared|undeclared" }
 
4830
-               // { dg-error "expected ',' or ';'" "" { target *-*-* } 6 }
 
4831
-const int      i1      = uR'a';        // { dg-error "was not declared|undeclared" }
 
4832
-               // { dg-error "expected ',' or ';'" "" { target *-*-* } 8 }
 
4833
-const int      i2      = UR'a';        // { dg-error "was not declared|undeclared" }
 
4834
-               // { dg-error "expected ',' or ';'" "" { target *-*-* } 10 }
 
4835
-const int      i3      = u8R'a';       // { dg-error "was not declared|undeclared" }
 
4836
-               // { dg-error "expected ',' or ';'" "" { target *-*-* } 12 }
 
4837
-const int      i4      = LR'a';        // { dg-error "was not declared|undeclared" }
 
4838
-               // { dg-error "expected ',' or ';'" "" { target *-*-* } 14 }
 
4839
+const int      i0      = R'a'; // { dg-error "was not declared|undeclared" "undeclared" }
 
4840
+               // { dg-error "expected ',' or ';'" "expected" { target *-*-* } 6 }
 
4841
+const int      i1      = uR'a';        // { dg-error "was not declared|undeclared" "undeclared" }
 
4842
+               // { dg-error "expected ',' or ';'" "expected" { target *-*-* } 8 }
 
4843
+const int      i2      = UR'a';        // { dg-error "was not declared|undeclared" "undeclared" }
 
4844
+               // { dg-error "expected ',' or ';'" "expected" { target *-*-* } 10 }
 
4845
+const int      i3      = u8R'a';       // { dg-error "was not declared|undeclared" "undeclared" }
 
4846
+               // { dg-error "expected ',' or ';'" "expected" { target *-*-* } 12 }
 
4847
+const int      i4      = LR'a';        // { dg-error "was not declared|undeclared" "undeclared" }
 
4848
+               // { dg-error "expected ',' or ';'" "expected" { target *-*-* } 14 }
 
4849
 
 
4850
 #define R      1 +
 
4851
 #define uR     2 +
 
4852
Index: gcc/testsuite/c-c++-common/raw-string-6.c
 
4853
===================================================================
 
4854
--- a/src/gcc/testsuite/c-c++-common/raw-string-6.c     (revision
 
4855
+++ b/src/gcc/testsuite/c-c++-common/raw-string-6.c     (revision
 
4856
@@ -2,5 +2,5 @@
 
4857
 // { dg-options "-std=gnu99" { target c } }
 
4858
 // { dg-options "-std=c++0x" { target c++ } }
 
4859
 
 
4860
-const void *s0 = R"ouch()ouCh";        // { dg-error "at end of input" }
 
4861
-       // { dg-error "unterminated raw string" "" { target *-*-* } 5 }
 
4862
+const void *s0 = R"ouch()ouCh";        // { dg-error "at end of input" "end" }
 
4863
+       // { dg-error "unterminated raw string" "unterminated" { target *-*-* } 5 }
 
4864
Index: gcc/testsuite/c-c++-common/pr20000.c
 
4865
===================================================================
 
4866
--- a/src/gcc/testsuite/c-c++-common/pr20000.c  (revision
 
4867
+++ b/src/gcc/testsuite/c-c++-common/pr20000.c  (revision
 
4868
@@ -9,8 +9,8 @@
 
4869
 
 
4870
 
 
4871
 int g(void) {
 
4872
-  return 1; /* { dg-warning "function declared 'noreturn' has a 'return' statement" } */
 
4873
-}           /* { dg-warning "'noreturn' function does return" "" { target *-*-* } 12 } */
 
4874
+  return 1; /* { dg-warning "function declared 'noreturn' has a 'return' statement" "has return" } */
 
4875
+}           /* { dg-warning "'noreturn' function does return" "does return" { target *-*-* } 12 } */
 
4876
 
 
4877
 int g2(void) {
 
4878
   h();
 
4879
@@ -24,8 +24,8 @@
 
4880
 int vg2(void); /* { dg-bogus ".noreturn. function returns non-void value" } */
 
4881
 
 
4882
 int vg(void) {
 
4883
-  return 1; /* { dg-warning "function declared 'noreturn' has a 'return' statement" "" { target c } 27 } */
 
4884
-}           /* { dg-warning "'noreturn' function does return" "" { target c } 27  } */
 
4885
+  return 1; /* { dg-warning "function declared 'noreturn' has a 'return' statement" "has return" { target c } 27 } */
 
4886
+}           /* { dg-warning "'noreturn' function does return" "does return" { target c } 27  } */
 
4887
 
 
4888
 int vg2(void) {
 
4889
   h();
1163
4890
Index: gcc/cp/class.c
1164
4891
===================================================================
1165
4892
--- a/src/gcc/cp/class.c        (revision
1177
4904
     {
1178
4905
       /* In a template we only care about the type of the result.  */
1179
4906
       if (nonnull)
 
4907
Index: gcc/cp/method.c
 
4908
===================================================================
 
4909
--- a/src/gcc/cp/method.c       (revision
 
4910
+++ b/src/gcc/cp/method.c       (revision
 
4911
@@ -923,7 +923,7 @@
 
4912
 
 
4913
 static void
 
4914
 process_subob_fn (tree fn, bool move_p, tree *spec_p, bool *trivial_p,
 
4915
-                 bool *deleted_p, bool *constexpr_p,
 
4916
+                 bool *deleted_p, bool *constexpr_p, bool *no_implicit_p,
 
4917
                  const char *msg, tree arg)
 
4918
 {
 
4919
   if (!fn || fn == error_mark_node)
 
4920
@@ -949,12 +949,10 @@
 
4921
        }
 
4922
     }
 
4923
 
 
4924
+  /* Core 1402: A non-trivial copy op suppresses the implicit
 
4925
+     declaration of the move ctor/op=.  */
 
4926
   if (move_p && !move_fn_p (fn) && !trivial_fn_p (fn))
 
4927
-    {
 
4928
-      if (msg)
 
4929
-       error (msg, arg);
 
4930
-      goto bad;
 
4931
-    }
 
4932
+    *no_implicit_p = true;
 
4933
 
 
4934
   if (constexpr_p && !DECL_DECLARED_CONSTEXPR_P (fn))
 
4935
     {
 
4936
@@ -981,8 +979,8 @@
 
4937
 walk_field_subobs (tree fields, tree fnname, special_function_kind sfk,
 
4938
                   int quals, bool copy_arg_p, bool move_p,
 
4939
                   bool assign_p, tree *spec_p, bool *trivial_p,
 
4940
-                  bool *deleted_p, bool *constexpr_p, const char *msg,
 
4941
-                  int flags, tsubst_flags_t complain)
 
4942
+                  bool *deleted_p, bool *constexpr_p, bool *no_implicit_p,
 
4943
+                  const char *msg, int flags, tsubst_flags_t complain)
 
4944
 {
 
4945
   tree field;
 
4946
   for (field = fields; field; field = DECL_CHAIN (field))
 
4947
@@ -1080,7 +1078,8 @@
 
4948
        {
 
4949
          walk_field_subobs (TYPE_FIELDS (mem_type), fnname, sfk, quals,
 
4950
                             copy_arg_p, move_p, assign_p, spec_p, trivial_p,
 
4951
-                            deleted_p, constexpr_p, msg, flags, complain);
 
4952
+                            deleted_p, constexpr_p, no_implicit_p,
 
4953
+                            msg, flags, complain);
 
4954
          continue;
 
4955
        }
 
4956
 
 
4957
@@ -1097,7 +1096,7 @@
 
4958
       rval = locate_fn_flags (mem_type, fnname, argtype, flags, complain);
 
4959
 
 
4960
       process_subob_fn (rval, move_p, spec_p, trivial_p, deleted_p,
 
4961
-                       constexpr_p, msg, field);
 
4962
+                       constexpr_p, no_implicit_p, msg, field);
 
4963
     }
 
4964
 }
 
4965
 
 
4966
@@ -1111,7 +1110,7 @@
 
4967
 static void
 
4968
 synthesized_method_walk (tree ctype, special_function_kind sfk, bool const_p,
 
4969
                         tree *spec_p, bool *trivial_p, bool *deleted_p,
 
4970
-                        bool *constexpr_p, bool diag)
 
4971
+                        bool *constexpr_p, bool *no_implicit_p, bool diag)
 
4972
 {
 
4973
   tree binfo, base_binfo, scope, fnname, rval, argtype;
 
4974
   bool move_p, copy_arg_p, assign_p, expected_trivial, check_vdtor;
 
4975
@@ -1199,6 +1198,9 @@
 
4976
   if (trivial_p)
 
4977
     *trivial_p = expected_trivial;
 
4978
 
 
4979
+  if (no_implicit_p)
 
4980
+    *no_implicit_p = false;
 
4981
+
 
4982
   /* The TYPE_HAS_COMPLEX_* flags tell us about constraints from base
 
4983
      class versions and other properties of the type.  But a subobject
 
4984
      class can be trivially copyable and yet have overload resolution
 
4985
@@ -1264,7 +1266,7 @@
 
4986
       rval = locate_fn_flags (base_binfo, fnname, argtype, flags, complain);
 
4987
 
 
4988
       process_subob_fn (rval, move_p, spec_p, trivial_p, deleted_p,
 
4989
-                       constexpr_p, msg, basetype);
 
4990
+                       constexpr_p, no_implicit_p, msg, basetype);
 
4991
       if (ctor_p && TYPE_HAS_NONTRIVIAL_DESTRUCTOR (basetype))
 
4992
        {
 
4993
          /* In a constructor we also need to check the subobject
 
4994
@@ -1272,9 +1274,12 @@
 
4995
          rval = locate_fn_flags (base_binfo, complete_dtor_identifier,
 
4996
                                  NULL_TREE, flags, complain);
 
4997
          /* Note that we don't pass down trivial_p; the subobject
 
4998
-            destructors don't affect triviality of the constructor.  */
 
4999
-         process_subob_fn (rval, false, spec_p, NULL,
 
5000
-                           deleted_p, NULL, NULL,
 
5001
+            destructors don't affect triviality of the constructor.  Nor
 
5002
+            do they affect constexpr-ness (a constant expression doesn't
 
5003
+            throw) or exception-specification (a throw from one of the
 
5004
+            dtors would be a double-fault).  */
 
5005
+         process_subob_fn (rval, false, NULL, NULL,
 
5006
+                           deleted_p, NULL, NULL, NULL,
 
5007
                            basetype);
 
5008
        }
 
5009
 
 
5010
@@ -1315,13 +1320,13 @@
 
5011
          rval = locate_fn_flags (base_binfo, fnname, argtype, flags, complain);
 
5012
 
 
5013
          process_subob_fn (rval, move_p, spec_p, trivial_p, deleted_p,
 
5014
-                           constexpr_p, msg, basetype);
 
5015
+                           constexpr_p, no_implicit_p, msg, basetype);
 
5016
          if (ctor_p && TYPE_HAS_NONTRIVIAL_DESTRUCTOR (basetype))
 
5017
            {
 
5018
              rval = locate_fn_flags (base_binfo, complete_dtor_identifier,
 
5019
                                      NULL_TREE, flags, complain);
 
5020
-             process_subob_fn (rval, false, spec_p, NULL,
 
5021
-                               deleted_p, NULL, NULL,
 
5022
+             process_subob_fn (rval, false, NULL, NULL,
 
5023
+                               deleted_p, NULL, NULL, NULL,
 
5024
                                basetype);
 
5025
            }
 
5026
        }
 
5027
@@ -1336,13 +1341,14 @@
 
5028
           "constructor or trivial copy constructor");
 
5029
   walk_field_subobs (TYPE_FIELDS (ctype), fnname, sfk, quals,
 
5030
                     copy_arg_p, move_p, assign_p, spec_p, trivial_p,
 
5031
-                    deleted_p, constexpr_p, msg, flags, complain);
 
5032
+                    deleted_p, constexpr_p, no_implicit_p,
 
5033
+                    msg, flags, complain);
 
5034
   if (ctor_p)
 
5035
     walk_field_subobs (TYPE_FIELDS (ctype), complete_dtor_identifier,
 
5036
                       sfk_destructor, TYPE_UNQUALIFIED, false,
 
5037
-                      false, false, spec_p, NULL,
 
5038
+                      false, false, NULL, NULL,
 
5039
                       deleted_p, NULL,
 
5040
-                      NULL, flags, complain);
 
5041
+                      NULL, NULL, flags, complain);
 
5042
 
 
5043
   pop_scope (scope);
 
5044
 
 
5045
@@ -1412,7 +1418,7 @@
 
5046
                 "definition would be ill-formed:", decl);
 
5047
          pop_scope (scope);
 
5048
          synthesized_method_walk (ctype, sfk, const_p,
 
5049
-                                  NULL, NULL, NULL, NULL, true);
 
5050
+                                  NULL, NULL, NULL, NULL, NULL, true);
 
5051
        }
 
5052
 
 
5053
       input_location = loc;
 
5054
@@ -1432,7 +1438,7 @@
 
5055
   bool dummy;
 
5056
   synthesized_method_walk (DECL_CLASS_CONTEXT (decl),
 
5057
                           special_function_p (decl), const_p,
 
5058
-                          NULL, NULL, NULL, &dummy, true);
 
5059
+                          NULL, NULL, NULL, &dummy, NULL, true);
 
5060
 }
 
5061
 
 
5062
 /* Implicitly declare the special function indicated by KIND, as a
 
5063
@@ -1456,6 +1462,7 @@
 
5064
   bool deleted_p;
 
5065
   bool trivial_p;
 
5066
   bool constexpr_p;
 
5067
+  bool no_implicit_p;
 
5068
 
 
5069
   /* Because we create declarations for implicitly declared functions
 
5070
      lazily, we may be creating the declaration for a member of TYPE
 
5071
@@ -1525,7 +1532,7 @@
 
5072
     }
 
5073
 
 
5074
   synthesized_method_walk (type, kind, const_p, &raises, &trivial_p,
 
5075
-                          &deleted_p, &constexpr_p, false);
 
5076
+                          &deleted_p, &constexpr_p, &no_implicit_p, false);
 
5077
   /* Don't bother marking a deleted constructor as constexpr.  */
 
5078
   if (deleted_p)
 
5079
     constexpr_p = false;
 
5080
@@ -1590,6 +1597,7 @@
 
5081
       DECL_DELETED_FN (fn) = deleted_p;
 
5082
       DECL_DECLARED_CONSTEXPR_P (fn) = constexpr_p;
 
5083
     }
 
5084
+  FNDECL_SUPPRESS_IMPLICIT_DECL (fn) = no_implicit_p;
 
5085
   DECL_EXTERNAL (fn) = true;
 
5086
   DECL_NOT_REALLY_EXTERN (fn) = 1;
 
5087
   DECL_DECLARED_INLINE_P (fn) = 1;
 
5088
@@ -1782,6 +1790,10 @@
 
5089
          || sfk == sfk_move_assignment))
 
5090
     return NULL_TREE;
 
5091
 
 
5092
+  /* We also suppress implicit move if it would call a non-trivial copy.  */
 
5093
+  if (FNDECL_SUPPRESS_IMPLICIT_DECL (fn))
 
5094
+    return NULL_TREE;
 
5095
+
 
5096
   /* A destructor may be virtual.  */
 
5097
   if (sfk == sfk_destructor
 
5098
       || sfk == sfk_move_assignment
1180
5099
Index: gcc/cp/ChangeLog
1181
5100
===================================================================
1182
5101
--- a/src/gcc/cp/ChangeLog      (revision
1183
5102
+++ b/src/gcc/cp/ChangeLog      (revision
1184
 
@@ -1,3 +1,13 @@
 
5103
@@ -1,3 +1,28 @@
 
5104
+2012-07-10  Jason Merrill  <jason@redhat.com>
 
5105
+
 
5106
+       DR 1402
 
5107
+       PR c++/53733
 
5108
+       * cp-tree.h (FNDECL_SUPPRESS_IMPLICIT_DECL): New.
 
5109
+       (struct lang_decl_fn): Add suppress_implicit_decl field.
 
5110
+       * method.c (implicitly_declare_fn): Check it.
 
5111
+       (process_subob_fn): Add no_implicit_p parm.
 
5112
+       (walk_field_subobs, synthesized_method_walk): Likewise.
 
5113
+       (maybe_explain_implicit_delete): Adjust.
 
5114
+       (explain_implicit_non_constexpr): Adjust.
 
5115
+
 
5116
+       * method.c (synthesized_method_walk): Cleanups don't affect the EH
 
5117
+       spec either.
 
5118
+
1185
5119
+2012-07-02  Jason Merrill  <jason@redhat.com>
1186
5120
+
1187
5121
+       PR c++/53816
1217
5151
 
1218
5152
   add_method (type, fn, NULL_TREE);
1219
5153
 
 
5154
Index: gcc/cp/cp-tree.h
 
5155
===================================================================
 
5156
--- a/src/gcc/cp/cp-tree.h      (revision
 
5157
+++ b/src/gcc/cp/cp-tree.h      (revision
 
5158
@@ -1937,7 +1937,7 @@
 
5159
   unsigned thunk_p : 1;
 
5160
   unsigned this_thunk_p : 1;
 
5161
   unsigned hidden_friend_p : 1;
 
5162
-  /* 1 spare bit.  */
 
5163
+  unsigned suppress_implicit_decl : 1;
 
5164
 
 
5165
   /* For a non-thunk function decl, this is a tree list of
 
5166
      friendly classes. For a thunk function decl, it is the
 
5167
@@ -3097,6 +3097,12 @@
 
5168
 #define DECL_HIDDEN_FRIEND_P(NODE) \
 
5169
   (LANG_DECL_FN_CHECK (DECL_COMMON_CHECK (NODE))->hidden_friend_p)
 
5170
 
 
5171
+/* Nonzero if NODE is a FUNCTION_DECL generated by implicitly_declare_fn
 
5172
+   that we shouldn't actually declare implicitly; it is only used for
 
5173
+   comparing to an =default declaration.  */
 
5174
+#define FNDECL_SUPPRESS_IMPLICIT_DECL(NODE) \
 
5175
+  (LANG_DECL_FN_CHECK (DECL_COMMON_CHECK (NODE))->suppress_implicit_decl)
 
5176
+
 
5177
 /* Nonzero if DECL has been declared threadprivate by
 
5178
    #pragma omp threadprivate.  */
 
5179
 #define CP_DECL_THREADPRIVATE_P(DECL) \
1220
5180
Index: gcc/double-int.c
1221
5181
===================================================================
1222
5182
--- a/src/gcc/double-int.c      (revision
1719
5679
          gnu_call = build_component_ref (gnu_call, NULL_TREE,
1720
5680
                                          TREE_PURPOSE (gnu_elmt), false);
1721
5681
          gnu_result_type = TREE_TYPE (gnu_call);
 
5682
Index: gcc/ada/ChangeLog-2011
 
5683
===================================================================
 
5684
--- a/src/gcc/ada/ChangeLog-2011        (revision
 
5685
+++ b/src/gcc/ada/ChangeLog-2011        (revision
 
5686
@@ -15259,3195 +15259,3 @@
 
5687
 Copying and distribution of this file, with or without modification,
 
5688
 are permitted in any medium without royalty provided the copyright
 
5689
 notice and this notice are preserved.
 
5690
-
 
5691
-       * gnat_rm.texi: Ramification of pragma Eliminate documentation
 
5692
-        - fix bugs in the description of Source_Trace;
 
5693
-        - get rid of UNIT_NAME;
 
5694
-
 
5695
-2011-08-02  Javier Miranda  <miranda@adacore.com>
 
5696
-
 
5697
-       * exp_ch9.adb
 
5698
-       (Build_Dispatching_Requeue): Adding support for VM targets
 
5699
-       since we cannot directly reference the Tag entity.
 
5700
-       * exp_sel.adb (Build_K): Adding support for VM targets.
 
5701
-       (Build_S_Assignment): Adding support for VM targets.
 
5702
-       * exp_disp.adb
 
5703
-       (Default_Prim_Op_Position): In VM targets do not restrict availability
 
5704
-       of predefined interface primitives to compiling in Ada 2005 mode.
 
5705
-       (Is_Predefined_Interface_Primitive): In VM targets this service is not
 
5706
-       restricted to compiling in Ada 2005 mode.
 
5707
-       (Make_VM_TSD): Generate code that declares and initializes the OSD
 
5708
-       record. Needed to support dispatching calls through synchronized
 
5709
-       interfaces.
 
5710
-       * exp_ch3.adb
 
5711
-       (Make_Predefined_Primitive_Specs): Enable generation of predefined
 
5712
-       primitives associated with synchronized interfaces.
 
5713
-       (Make_Predefined_Primitive_Bodies): Enable generation of predefined
 
5714
-       primitives associated with synchronized interfaces.
 
5715
-
 
5716
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
5717
-
 
5718
-       * par-ch11.adb (P_Handled_Sequence_Of_Statements): mark a sequence of
 
5719
-       statements hidden in SPARK if preceded by the HIDE directive
 
5720
-       (Parse_Exception_Handlers): mark each exception handler in a sequence of
 
5721
-       exception handlers as hidden in SPARK if preceded by the HIDE directive
 
5722
-       * par-ch6.adb (P_Subprogram): mark a subprogram body hidden in SPARK
 
5723
-       if starting with the HIDE directive
 
5724
-       * par-ch7.adb (P_Package): mark a package body hidden in SPARK if
 
5725
-       starting with the HIDE directive; mark the declarations in a private
 
5726
-       part as hidden in SPARK if the private part starts with the HIDE
 
5727
-       directive
 
5728
-       * restrict.adb, restrict.ads
 
5729
-       (Set_Hidden_Part_In_SPARK): record a range of slocs as hidden in SPARK
 
5730
-       (Is_In_Hidden_Part_In_SPARK): new function which returns whether its
 
5731
-       argument node belongs to a part which is hidden in SPARK
 
5732
-       (Check_SPARK_Restriction): do not issue violations on nodes in hidden
 
5733
-       parts in SPARK; protect the possibly costly call to
 
5734
-       Is_In_Hidden_Part_In_SPARK by a check that the SPARK restriction is on
 
5735
-       * scans.ads (Token_Type): new value Tok_SPARK_Hide in enumeration
 
5736
-       * scng.adb (Accumulate_Token_Checksum_GNAT_6_3,
 
5737
-       Accumulate_Token_Checksum_GNAT_5_03): add case for new token
 
5738
-       Tok_SPARK_Hide.
 
5739
-       (Scan): recognize special comment starting with '#' and followed by
 
5740
-       SPARK keyword "hide" as a HIDE directive.
 
5741
-
 
5742
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
5743
-
 
5744
-       * types.ads, erroutc.ads: Minor reformatting.
 
5745
-
 
5746
-2011-08-02  Vincent Celier  <celier@adacore.com>
 
5747
-
 
5748
-       * link.c: Add response file support for cross platforms.
 
5749
-
 
5750
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
5751
-
 
5752
-       * sem_aggr.adb (Resolve_Array_Aggregate): when copying the expression
 
5753
-       in an association, set parent field of copy before partial analysis.
 
5754
-       * sem_res.adb (Resolve_Slice): create reference to itype only when
 
5755
-       expansion is enabled.
 
5756
-
 
5757
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
5758
-
 
5759
-       * einfo.adb, einfo.ads (Body_Is_In_ALFA, Set_Body_Is_In_ALFA): get/set
 
5760
-       for new flag denoting which subprogram bodies are in ALFA
 
5761
-       * restrict.adb, sem_ch7.adb: Update comment
 
5762
-       * sem_ch11.adb, sem_ch2.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb,
 
5763
-       sem_ch9.adb, sem_res.adb: Add calls to
 
5764
-       Current_Subprogram_Body_Is_Not_In_ALFA on unsupported constructs.
 
5765
-       * sem_ch6.adb (Analyze_Function_Return): add calls to
 
5766
-       Current_Subprogram_Body_Is_Not_In_ALFA on return statement in the
 
5767
-       middle of the body, and extended return.
 
5768
-       (Check_Missing_Return): add calls to Set_Body_Is_In_ALFA with argument
 
5769
-       False when missing return.
 
5770
-       (Analyze_Subprogram_Body_Helper): initialize the flag Body_Is_In_ALFA
 
5771
-       to True for subprograms whose spec is in ALFA. Remove later on the flag
 
5772
-       on the entity used for a subprogram body when there exists a separate
 
5773
-       declaration.
 
5774
-       * sem_util.adb, sem_util.ads (Current_Subprogram_Body_Is_Not_In_ALFA):
 
5775
-       if Current_Subprogram is not Empty, set its flag Body_Is_In_ALFA to
 
5776
-       False, otherwise do nothing.
 
5777
-
 
5778
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
5779
-
 
5780
-       * inline.adb, stand.ads, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
 
5781
-
 
5782
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
5783
-
 
5784
-       * sem_ch4.ads: minor formatting.
 
5785
-
 
5786
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
5787
-
 
5788
-       * sem_aggr.adb, err_vars.ads, sem_ch3.adb, sem_ch5.adb, sem_ch9.adb,
 
5789
-       debug.adb, sem_util.adb, sem_res.adb, sem_attr.adb, gnat1drv.adb,
 
5790
-       errout.adb, errout.ads, exp_ch6.adb, sem_ch4.adb, restrict.adb,
 
5791
-       restrict.ads, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb,
 
5792
-       opt.ads: cleanup of SPARK mode
 
5793
-
 
5794
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
5795
-
 
5796
-       * cstand.adb (Create_Standard): sets Is_In_ALFA component of standard
 
5797
-       types.
 
5798
-       * einfo.adb, einfo.ads (Is_In_ALFA): add flag for all entities
 
5799
-       (Is_In_ALFA, Set_Is_In_ALFA): new subprograms to access flag Is_In_ALFA
 
5800
-       * sem_ch3.adb
 
5801
-       (Analyze_Object_Declaration): set Is_In_ALFA flag for objects
 
5802
-       (Constrain_Enumeration): set Is_In_ALFA flag for enumeration subtypes
 
5803
-       (Constrain_Integer): set Is_In_ALFA flag for integer subtypes
 
5804
-       (Enumeration_Type_Declaration): set Is_In_ALFA flag for enumeration
 
5805
-       types.
 
5806
-       (Set_Scalar_Range_For_Subtype): unset Is_In_ALFA flag for subtypes with
 
5807
-       non-static range.
 
5808
-       * sem_ch6.adb (Analyze_Return_Type): unset Is_In_ALFA flag for
 
5809
-       functions whose return type is not in ALFA.
 
5810
-       (Analyze_Subprogram_Specification): set Is_In_ALFA flag for subprogram
 
5811
-       specifications.
 
5812
-       (Process_Formals): unset Is_In_ALFA flag for subprograms if a
 
5813
-       parameter's type is not in ALFA.
 
5814
-       * stand.ads (Standard_Type_Is_In_ALFA): array defines which standard
 
5815
-       types are in ALFA.
 
5816
-
 
5817
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
5818
-
 
5819
-       * sem_ch6 (Analyze_Expression_Function): treat the function as
 
5820
-       Inline_Always, and introduce a subprogram declaration for it when it is
 
5821
-       not a completion.
 
5822
-       * inline.adb (Add_Inlined_Body): recognize bodies that come from
 
5823
-       expression functions, so that the back-end can determine whether they
 
5824
-       can in fact be inlined.
 
5825
-       * sem_util.adb (Is_Expression_Function): predicate to determine whether
 
5826
-       a function body comes from an expression function.
 
5827
-
 
5828
-2011-08-02  Gary Dismukes  <dismukes@adacore.com>
 
5829
-
 
5830
-       * sem_ch6.adb (Check_Conformance): Revise the check for nonconforming
 
5831
-       null exclusions to test Can_Never_Be_Null on the anonymous access types
 
5832
-       of the formals rather than testing the formals themselves. Exclude this
 
5833
-       check in cases where the Old_Formal is marked as a controlling formal,
 
5834
-       to avoid issuing spurious errors for bodies completing dispatching
 
5835
-       operations (due to the flag not getting set on controlling access
 
5836
-       formals in body specs).
 
5837
-       (Find_Corresponding_Spec): When checking full and subtype conformance of
 
5838
-       subprogram bodies in instances, pass Designated and E in that order, for
 
5839
-       consistency with the expected order of the formals (New_Id followed by
 
5840
-       Old_Id).
 
5841
-
 
5842
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
5843
-
 
5844
-       * sem_ch8.adb: Minor reformatting.
 
5845
-
 
5846
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
5847
-
 
5848
-       * sem_ch8.adb (Analyze_Subprogram_Renaming): new procedure
 
5849
-       Check_Class_Wide_Actual, to implement AI05-0071, on defaulted
 
5850
-       primitive operations of class-wide actuals.
 
5851
-
 
5852
-2011-08-02  Javier Miranda  <miranda@adacore.com>
 
5853
-
 
5854
-       * exp_atag.ads, exp_atag.adb
 
5855
-       (Build_Common_Dispatching_Select_Statements): Remove argument Loc
 
5856
-       since its value is implicitly passed in argument Typ.
 
5857
-       * exp_disp.adb (Make_Disp_Conditional_Select_Body,
 
5858
-       Make_Disp_Timed_Select_Body): Remove Loc in calls to routine
 
5859
-       Build_Common_Dispatching_Select_Statements.
 
5860
-
 
5861
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
5862
-
 
5863
-       * sem_ch3.adb, exp_atag.ads, get_scos.adb, get_scos.ads,
 
5864
-       exp_disp.adb, lib-xref.adb, lib-xref.ads: Update comments.
 
5865
-       Minor reformatting.
 
5866
-
 
5867
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
5868
-
 
5869
-       * sem_res.adb: Minor reformatting.
 
5870
-       * sem_prag.adb: Minor reformatting.
 
5871
-
 
5872
-2011-08-02  Javier Miranda  <miranda@adacore.com>
 
5873
-
 
5874
-       * exp_atag.adb, exp_atags.ads
 
5875
-       (Build_Common_Dispatching_Select_Statement): Replace argument DT_Ptr
 
5876
-       by the tagged type Entity. Required to use this routine in the VM
 
5877
-       targets since we do not have available the Tag entity in the VM
 
5878
-       platforms.
 
5879
-       * exp_ch6.adb
 
5880
-       (Expand_N_Subprogram_Body): Do not invoke Build_VM_TSDs if package
 
5881
-       Ada.Tags has not been previously loaded.
 
5882
-       * exp_ch7.adb
 
5883
-       (Expand_N_Package_Declaration, Expand_N_Package_Body): Do not invoke
 
5884
-       Build_VM_TSDs if package Ada.Tags has not been previously loaded.
 
5885
-       * sem_aux.adb
 
5886
-       (Enclosing_Dynamic_Scope): Add missing support to handle the full
 
5887
-       view of enclosing scopes. Required to handle enclosing scopes that
 
5888
-       are synchronized types whose full view is a task type.
 
5889
-       * exp_disp.adb
 
5890
-       (Build_VM_TSDs): Minor code improvement to avoid generating and
 
5891
-       analyzing lists with empty nodes.
 
5892
-       (Make_Disp_Asynchronous_Select_Body): Add support for VM targets.
 
5893
-       (Make_Disp_Conditional_Select_Body): Add support for VM targets.
 
5894
-       (Make_Disp_Get_Prim_Op_Kind): Add support for VM targets.
 
5895
-       (Make_Disp_Timed_Select_Body): Add support for VM targets.
 
5896
-       (Make_Select_Specific_Data_Table): Add support for VM targets.
 
5897
-       (Make_VM_TSD): Generate code to initialize the SSD structure of
 
5898
-       the TSD.
 
5899
-
 
5900
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
5901
-
 
5902
-       * lib-writ.adb (Write_ALI): when ALFA mode is set, write local
 
5903
-       cross-references section in ALI.
 
5904
-       * lib-xref.adb, lib-xref.ads (Xref_Entry): add components Sub
 
5905
-       (enclosing subprogram), Slc (location of Sub) and Sun (unit number of
 
5906
-       Sub).
 
5907
-       (Enclosing_Subprogram_Or_Package): new function to return the enclosing
 
5908
-       subprogram or package entity of a node
 
5909
-       (Is_Local_Reference_Type): new function returns True for references
 
5910
-       selected in local cross-references.
 
5911
-       (Lt): function extracted from Lt in Output_References
 
5912
-       (Write_Entity_Name): function extracted from Output_References
 
5913
-       (Generate_Definition): generate reference with type 'D' for definition
 
5914
-       of objects (object declaration and parameter specification), with
 
5915
-       appropriate locations and units, for use in local cross-references.
 
5916
-       (Generate_Reference): update fields Sub, Slc and Sun. Keep newly created
 
5917
-       references of type 'I' for initialization in object definition.
 
5918
-       (Output_References): move part of function Lt and procedure
 
5919
-       Write_Entity_Name outside of the body. Ignore references of types 'D'
 
5920
-       and 'I' introduced for local cross-references.
 
5921
-       (Output_Local_References): new procedure to output the local
 
5922
-       cross-references sections.
 
5923
-       (Lref_Entity_Status): new array defining whether an entity is a local
 
5924
-       * sem_ch3.adb (Analyze_Object_Declaration): call Generate_Reference
 
5925
-       with 'I' type when initialization expression is present.
 
5926
-       * get_scos.adb, get_scos.ads: Correct comments and typos
 
5927
-
 
5928
-2011-08-02  Javier Miranda  <miranda@adacore.com>
 
5929
-
 
5930
-       * exp_ch6.adb (Expand_N_Subprogram_Body): Enable generation of TSDs in
 
5931
-       the JVM target.
 
5932
-       * exp_ch7.adb (Expand_N_Package_Body): Enable generation of TSDs in
 
5933
-       the JVM target.
 
5934
-       * exp_disp.adb (Build_VM_TSDs): No action needed if the runtime has no
 
5935
-       TSD support.
 
5936
-
 
5937
-2011-08-02  Vincent Celier  <celier@adacore.com>
 
5938
-
 
5939
-       * prj-nmsc.adb (File_Found): New components Excl_File and Excl_Line
 
5940
-       (No_Space_Img): New function
 
5941
-       (Find_Excluded_Sources): When reading from a file, record the file name
 
5942
-       and the line number for each excluded source.
 
5943
-       (Mark_Excluded_Sources): When reporting an error, if the excluded
 
5944
-       sources were read from a file, include file name and line number in
 
5945
-       the error message.
 
5946
-
 
5947
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
5948
-
 
5949
-       * sem_res.adb (Resolve_Call): implement rule in RM 12.5.1 (23.3/2).
 
5950
-
 
5951
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
5952
-
 
5953
-       * exp_ch7.adb exp_ch6.adb, exp_disp.adb: Minor reformatting
 
5954
-
 
5955
-2011-08-02  Javier Miranda  <miranda@adacore.com>
 
5956
-
 
5957
-       * exp_ch6.adb (Expand_N_Subprogram_Body): Temporarily restrict the
 
5958
-       generation of TSDs to the DOTNET compiler.
 
5959
-       * exp_ch7.adb (Expand_N_Package_Body): Temporarily restrict the
 
5960
-       generation of TSDs to the DOTNET compiler.
 
5961
-
 
5962
-2011-08-02  Javier Miranda  <miranda@adacore.com>
 
5963
-
 
5964
-       * exp_disp.ads (Build_VM_TSDs): Build the runtime Type Specific Data
 
5965
-       record of all the tagged types declared inside library level package
 
5966
-       declarations, library level package bodies or library level subprograms.
 
5967
-       * exp_disp.adb (Make_VM_TSD): New subprogram that builds the TSD
 
5968
-       associated with a given tagged type.
 
5969
-       (Build_VM_TSDs): New subprogram.
 
5970
-       * exp_ch6.adb (Expand_N_Subprogram_Body): Generate TSDs records of main
 
5971
-       compilation units that are subprograms.
 
5972
-       * exp_ch7.adb (Expand_N_Package_Body): Generate TSDs of main
 
5973
-       compilation units that are package bodies.
 
5974
-       (Expand_N_Package_Declaration): Generate TSDs of the main compilation
 
5975
-       units that are a package declaration or a package instantiation.
 
5976
-       * exp_intr.adb (Expand_Dispatching_Constructor_Call): Minor code
 
5977
-       reorganization to improve the error generated by the frontend when the
 
5978
-       function Ada.Tags.Secondary_Tag is not available.
 
5979
-       * rtsfind.ads (RE_Register_TSD): New runtime entity.
 
5980
-       * exp_ch4.adb (Expand_N_Type_Conversion): Minor code cleanup.
 
5981
-
 
5982
-2011-08-02  Javier Miranda  <miranda@adacore.com>
 
5983
-
 
5984
-       * exp_disp.adb (Make_DT): Generate call to Check_TSD in Ada 2005 mode.
 
5985
-
 
5986
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
5987
-
 
5988
-       * s-imenne.ads: Minor reformatting.
 
5989
-
 
5990
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
5991
-
 
5992
-       * a-stunau.ads: Add pragma Suppress_Initialization for Big_String
 
5993
-       * freeze.adb (Warn_Overlay): Don't warn if initialization suppressed
 
5994
-       * s-stalib.ads: Add pragma Suppress_Initialization for Big_String
 
5995
-
 
5996
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
5997
-
 
5998
-       * einfo.ads (Materialize_Entity): Document this is only for renamings
 
5999
-       * exp_ch3.adb (Expand_N_Object_Declaration): Make sure we generate
 
6000
-       required debug information in the case where we transform the object
 
6001
-       declaration into a renaming declaration.
 
6002
-       * exp_ch4.adb (Expand_Concatenate): Generate debug info for result
 
6003
-       object
 
6004
-       * exp_dbug.ads (Debug_Renaming_Declaration): Document setting of
 
6005
-       Materialize_Entity.
 
6006
-
 
6007
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6008
-
 
6009
-       * einfo.ads, einfo.adb (Suppress_Initialization): Replaces
 
6010
-       Suppress_Init_Procs.
 
6011
-       * exp_ch3.adb, exp_disp.adb, freeze.adb: Use
 
6012
-       Suppress_Initialization/Initialization_Suppressed.
 
6013
-       * gnat_rm.texi: New documentation for pragma Suppress_Initialization
 
6014
-       * sem_aux.ads, sem_aux.adb (Initialization_Suppressed): New function
 
6015
-       * sem_dist.adb: Use Suppress_Initialization/Initialization_Suppressed
 
6016
-       * sem_prag.adb: New processing for pragma Suppress_Initialization.
 
6017
-
 
6018
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6019
-
 
6020
-       * gnat_rm.texi, a-tags.ads, sem_prag.adb, sem_ch12.adb, exp_disp.adb:
 
6021
-       Minor reformatting.
 
6022
-
 
6023
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
6024
-
 
6025
-       * sem_prag.adb (Chain_PPC): Implement AI04-0230: null procedures can
 
6026
-       only have inheritable classwide pre/postconditions.
 
6027
-
 
6028
-2011-08-02  Javier Miranda  <miranda@adacore.com>
 
6029
-
 
6030
-       * a-tags.ads, a-tags.adb (Check_TSD): New subprogram.
 
6031
-       * rtsfind.ads (RE_Check_TSD): New runtime entity.
 
6032
-       * exp_disp.adb (Make_DT): Generate call to the new runtime routine that
 
6033
-       checks if the external tag of a type is the same as the external tag
 
6034
-       of some other declaration.
 
6035
-
 
6036
-2011-08-02  Thomas Quinot  <quinot@adacore.com>
 
6037
-
 
6038
-       * s-taskin.ads: Minor reformatting.
 
6039
-
 
6040
-2011-08-02  Emmanuel Briot  <briot@adacore.com>
 
6041
-
 
6042
-       * g-comlin.adb (Display_Help): swap the order in which it prints the
 
6043
-       short help and the general usage.
 
6044
-
 
6045
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
6046
-
 
6047
-       * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): copy properly
 
6048
-       the aspect declarations and attach them to the generic copy for
 
6049
-       subsequent analysis.
 
6050
-       (Analyze_Subprogram_Instantiation): copy explicitly the aspect
 
6051
-       declarations of the generic tree to the new subprogram declarations.
 
6052
-       * sem_attr.adb (Check_Precondition_Postcondition): recognize
 
6053
-       conditions that apply to a subprogram instance.
 
6054
-
 
6055
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6056
-
 
6057
-       * gnat_rm.texi: Clarify doc on pragma Source_File_Name[_Project].
 
6058
-
 
6059
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
6060
-
 
6061
-       * sem_ch3.adb (Derived_Type_Declaration): When checking that a untagged
 
6062
-       private type with a tagged full view is not derived in the immediate
 
6063
-       scope of the partial view, (RM 7.3 (7)) use the scope of the base type.
 
6064
-
 
6065
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6066
-
 
6067
-       * exp_ch4.adb: Minor reformatting.
 
6068
-
 
6069
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
6070
-
 
6071
-       * sem_ch5.adb (Analyze_Loop_Statement):  If the iteration scheme is an
 
6072
-       Ada2012 iterator, the loop will be rewritten during expansion into a
 
6073
-       while loop with a cursor and an element declaration. Do not analyze the
 
6074
-       body in this case, because if the container is for indefinite types the
 
6075
-       actual subtype of the elements will only be determined when the cursor
 
6076
-       declaration is analyzed.
 
6077
-
 
6078
-2011-08-02  Arnaud Charlet  <charlet@adacore.com>
 
6079
-
 
6080
-       * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Ignore
 
6081
-       size/alignment related attributes in CodePeer_Mode.
 
6082
-
 
6083
-2011-08-02  Gary Dismukes  <dismukes@adacore.com>
 
6084
-
 
6085
-       * sem_ch3.adb (Check_Ops_From_Incomplete_Type): Remove call to
 
6086
-       Prepend_Element, since this can result in the operation getting the
 
6087
-       wrong slot in the full type's dispatch table if the full type has
 
6088
-       inherited operations. The incomplete type's operation will get added
 
6089
-       to the proper position in the full type's primitives
 
6090
-       list later in Sem_Disp.Check_Operation_From_Incomplete_Type.
 
6091
-       (Process_Incomplete_Dependents): Add Is_Primitive test when checking for
 
6092
-       dispatching operations, since there are cases where nonprimitive
 
6093
-       subprograms can get added to the list of incomplete dependents (such
 
6094
-       as subprograms in nested packages).
 
6095
-       * sem_ch6.adb (Process_Formals): First, remove test for being in a
 
6096
-       private part when determining whether to add a primitive with a
 
6097
-       parameter of a tagged incomplete type to the Private_Dependents list.
 
6098
-       Such primitives can also occur in the visible part, and should not have
 
6099
-       been excluded from being private dependents.
 
6100
-       * sem_ch7.adb (Uninstall_Declarations): When checking the rule of
 
6101
-       RM05-3.10.1(9.3/2), test that a subprogram in the Private_Dependents
 
6102
-       list of a Taft-amendment incomplete type is a primitive before issuing
 
6103
-       an error that the full type must appear in the same unit. There are
 
6104
-       cases where nonprimitives can be in the list (such as subprograms in
 
6105
-       nested packages).
 
6106
-       * sem_disp.adb (Derives_From): Use correct condition for checking that
 
6107
-       a formal's type is derived from the type of the corresponding formal in
 
6108
-       the parent subprogram (the condition was completely wrong). Add
 
6109
-       checking that was missing for controlling result types being derived
 
6110
-       from the result type of the parent operation.
 
6111
-
 
6112
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
6113
-
 
6114
-       * errout.adb (First_Node): minor renaming
 
6115
-       * restrict.adb (Check_Formal_Restriction): put restriction warning on
 
6116
-       first node.
 
6117
-
 
6118
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
6119
-
 
6120
-       * sem_res.adb (Resolve_Logical_Op): ensure N is a binary operator
 
6121
-       before accessing operands.
 
6122
-       * sem_util.adb (Is_SPARK_Initialization_Expr): follow original nodes to
 
6123
-       decide whether an initialization expression respects SPARK rules, as
 
6124
-       the plain node is the expanded one. This allows for more valid warnings
 
6125
-       to be issued.
 
6126
-       * gnat_rm.texi: Minor update.
 
6127
-
 
6128
-2011-08-02  Arnaud Charlet  <charlet@adacore.com>
 
6129
-
 
6130
-       * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Revert
 
6131
-       previous change.
 
6132
-
 
6133
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6134
-
 
6135
-       * sem_ch3.adb, sem_ch4.adb: Minor reformatting.
 
6136
-
 
6137
-2011-08-02  Hristian Kirtchev  <kirtchev@adacore.com>
 
6138
-
 
6139
-       * exp_ch5.adb (Expand_Iterator_Loop): Reformatting. Wrap the original
 
6140
-       loop statements and the element renaming declaration with a block when
 
6141
-       the element type is controlled.
 
6142
-
 
6143
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
6144
-
 
6145
-       * sinfo.ads: Minor formatting.
 
6146
-
 
6147
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
6148
-
 
6149
-       * sem_aggr.adb (Add_Association): if the association has a box and no
 
6150
-       expression, use the Sloc of the aggregate itself for the new
 
6151
-       association.
 
6152
-       * errout.adb (First_Node): Exclude nodes with no Sloc, and always use
 
6153
-       the Original_Node.
 
6154
-
 
6155
-2011-08-02  Hristian Kirtchev  <kirtchev@adacore.com>
 
6156
-
 
6157
-       * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and refactoring.
 
6158
-       When a container is provided via a function call, generate a renaming
 
6159
-       of the function result. This avoids the creation of a transient scope
 
6160
-       and the premature finalization of the container.
 
6161
-       * exp_ch7.adb (Is_Container_Cursor): Removed.
 
6162
-       (Wrap_Transient_Declaration): Remove the supression of the finalization
 
6163
-       of the list controller when the declaration denotes a container cursor,
 
6164
-       it is not needed.
 
6165
-
 
6166
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
6167
-
 
6168
-       * restrict.adb (Check_Formal_Restriction): only issue a warning if the
 
6169
-       node is from source, instead of the original node being from source.
 
6170
-       * sem_aggr.adb
 
6171
-       (Resolve_Array_Aggregate): refine the check for a static expression, to
 
6172
-       recognize also static ranges
 
6173
-       * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration,
 
6174
-       Array_Type_Declaration): postpone the test for the type being a subtype
 
6175
-       mark after the type has been resolved, so that component-selection and
 
6176
-       expanded-name are discriminated.
 
6177
-       (Make_Index, Process_Range_Expr_In_Decl): add a parameter In_Iter_Schm
 
6178
-       to distinguish the case of an iteration scheme, so that an error is
 
6179
-       issed on a non-static range in SPARK except in an iteration scheme.
 
6180
-       * sem_ch5.adb (Analyze_Iteration_Scheme): call Make_Index with
 
6181
-       In_Iter_Schm = True.
 
6182
-       * sem_ch6.adb (Analyze_Subprogram_Specification): refine the check for
 
6183
-       user-defined operators so that they are allowed in renaming
 
6184
-       * sem_ch8.adb
 
6185
-       (Find_Selected_Component): refine the check for prefixing of operators
 
6186
-       so that they are allowed in renaming. Move the checks for restrictions
 
6187
-       on selector name after analysis discriminated between
 
6188
-       component-selection and expanded-name.
 
6189
-       * sem_res.adb (Resolve_Op_Concat_Arg): do not issue a warning on
 
6190
-       concatenation argument of string type if it is static.
 
6191
-       * sem_util.adb, sem_util.ads
 
6192
-       (Check_Later_Vs_Basic_Declarations): add a new function
 
6193
-       Is_Later_Declarative_Item to decice which declarations are allowed as
 
6194
-       later items, in the two different modes Ada 83 and SPARK. In the SPARK
 
6195
-       mode, add that renamings are considered as later items.
 
6196
-       (Enclosing_Package): new function to return the enclosing package
 
6197
-       (Enter_Name): correct the rule for homonyms in SPARK
 
6198
-       (Is_SPARK_Initialization_Expr): default to returning True on nodes not
 
6199
-       from source (result of expansion) to avoid issuing wrong warnings.
 
6200
-
 
6201
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
6202
-
 
6203
-       * errout.adb: On anything but an expression First_Node returns its
 
6204
-       argument.
 
6205
-
 
6206
-2011-08-02  Pascal Obry  <obry@adacore.com>
 
6207
-
 
6208
-       * prj-proc.adb, make.adb, makeutl.adb: Minor reformatting.
 
6209
-
 
6210
-2011-08-02  Hristian Kirtchev  <kirtchev@adacore.com>
 
6211
-
 
6212
-       * exp_ch5.adb (Expand_Iterator_Loop): Code cleanup and reorganization.
 
6213
-       Set the associated loop as the related expression of internally
 
6214
-       generated cursors.
 
6215
-       * exp_ch7.adb (Is_Container_Cursor): New routine.
 
6216
-       (Wrap_Transient_Declaration): Supress the finalization of the list
 
6217
-       controller when the declaration denotes a container cursor.
 
6218
-
 
6219
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
6220
-
 
6221
-       * opt.ads (SPARK_Mode): update comment, SPARK_Mode only set through
 
6222
-       command line now.
 
6223
-       * par-ch3.adb (P_Delta_Constraint): remove check in SPARK mode that the
 
6224
-       expression is a simple expression. This check cannot be performed in
 
6225
-       the semantics, so just drop it.
 
6226
-       (P_Index_Or_Discriminant_Constraint): move check that the index or
 
6227
-       discriminant is a subtype mark to Analyze_Subtype_Declaration in the
 
6228
-       semantics. Other cases were previously checked in the semantics.
 
6229
-       * par-ch4.adb (P_Name): move checks that a selector name is not
 
6230
-       character literal or an operator symbol to Find_Selected_Component in
 
6231
-       the semantics
 
6232
-       * par-ch5.adb (Parse_Decls_Begin_End): move check that basic
 
6233
-       declarations are not placed after later declarations in a separate
 
6234
-       procedure in Sem_Util (possibly not the best choice?), to be used both
 
6235
-       during parsing, for Ada 83 mode, and during semantic analysis, for
 
6236
-       SPARK mode.
 
6237
-       * par-endh.adb (Check_End): move check that end label is not missing
 
6238
-       to Process_End_Label in the semantics
 
6239
-       * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): remove
 
6240
-       the special case for SPARK restriction
 
6241
-       * par.adb: use and with Sem_Util, for use in Parse_Decls_Begin_End
 
6242
-       * restrict.adb, restrict.ads (Check_Formal_Restriction): add a
 
6243
-       parameter Force to issue the error message even on internal node (used
 
6244
-       for generated end label). Call Check_Restriction to check when an error
 
6245
-       must be issued. In SPARK mode, issue an error message even if the
 
6246
-       restriction is not set.
 
6247
-       (Check_Restriction): new procedure with an additional out parameter to
 
6248
-       inform the caller that a message has been issued
 
6249
-       * sem_aggr.adb: Minor modification of message
 
6250
-       * sem_attr.adb (Analyze_Attribute): call Check_Formal_Restriction
 
6251
-       instead of issuing an error message directly
 
6252
-       * sem_ch3.adb (Analyze_Declarations): move here the check that basic
 
6253
-       declarations are not placed after later declarations, by calling
 
6254
-       Check_Later_Vs_Basic_Declarations
 
6255
-       (Analyze_Subtype_Declaration): move here the check that an index or
 
6256
-       discriminant constraint must be a subtype mark. Change the check that
 
6257
-       a subtype of String must start at one so that it works on subtype marks.
 
6258
-       * sem_ch4.adb (Analyze_Call): move here the check that a named
 
6259
-       association cannot follow a positional one in a call
 
6260
-       * sem_ch5.adb (Check_Unreachable_Code): call Check_Formal_Restriction
 
6261
-       instead of issuing an error message directly
 
6262
-       * sem_ch8.adb (Find_Selected_Component): move here the check that a
 
6263
-       selector name is not a character literal or an operator symbol. Move
 
6264
-       here the check that the prefix of an expanded name cannot be a
 
6265
-       subprogram or a loop statement.
 
6266
-       * sem_util.adb, sem_util.ads (Check_Later_Vs_Basic_Declarations): new
 
6267
-       procedure called from parsing and semantics to check that basic
 
6268
-       declarations are not placed after later declarations
 
6269
-       (Process_End_Label): move here the check that end label is not missing
 
6270
-
 
6271
-2011-08-02  Arnaud Charlet  <charlet@adacore.com>
 
6272
-
 
6273
-       * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Ignore enum
 
6274
-       representation clause in codepeer mode, since it confuses CodePeer and
 
6275
-       does not bring useful info.
 
6276
-
 
6277
-2011-08-02  Ed Falis  <falis@adacore.com>
 
6278
-
 
6279
-       * init.c: initialize fp hw on MILS.
 
6280
-
 
6281
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
6282
-
 
6283
-       * errout.adb (First_Node): for bodies, return the node itself (small
 
6284
-       optimization). For other nodes, do not check source_unit if the node
 
6285
-       comes from Standard.
 
6286
-
 
6287
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6288
-
 
6289
-       * exp_ch3.adb: Minor comment additions.
 
6290
-       * sem_ch13.adb: Minor reformatting.
 
6291
-
 
6292
-2011-08-02  Pascal Obry  <obry@adacore.com>
 
6293
-
 
6294
-       * make.adb, makeutl.adb: Removes some superfluous directory separator.
 
6295
-
 
6296
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6297
-
 
6298
-       * sem_attr.adb: Minor reformatting.
 
6299
-
 
6300
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6301
-
 
6302
-       * einfo.adb (Has_Default_Aspect): Replaces Has_Default_Value
 
6303
-       (Has_Default_Component_Value): Removed
 
6304
-       * einfo.ads Comment updates
 
6305
-       (Has_Default_Aspect): Replaces Has_Default_Value
 
6306
-       (Has_Default_Component_Value): Removed
 
6307
-       * exp_ch13.adb
 
6308
-       (Expand_N_Freeze_Entity): Handle Default[_Component]_Value aspects
 
6309
-       * exp_ch3.adb
 
6310
-       (Build_Array_Init_Proc): Handle Default_[Component_]Value aspects
 
6311
-       (Get_Simple_Init_Val): Handle Default_Value aspect
 
6312
-       (Needs_Simple_Initialization): Handle Default_Value aspect
 
6313
-       * exp_ch3.ads: Needs_Simple_Initialization
 
6314
-       * freeze.adb (Freeze_Entity): Handle Default_[Component_]Value aspect
 
6315
-       * par-prag.adb (Pragma_Default[_Component]Value) Removed
 
6316
-       * sem_ch13.adb
 
6317
-       (Analyze_Aspect_Specifications): Fix Default[_Component]_Value aspects
 
6318
-       * sem_prag.adb (Pragma_Default[_Component]Value) Removed
 
6319
-       * snames.ads-tmpl (Pragma_Default[_Component]Value) Removed
 
6320
-
 
6321
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
6322
-
 
6323
-       * sem_ch5.adb (Analyze_Iterator_Specification): use base type to locate
 
6324
-       package containing iteration primitives.
 
6325
-       exp_ch5.adb (Expand_Iterator_Loop): ditto.
 
6326
-
 
6327
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
6328
-
 
6329
-       * sem_ch5.adb (Analyze_Iteration_Scheme): For an Ada2012 iterator with
 
6330
-       "of", pre-analyze expression in case it is a function call with
 
6331
-       finalization actions that must be placed ahead of the loop.
 
6332
-       * exp_ch5.adb (Expand_Iterator_Loop): If condition_actions are present
 
6333
-       on an Ada2012 iterator, insert them ahead of the rewritten loop.
 
6334
-
 
6335
-2011-08-02  Geert Bosch  <bosch@adacore.com>
 
6336
-
 
6337
-       * cstand.adb (Create_Float_Types): Only consider C's long double for
 
6338
-       Long_Long_Float, in addition to double.
 
6339
-
 
6340
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6341
-
 
6342
-       * sem_ch3.adb, sem_ch5.adb, sem_type.adb, switch-c.adb, switch-c.ads,
 
6343
-       sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, warnsw.ads,
 
6344
-       prepcomp.ads, cstand.adb, stand.ads, a-calfor.adb, s-stusta.adb:
 
6345
-       Minor reformatting.
 
6346
-
 
6347
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
6348
-
 
6349
-       * sem_attr.adb: handle properly 'Result when it is a prefix of an
 
6350
-       indexed component.
 
6351
-
 
6352
-2011-08-02  Javier Miranda  <miranda@adacore.com>
 
6353
-
 
6354
-       * einfo.ads, einfo.adb
 
6355
-       (Original_Access_Type): Move this attribute to Node26 since there was
 
6356
-       an undocumented use of Node21 in E_Access_Subprogram_Type entities
 
6357
-       which causes conflicts and breaks the generation of the .NET compiler.
 
6358
-       (Interface_Name): Add missing documentation on JGNAT only uses of
 
6359
-       this attribute.
 
6360
-
 
6361
-2011-08-02  Geert Bosch  <bosch@adacore.com>
 
6362
-
 
6363
-       * cstand.adb (Back_End_Float_Types): Use Elist instead of Nlist
 
6364
-       (Find_Back_End_Float_Type): Likewise
 
6365
-       (Create_Back_End_Float_Types): Likewise
 
6366
-       (Create_Float_Types): Likewise
 
6367
-       (Register_Float_Type): Likewise
 
6368
-       * sem_ch3.adb (Floating_Point_Type_Declaration): Use Elist instead of
 
6369
-       Nlist and split out type selection in new local Find_Base_Type function.
 
6370
-       * sem_prag.adb (Process_Import_Predefined_Type): Use Elist instead of
 
6371
-       Nlist
 
6372
-       * stand.ads (Predefined_Float_Types): Use Elist instead of Nlist
 
6373
-
 
6374
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6375
-
 
6376
-       * inline.adb: Minor code reorganization (put Get_Code_Unit_Entity in
 
6377
-       alpha order).
 
6378
-       * opt.ads: Minor comment change.
 
6379
-       * sem_ch12.adb: Minor code reorganization.
 
6380
-
 
6381
-2011-08-02  Gary Dismukes  <dismukes@adacore.com>
 
6382
-
 
6383
-       * sem_ch3.adb (Complete_Private_Subtype): Don't append the private
 
6384
-       subtype's list of rep items to the list on the full subtype in the case
 
6385
-       where the lists are the same.
 
6386
-
 
6387
-2011-08-02  Geert Bosch  <bosch@adacore.com>
 
6388
-
 
6389
-       * switch-c.adb (Free): New deallocation procedure to avoid implicitly
 
6390
-       using the one from System.Strings, which also deallocates all strings.
 
6391
-
 
6392
-2011-08-02  Geert Bosch  <bosch@adacore.com>
 
6393
-
 
6394
-       * gcc-interface/gigi.h, gcc-interface/misc.c (enumerate_modes): New
 
6395
-       function.
 
6396
-       * gcc-interface/Make-lang.in: Update dependencies.
 
6397
-
 
6398
-2011-08-02  Olivier Hainque  <hainque@adacore.com>
 
6399
-
 
6400
-       * gcc-interface/trans.c (Subprogram_Body_to_gnu): Set the function
 
6401
-       end_locus.
 
6402
-
 
6403
-2011-08-02  Javier Miranda  <miranda@adacore.com>
 
6404
-
 
6405
-       * sem_ch3.adb (Check_Anonymous_Access_Components): Create extra formals
 
6406
-       associated with anonymous access to subprograms.
 
6407
-
 
6408
-2011-08-02  Geert Bosch  <bosch@adacore.com>
 
6409
-
 
6410
-       * opt.ads
 
6411
-       (Preprocessing_Symbol_Defs): Move from Prepcomp.Symbol_Definitions.
 
6412
-       (Preprocessing_Symbol_Last): Move from Prepcomp.Last_Definition.
 
6413
-       * prepcomp.adb (Symbol_Definitions, Last_Definition): Move to opt.ads
 
6414
-       (Add_Symbol_Definition): Move to switch-c.adb
 
6415
-       (Process_Command_Line_Symbol_Definitions): Adjust references to above.
 
6416
-       * prepcomp.ads: Remove dependency on Ada.Unchecked_Deallocation.
 
6417
-       (Add_Symbol_Definition): Move to switch-c.adb.
 
6418
-       * sem_ch13.adb, sem_prag.adb: Add dependency on Warnsw.
 
6419
-       * sem_warn.adb
 
6420
-       (Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
 
6421
-       Move to warnsw.adb.
 
6422
-       * sem_warn.ads (Warn_On_Record_Holes, Warn_On_Overridden_Size,
 
6423
-       Set_Dot_Warning_Switch, Set_GNAT_Mode_Warnings, Set_Warning_Switch):
 
6424
-       Move to warnsw.adb.
 
6425
-       * switch-c.adb: Replace dependency on Prepcomp and Sem_Warn by Warnsw.
 
6426
-       (Add_Symbol_Definition): Moved from Prepcomp.
 
6427
-       * switch-c.ads: Update copyright notice. Use String_List instead of
 
6428
-       Argument_List, removing dependency on System.OS_Lib.
 
6429
-
 
6430
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
6431
-
 
6432
-       * sem_ch3.adb (Analyze_Object_Declaration): issue an error in formal
 
6433
-       mode on initialization expression which does not respect SPARK
 
6434
-       restrictions.
 
6435
-       * sem_util.adb, sem_util.ads (Is_SPARK_Initialization_Expr): determines
 
6436
-       if the tree referenced by its argument represents an initialization
 
6437
-       expression in SPARK, suitable for initializing an object in an object
 
6438
-       declaration.
 
6439
-
 
6440
-2011-08-02  Javier Miranda  <miranda@adacore.com>
 
6441
-
 
6442
-       * exp_ch9.adb (Expand_Access_Protected_Subprogram_Type): Link the
 
6443
-       internally generated access to subprogram with its associated protected
 
6444
-       subprogram type.
 
6445
-       * einfo.ads, einfo.adb (Original_Access_Type): New attribute.
 
6446
-
 
6447
-2011-08-02  Geert Bosch  <bosch@adacore.com>
 
6448
-
 
6449
-       * cstand.adb (Register_Float_Type): Print information about type to
 
6450
-       register, if the Debug_Flag_Dot_B is set.
 
6451
-       * debug.adb (Debug_Flag_Dot_B): Document d.b debug option.
 
6452
-       * rtsfind.ads (RE_Max_Base_Digits): New run time entity.
 
6453
-       * sem_ch3.adb (Floating_Point_Type_Declaration): Allow declarations
 
6454
-       with a requested precision of more than Max_Digits digits and no more
 
6455
-       than Max_Base_Digits digits, if a range specification is present and the
 
6456
-       Predefined_Float_Types list has a suitable type to derive from.
 
6457
-       * sem_ch3.adb (Rep_Item_Too_Early): Avoid generating error in the
 
6458
-       case of type completion with pragma Import
 
6459
-       * sem_prag.adb
 
6460
-       (Process_Import_Predefined_Type): Processing to complete a type
 
6461
-       with pragma Import. Currently supports floating point types only.
 
6462
-       (Set_Convention_From_Pragma): Do nothing without underlying type.
 
6463
-       (Process_Convention): Guard against absence of underlying type,
 
6464
-       which may happen when importing incomplete types.
 
6465
-       (Process_Import_Or_Interface): Handle case of importing predefined
 
6466
-       types. Tweak error message.
 
6467
-
 
6468
-2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>
 
6469
-
 
6470
-       * inline.adb (Add_Inlined_Body): Adjust check for library-level inlined
 
6471
-       functions to previous change.  Reorganize code slightly.
 
6472
-
 
6473
-2011-08-02  Geert Bosch  <bosch@adacore.com>
 
6474
-
 
6475
-       * back_end.ads (Register_Type_Proc): New call back procedure type for
 
6476
-       allowing the back end to provide information about available types.
 
6477
-       (Register_Back_End_Types): New procedure to register back end types.
 
6478
-       * back_end.adb (Register_Back_End_Types): Call the back end to enumerate
 
6479
-       available types.
 
6480
-       * cstand.adb (Back_End_Float_Types): New list for floating point types
 
6481
-       supported by the back end.
 
6482
-       (Build_Float_Type): Add extra parameter for Float_Rep_Kind.
 
6483
-       (Copy_Float_Type): New procedure to make new copies of predefined types.
 
6484
-       (Register_Float_Type): New call back procedure to populate the BEFT list
 
6485
-       (Find_Back_End_Float_Type): New procedure to find a BEFT by name
 
6486
-       (Create_Back_End_Float_Types): New procedure to populate the BEFT list.
 
6487
-       (Create_Float_Types): New procedure to create entities for floating
 
6488
-       point types predefined in Standard, and put these and any remaining
 
6489
-       BEFTs on the Predefined_Float_Types list.
 
6490
-       * stand.ads (Predefined_Float_Types): New list for predefined floating
 
6491
-       point types that do not have declarations in package Standard.
 
6492
-
 
6493
-2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>
 
6494
-
 
6495
-       * inline.adb (Get_Code_Unit_Entity): New local function.  Returns the
 
6496
-       entity node for the unit containing the parameter.
 
6497
-       (Add_Inlined_Body): Use it to find the unit containing the subprogram.
 
6498
-       (Add_Inlined_Subprogram): Likewise.
 
6499
-       * gcc-interface/Make-lang.in: Update dependencies.
 
6500
-
 
6501
-2011-08-02  Thomas Quinot  <quinot@adacore.com>
 
6502
-
 
6503
-       * s-stusta.adb (Print): Make sure Pos is always initialized to a
 
6504
-       suitable value.
 
6505
-
 
6506
-2011-08-02  Geert Bosch  <bosch@adacore.com>
 
6507
-
 
6508
-       * a-calfor.adb (Image): Simplify, removing unnecessary uses of 'Image.
 
6509
-
 
6510
-2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>
 
6511
-
 
6512
-       * sem_type.adb (Covers): Move trivial case to the top and reuse the
 
6513
-       computed value of Base_Type.
 
6514
-
 
6515
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
6516
-
 
6517
-       * restrict.adb (Check_Restriction): issue an error for any use of
 
6518
-       class-wide, even if the No_Dispatch restriction is not set.
 
6519
-       * sem_aggr.adb: Correct typos in comments and messages in formal mode
 
6520
-       * sem_ch3.adb (Process_Full_View): issue an error in formal mode is,
 
6521
-       when completing a private extension, the type named in the private part
 
6522
-       is not the same as that named in the visible part.
 
6523
-       * sem_res.adb (Resolve_Call): issue an error in formal mode on the use
 
6524
-       of an inherited primitive operations of a tagged type or type extension
 
6525
-       that returns the tagged type.
 
6526
-       * sem_util.adb, sem_util.ads (Is_Inherited_Operation_For_Type): new
 
6527
-       function which returns True for an implicit operation inherited by the
 
6528
-       derived type declaration for the argument type.
 
6529
-       (Is_SPARK_Object_Reference): move to appropriate place in alphabetic
 
6530
-       order.
 
6531
-
 
6532
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
6533
-
 
6534
-       * sem_ch5.adb (Pre_Analyze_Range): new procedure extracted from
 
6535
-       Process_Bounds, to perform analysis with expansion of a range or an
 
6536
-       expression that is the iteration scheme for a loop.
 
6537
-       (Analyze_Iterator_Specification): If domain of iteration is given by a
 
6538
-       function call with a controlled result, as is the case if call returns
 
6539
-       a predefined container, ensure that finalization actions are properly
 
6540
-       generated.
 
6541
-       * par-ch3.adb: accept Ada2012 iterator form in P_Discrete_Range.
 
6542
-
 
6543
-2011-08-02  Javier Miranda  <miranda@adacore.com>
 
6544
-
 
6545
-       * sem_ch5.adb (Analyze_Iteration_Scheme): Fix typo.
 
6546
-       * gcc-interface/Make-lang.in: Update dependencies.
 
6547
-
 
6548
-2011-08-02  Javier Miranda  <miranda@adacore.com>
 
6549
-
 
6550
-       * sem_util.ads, sem_util.adb (Is_Variable): Add a new formal to
 
6551
-       determine if the analysis is performed using N or Original_Node (N).
 
6552
-       * exp_util.adb (Side_Effect_Free): Code cleanup since the new
 
6553
-       functionality of routine Is_Variable avoids code duplication.
 
6554
-       * checks.adb (Determine_Range): Handle temporaries generated by
 
6555
-       Remove_Side_Effects.
 
6556
-
 
6557
-2011-08-02  Javier Miranda  <miranda@adacore.com>
 
6558
-
 
6559
-       * exp_ch4.adb (Expand_N_Quantified_Expression): Force reanalysis and
 
6560
-       expansion of the condition. Required since the previous analysis was
 
6561
-       done with expansion disabled (see Resolve_Quantified_Expression) and
 
6562
-       hence checks were not inserted and record comparisons have not been
 
6563
-       expanded.
 
6564
-
 
6565
-2011-08-02  Ed Falis  <falis@adacore.com>
 
6566
-
 
6567
-       * s-taprop-vxworks.adb, s-intman-vxworks.adb, s-intman-vxworks.ads:
 
6568
-       Update header.
 
6569
-
 
6570
-2011-08-02  Bob Duff  <duff@adacore.com>
 
6571
-
 
6572
-       * opt.ads: Minor comment fix.
 
6573
-
 
6574
-2011-08-02  Bob Duff  <duff@adacore.com>
 
6575
-
 
6576
-       * sem_ch12.adb (Analyze_Package_Instantiation,
 
6577
-       Analyze_Subprogram_Instantiation): Turn off style checking while
 
6578
-       analyzing an instance. Whatever style checks that apply to the generic
 
6579
-       unit should apply, so it makes no sense to apply them in an instance.
 
6580
-       This was causing trouble when compiling an instance of a runtime
 
6581
-       unit that violates the -gnatyO switch.
 
6582
-       * stylesw.adb (Set_Style_Check_Options): "when 'O' =>" was missing from
 
6583
-       one of the two case statements, causing spurious errors.
 
6584
-
 
6585
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6586
-
 
6587
-       * uname.adb: Minor reformatting.
 
6588
-       * gnatcmd.adb: Minor reformatting.
 
6589
-       * exp_attr.adb: Minor reformatting.
 
6590
-
 
6591
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
6592
-
 
6593
-       * exp_ch5.adb (Expand_N_Assignment_Statement): under restriction
 
6594
-       No_Dispatching_Calls, do not look for the Assign primitive, because
 
6595
-       predefined primitives are not created in this case.
 
6596
-
 
6597
-2011-08-02  Bob Duff  <duff@adacore.com>
 
6598
-
 
6599
-       * stylesw.ads: Minor comment fixes.
 
6600
-
 
6601
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6602
-
 
6603
-       * freeze.adb (Add_To_Result): New procedure.
 
6604
-
 
6605
-2011-08-02  Jose Ruiz  <ruiz@adacore.com>
 
6606
-
 
6607
-       * exp_attr.adb (Find_Stream_Subprogram): When using a configurable run
 
6608
-       time, if the specific run-time routines for handling streams of strings
 
6609
-       are not available, use the default mechanism.
 
6610
-
 
6611
-2011-08-02  Arnaud Charlet  <charlet@adacore.com>
 
6612
-
 
6613
-       * s-regpat.ads: Fix typo.
 
6614
-
 
6615
-2011-08-02  Vincent Celier  <celier@adacore.com>
 
6616
-
 
6617
-       * prj-conf.adb (Get_Or_Create_Configuration_File): If On_Load_Config is
 
6618
-       not null, call it to create the in memory config project file without
 
6619
-       parsing an existing default config project file.
 
6620
-
 
6621
-2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>
 
6622
-
 
6623
-       * atree.adb (Allocate_Initialize_Node): Remove useless temporaries.
 
6624
-
 
6625
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
6626
-
 
6627
-       * sem_elim.adb: an abstract subprogram does not need an eliminate
 
6628
-       pragma for its descendant to be eliminable.
 
6629
-
 
6630
-2011-08-02  Ed Falis  <falis@adacore.com>
 
6631
-
 
6632
-       * init.c: revert to handling before previous checkin for VxWorks
 
6633
-       * s-intman-vxworks.adb: delete unnecessary declarations related to
 
6634
-       using Ada interrupt facilities for handling signals.
 
6635
-       Delete Initialize_Interrupts. Use __gnat_install_handler instead.
 
6636
-       * s-intman-vxworks.ads: Import __gnat_install_handler as
 
6637
-       Initialize_Interrupts.
 
6638
-       * s-taprop-vxworks.adb: Delete Signal_Mask.
 
6639
-       (Abort_Handler): change construction of mask to unblock exception
 
6640
-       signals.
 
6641
-
 
6642
-2011-08-02  Jerome Guitton  <guitton@adacore.com>
 
6643
-
 
6644
-       * a-except-2005.adb (Raise_From_Signal_Handler): Call
 
6645
-       Debug_Raise_Exception before propagation starts.
 
6646
-
 
6647
-2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>
 
6648
-
 
6649
-       * exp_ch6.adb (Expand_Call): Guard restriction checks with a call
 
6650
-       to Restriction_Check_Required.
 
6651
-       * sem_ch3.adb (Analyze_Object_Declaration): Likewise.
 
6652
-       * sem_res.adb (Resolve_Call): Likewise.
 
6653
-       * sem_attr.adb (Check_Stream_Attribute): Likewise.
 
6654
-
 
6655
-2011-08-02  Bob Duff  <duff@adacore.com>
 
6656
-
 
6657
-       * stylesw.ads: Update comment.
 
6658
-       * style.adb: Minor: Use Error_Msg_NE instead of Error_Msg_N.
 
6659
-       * errout.ads: Remove obsolete comment.
 
6660
-
 
6661
-2011-08-02  Javier Miranda  <miranda@adacore.com>
 
6662
-
 
6663
-       * einfo.ads, einfo.adb (Is_Safe_To_Reevaluate): new function.
 
6664
-       (Set_Is_Safe_To_Reevaluate): new procedure.
 
6665
-       * sem_ch5.adb (Analyze_Assignment): Add one assertion to ensure that no
 
6666
-       assignment is allowed on safe-to-reevaluate variables.
 
6667
-       (Analyze_Iteration_Schine.Process_Bounds.One_Bound): Decorate the
 
6668
-       temporary created to remove side effects in expressions that use
 
6669
-       the secondary stack as safe-to-reevaluate.
 
6670
-       * exp_util.adb (Side_Effect_Free): Add missing code to handle well
 
6671
-       variables that are not true constants.
 
6672
-
 
6673
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6674
-
 
6675
-       * sem_ch5.adb, sem_ch7.adb, einfo.ads, sem_util.adb, sem_util.ads,
 
6676
-       sem_res.adb, sem_ch6.adb: Minor reformatting.
 
6677
-
 
6678
-2011-08-02  Jerome Guitton  <guitton@adacore.com>
 
6679
-
 
6680
-       * a-except-2005.adb (Raise_Current_Excep): Remove obsolete dead code.
 
6681
-
 
6682
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
6683
-
 
6684
-       * sem_ch6.adb (New_Overloaded_Entity, Check_Overriding_Indicator): Do
 
6685
-       not set Overridden_Operation if subprogram is an initialization
 
6686
-       procedure.
 
6687
-
 
6688
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
6689
-
 
6690
-       * par-ch6.adb: Correct obsolete name in comments
 
6691
-       * restrict.adb, restrict.ads (Check_Formal_Restriction): new function
 
6692
-       which takes two message arguments (existing function takes one), with
 
6693
-       second message used for continuation.
 
6694
-       * sem_ch5.adb (Analyze_Block_Statement): in formal mode, only reject
 
6695
-       block statements that originate from a source block statement, not
 
6696
-       generated block statements
 
6697
-       * sem_ch6.adb (Analyze_Function_Call): rename L into Actuals, for
 
6698
-       symmetry with procedure case
 
6699
-       * sem_ch7.adb (Check_One_Tagged_Type_Or_Extension_At_Most): new
 
6700
-       function to issue an error in formal mode if a package specification
 
6701
-       contains more than one tagged type or type extension.
 
6702
-       * sem_res.adb (Resolve_Actuals): in formal mode, check that actual
 
6703
-       parameters matching formals of tagged types are objects (or ancestor
 
6704
-       type conversions of objects), not general expressions. Issue an error
 
6705
-       on view conversions that are not involving ancestor conversion of an
 
6706
-       extended type.
 
6707
-       (Resolve_Type_Conversion): in formal mode, issue an error on the
 
6708
-       operand of an ancestor type conversion which is not an object
 
6709
-       * sem_util.adb, sem_util.ads (Find_Actual): extend the behavior of the
 
6710
-       procedure so that it works also for actuals of function calls
 
6711
-       (Is_Actual_Tagged_Parameter): new function which determines if its
 
6712
-       argument is an actual parameter of a formal of tagged type in a
 
6713
-       subprogram call
 
6714
-       (Is_SPARK_Object_Reference): new function which determines if the tree
 
6715
-       referenced by its argument represents an object in SPARK
 
6716
-
 
6717
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6718
-
 
6719
-       * sem_ch3.adb: Minor reformatting
 
6720
-       Minor comment addition
 
6721
-       Minor error msg text change
 
6722
-
 
6723
-2011-08-02  Javier Miranda  <miranda@adacore.com>
 
6724
-
 
6725
-       * sem_ch5.adb (Analyze_Iteration_Scheme.Uses_Secondary_Stack): New
 
6726
-       function. Used to be more precise when we generate a variable plus one
 
6727
-       assignment to remove side effects in the evaluation of the Bound
 
6728
-       expressions.
 
6729
-       (Analyze_Iteration_Scheme): Clean attribute analyzed in all the nodes
 
6730
-       of the bound expression to force its re-analysis and thus expand the
 
6731
-       associated transient scope (if required). Code cleanup replacing the
 
6732
-       previous code that declared the constant entity by an invocation to
 
6733
-       routine Force_Evaluation which centralizes this work in the frontend.
 
6734
-
 
6735
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6736
-
 
6737
-       * einfo.adb (Is_Base_Type): Improve efficiency by using a flag table
 
6738
-       (Base_Type): Now uses improved Is_Base_Type function
 
6739
-       * einfo.ads (Base_Type): Inline this function
 
6740
-
 
6741
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6742
-
 
6743
-       * sem_prag.adb (Analyze_Pragma): Defend against infinite recursion
 
6744
-       (Analyze_Aspect_Specifications): Fix Sloc values for constructed pragmas
 
6745
-
 
6746
-2011-08-02  Arnaud Charlet  <charlet@adacore.com>
 
6747
-
 
6748
-       * gcc-interface/Make-lang.in: Update dependencies.
 
6749
-       * gcc-interface/Makefile.in: Use s-inmapop-vxworks.adb for all VxWorks
 
6750
-       targets.
 
6751
-
 
6752
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
6753
-
 
6754
-       * par-ch3.adb (P_Delta_Constraint): issue an error in formal mode on
 
6755
-       non-simple expression used in delta constraint
 
6756
-       (P_Index_Or_Discriminant_Constraint): issue an error in formal mode on
 
6757
-       index constraint which is not a subtype mark
 
6758
-       * par.adb: With and use Restrict
 
6759
-       * sem_ch3.adb (Analyze_Component_Declaration): issue an error in formal
 
6760
-       mode on component type which is not a subtype mark and default
 
6761
-       expression on component
 
6762
-       (Analyze_Subtype_Declaration): issue an error in formal mode on subtype
 
6763
-       of string which does not have a lower index bound equal to 1
 
6764
-       (Array_Type_Declaration): issue an error in formal mode on index or
 
6765
-       component type which is not a subtype mark, and on aliased keyword on
 
6766
-       component
 
6767
-       (Derived_Type_Declaration): issue an error in formal mode on interface,
 
6768
-       limited or abstract type
 
6769
-       (Record_Type_Declaration): issue an error in formal mode on interface
 
6770
-       (Record_Type_Definition): issue an error in formal mode on tagged types
 
6771
-       and type extensions not declared in the specification of a library unit
 
6772
-       package; on null non-tagged record; on variant part
 
6773
-
 
6774
-2011-08-02  Vincent Celier  <celier@adacore.com>
 
6775
-
 
6776
-       * prj-nmsc.adb (Check_Library_Attributes): Do not report Library_Dir
 
6777
-       not declared for qualified library project when Library_Name is not
 
6778
-       declared, but Library_Dir is.
 
6779
-
 
6780
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6781
-
 
6782
-       * sem_ch13.adb (Analyze_Aspect_Specification): Fix slocs on generated
 
6783
-       pragmas (affects aspects [Component_]Default_Value
 
6784
-       (Check_Aspect_At_Freeze_Point): For Component_Default_Value, use
 
6785
-       component type for the resolution
 
6786
-
 
6787
-2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>
 
6788
-
 
6789
-       * einfo.adb (Base_Type): Tune implementation for speed.
 
6790
-
 
6791
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6792
-
 
6793
-       * freeze.adb: Minor reformatting.
 
6794
-
 
6795
-2011-08-02  Thomas Quinot  <quinot@adacore.com>
 
6796
-
 
6797
-       * scos.ads: Update comments.
 
6798
-
 
6799
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
6800
-
 
6801
-       * sem_ch3.adb (Build_Derived_Type): Inherit the convention from the
 
6802
-       base type, because the parent may be a subtype of a private type whose
 
6803
-       convention is established in a private part.
 
6804
-
 
6805
-2011-08-02  Hristian Kirtchev  <kirtchev@adacore.com>
 
6806
-
 
6807
-       * exp_ch6.adb (Expand_N_Extended_Return_Statement): Wrap the return
 
6808
-       statement in a block when the expansion of the return expression has
 
6809
-       created a finalization chain.
 
6810
-       * freeze.adb (Freeze_Expression): Alphabetize all choices associated
 
6811
-       with the parent node.
 
6812
-       Add N_Extended_Return_Statement to handle the case where a transient
 
6813
-       object declaration appears in the Return_Object_Declarations list of
 
6814
-       an extended return statement.
 
6815
-
 
6816
-2011-08-02  Matthew Gingell  <gingell@adacore.com>
 
6817
-
 
6818
-       * adaint.c (__gnat_is_symbolic_link_attr): Supress warning on possibly
 
6819
-       unused parameter 'name'.
 
6820
-
 
6821
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
6822
-
 
6823
-       * sem_elim.adb (Set_Eliminated): If the overridden operation is an
 
6824
-       inherited operation, check whether its alias, which is the source
 
6825
-       operastion that it renames, has been marked eliminated.
 
6826
-
 
6827
-2011-08-02  Javier Miranda  <miranda@adacore.com>
 
6828
-
 
6829
-       * exp_util.adb (Safe_Prefixed_Reference): Do not consider safe an
 
6830
-       in-mode parameter whose type is an access type since it can be used to
 
6831
-       modify its designated object. Enforce code that handles as safe an
 
6832
-       access type that is not access-to-constant but it is the result of a
 
6833
-       previous removal of side-effects.
 
6834
-       (Remove_Side_Effects): Minor code reorganization of cases which require
 
6835
-       no action. Done to incorporate documentation on new cases uncovered
 
6836
-       working in this ticket: no action needed if this routine was invoked
 
6837
-       too early and the nodes are not yet decorated.
 
6838
-       * sem_res.adb (Resolve_Slice): Minor code cleanup replacling two calls
 
6839
-       to routine Remove_Side_Effects by calls to Force_Evaluation since they
 
6840
-       were issued with actuals that are implicitly provided by
 
6841
-       Force_Evaluation.
 
6842
-
 
6843
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6844
-
 
6845
-       * sem_ch3.adb, sem_res.adb: Minor reformatting.
 
6846
-
 
6847
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
6848
-
 
6849
-       * sem_attr.adb (Check_Formal_Restriction_On_Attribute): new procedure
 
6850
-       to issue an error in formal mode on attribute not supported in this mode
 
6851
-       (Analyze_Attribute): issue errors on standard attributes not supported
 
6852
-       in formal mode.
 
6853
-       * sem_ch3.adb (Modular_Type_Declaration): remove obsolete part of
 
6854
-       comment, and issue error in formal mode on modulus which is not a power
 
6855
-       of 2.
 
6856
-       (Process_Range_Expr_In_Decl): issue error in formal mode on non-static
 
6857
-       range.
 
6858
-       * sem_ch8.adb (Find_Type): issue error in formal mode on 'Base in
 
6859
-       subtype mark.
 
6860
-       * sem_res.adb (Resolve_Unary_Op): issue error in formal mode on unary
 
6861
-       operator on modular type (except 'not').
 
6862
-
 
6863
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6864
-
 
6865
-       * gnat_rm.texi: Minor reformatting.
 
6866
-
 
6867
-2011-08-02  Arnaud Charlet  <charlet@adacore.com>
 
6868
-
 
6869
-       * s-osinte-linux.ads: Minor comment update and reformatting.
 
6870
-       * i-cexten.ads: Make this unit pure, as for its parent.
 
6871
-       Will allow its usage in more contexts if needed.
 
6872
-
 
6873
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6874
-
 
6875
-       * s-utf_32.ads: Minor comment fix.
 
6876
-
 
6877
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
6878
-
 
6879
-       * sem_res.adb (Resolve_Actuals): if the subprogram is a primitive
 
6880
-       operation of a tagged synchronized type, handle the case where the
 
6881
-       controlling argument is overloaded.
 
6882
-
 
6883
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
6884
-
 
6885
-       * gnat_rm.texi, opt.ads, sem_prag.adb, snames.ads-tmpl:
 
6886
-       Replace pragma SPARK_95 with pragma Restrictions (SPARK)
 
6887
-       * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): set
 
6888
-       SPARK mode and formal verification mode on processing SPARK restriction
 
6889
-       * s-rident.ads (Restriction_Id): add SPARK restriction in those not
 
6890
-       requiring consistency checking.
 
6891
-
 
6892
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6893
-
 
6894
-       * sem_res.adb: Minor reformatting.
 
6895
-
 
6896
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6897
-
 
6898
-       * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
 
6899
-       a-cforse.ads: Remove unneeded with of Ada.Containers
 
6900
-       Remove commented out pragma Inline's
 
6901
-       Move specifications of new subprograms to the actual specs
 
6902
-
 
6903
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
6904
-
 
6905
-       * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
 
6906
-       a-cforse.ads: Update comments.
 
6907
-
 
6908
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
6909
-
 
6910
-       * sem_attr.adb: add attribute name when 'Result has the wrong prefix.
 
6911
-
 
6912
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6913
-
 
6914
-       * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads,
 
6915
-       a-cforse.ads, a-cofove.ads: Minor reformatting.
 
6916
-
 
6917
-2011-08-02  Claire Dross  <dross@adacore.com>
 
6918
-
 
6919
-       * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads,
 
6920
-       a-cofove.ads: Add comments.
 
6921
-
 
6922
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
6923
-
 
6924
-       * gnat_rm.texi: Document formal containers.
 
6925
-
 
6926
-2011-08-02  Emmanuel Briot  <briot@adacore.com>
 
6927
-
 
6928
-       * g-comlin.adb (Goto_Section, Getopt): fix handling of "*" when there
 
6929
-       are empty sections.
 
6930
-
 
6931
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6932
-
 
6933
-       * mlib-prj.adb, restrict.ads, sem_aggr.adb, sem_ch12.adb: Minor
 
6934
-       reformatting.
 
6935
-
 
6936
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6937
-
 
6938
-       * aspects.adb: New aspects Default_Value and Default_Component_Value
 
6939
-       New format of Aspect_Names table checks for omitted entries
 
6940
-       * aspects.ads: Remove mention of Aspect_Cancel and add documentation on
 
6941
-       handling of boolean aspects for derived types.
 
6942
-       New aspects Default_Value and Default_Component_Value
 
6943
-       New format of Aspect_Names table checks for omitted entries
 
6944
-       * einfo.ads, einfo.adb (Has_Default_Component_Value): New flag
 
6945
-       (Has_Default_Value): New flag
 
6946
-       (Has_Default_Component_Value): New flag
 
6947
-       (Has_Default_Value): New flag
 
6948
-       * par-ch13.adb (P_Aspect_Specifications): New format of Aspect_Names
 
6949
-       table.
 
6950
-       * par-prag.adb: New pragmas Default_Value and Default_Component_Value
 
6951
-       * sem_ch13.adb (Analyze_Aspect_Specifications): New aspects
 
6952
-       Default_Value and Default_Component_Value
 
6953
-       * sem_prag.adb: New pragmas Default_Value and Default_Component_Value
 
6954
-       New aspects Default_Value and Default_Component_Value
 
6955
-       * snames.ads-tmpl: New pragmas Default_Value and Default_Component_Value
 
6956
-       * sprint.adb: Print N_Aspect_Specification node when called from gdb
 
6957
-
 
6958
-2011-08-02  Vincent Celier  <celier@adacore.com>
 
6959
-
 
6960
-       * prj-nmsc.adb (Check_Library_Attributes): For virtual library project,
 
6961
-       inherit library kind.
 
6962
-
 
6963
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
6964
-
 
6965
-       * sem_res.adb: Add guards in calls to Matching_Static_Array_Bounds.
 
6966
-       Minor reformatting.
 
6967
-
 
6968
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6969
-
 
6970
-       * i-cstrin.ads: Updates to make Interfaces.C.Strings match RM
 
6971
-
 
6972
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
6973
-
 
6974
-       * sem_aggr.adb (Resolve_Aggregate): Fix thinko.
 
6975
-
 
6976
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
6977
-
 
6978
-       * impunit.adb: Add comment.
 
6979
-
 
6980
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
6981
-
 
6982
-       * sem_aggr.adb (Check_Qualified_Aggregate): new procedure which checks
 
6983
-       qualification of aggregates in formal mode
 
6984
-       (Is_Top_Level_Aggregate): returns True for an aggregate not contained in
 
6985
-       another aggregate
 
6986
-       (Resolve_Aggregate): complete the test that an aggregate is adequately
 
6987
-       qualified in formal mode
 
6988
-
 
6989
-2011-08-02  Pascal Obry  <obry@adacore.com>
 
6990
-
 
6991
-       * make.adb, bindgen.adb, gnatbind.adb: Minor reformatting.
 
6992
-       * mlib-prj.adb: Supress warning when compiling binder generated file.
 
6993
-       (Build_Library): Supress all warnings when compiling the binder
 
6994
-       generated file.
 
6995
-
 
6996
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
6997
-
 
6998
-       * errout.adb, errout.ads (Check_Formal_Restriction): move procedure
 
6999
-       from here...
 
7000
-       * restrict.adb, restrict.ads (Check_Formal_Restriction): ...to here
 
7001
-       * sem_aggr.adb, sem_ch5.adb, sem_util.adb:
 
7002
-       Add with/use clauses to make Check_Formal_Restriction visible
 
7003
-
 
7004
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
7005
-
 
7006
-       * sem_ch12.adb (Check_Generic_Actuals): handle properly actual
 
7007
-       in-parameters when type of the generic formal is private in the generic
 
7008
-       spec and non-private in the body.
 
7009
-
 
7010
-2011-08-02  Claire Dross  <dross@adacore.com>
 
7011
-
 
7012
-       * a-cfdlli.adb, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfhama.adb,
 
7013
-       a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cforma.adb, a-cforma.ads,
 
7014
-       a-cofove.adb, a-cofove.ads: New files implementing formal containers.
 
7015
-       * impunit.adb, Makefile.rtl: Take new files into account.
 
7016
-
 
7017
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
7018
-
 
7019
-       * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, make.adb, sem_res.adb,
 
7020
-       sem_attr.adb, sem_ch6.adb, sem_ch8.adb: Minor reformatting.
 
7021
-
 
7022
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
7023
-
 
7024
-       * sem_aggr.adb (Resolve_Aggregate): disable incorrectly placed check in
 
7025
-       formal mode
 
7026
-       * sem_util.adb (Matching_Static_Array_Bounds): proper detection of
 
7027
-       matching static array bounds, taking into account the special case of
 
7028
-       string literals
 
7029
-       * sem_ch3.adb: Typo in comment.
 
7030
-
 
7031
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
7032
-
 
7033
-       * errout.adb, errout.ads (Check_Formal_Restriction): new procedure
 
7034
-       which issues an error in formal mode if its argument node is originally
 
7035
-       from source
 
7036
-       * sem_ch3.adb (Analyze_Full_Type_Declaration): move test that a type
 
7037
-       has a discriminant specification so that it does not include the case
 
7038
-       of derived types
 
7039
-       (Derived_Type_Declaration): move here the test that a derived type has a
 
7040
-       discriminant specification
 
7041
-       * sem_aggr.adb (Resolve_Record_Aggregate): test the presence of the
 
7042
-       first element of a component association before accessing its choices
 
7043
-       (presence of component association is not enough)
 
7044
-       * exp_ch6.adb (Expand_N_Subprogram_Declaration): test if a subprogram
 
7045
-       declaration is a library item before accessing the next element in a
 
7046
-       list, as library items are not member of lists
 
7047
-       * sem_attr.adb, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb,
 
7048
-       sem_ch8.adb, sem_ch9.adb, sem_res.adb, sem_util.adb: use
 
7049
-       Check_Formal_Restriction whenever possible.
 
7050
-
 
7051
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
7052
-
 
7053
-       * sem_ch3.adb (Find_Type_Of_Object): In ASIS mode, create an itype
 
7054
-       reference when needed.
 
7055
-
 
7056
-2011-08-02  Bob Duff  <duff@adacore.com>
 
7057
-
 
7058
-       * gnat_ugn.texi: Fix typo.
 
7059
-
 
7060
-2011-08-02  Vincent Celier  <celier@adacore.com>
 
7061
-
 
7062
-       * make.adb (Gnatmake): Use MLib.Tgt.Archive_Ext as the extension of
 
7063
-       archive file name. Do not use the full path name of archives for Open
 
7064
-       VMS.
 
7065
-
 
7066
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
7067
-
 
7068
-       * sem_ch12.adb, sem_ch11.adb: New calling sequence for
 
7069
-       Analyze_Aspect_Specifications
 
7070
-       * sem_ch13.adb
 
7071
-       (Analyze_Aspect_Specifications): New handling for boolean aspects
 
7072
-       * sem_ch13.ads (Analyze_Aspect_Specifications): New calling sequence
 
7073
-       * sem_ch3.adb, sem_ch6.adb, sem_ch7.adb, sem_ch9.adb: New calling
 
7074
-       sequence for Analyze_Aspect_Specifications
 
7075
-       * sem_prag.adb (Analyze_Pragma): Remove use of Aspect_Cancel entirely
 
7076
-       * sinfo.ads, sinfo.adb (Aspect_Cancel): Remove, no longer used
 
7077
-
 
7078
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
7079
-
 
7080
-       * freeze.adb (Freeze_Entity): Remove handling of delayed boolean
 
7081
-       aspects, since these no longer exist.
 
7082
-
 
7083
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
7084
-
 
7085
-       * par-ch13.adb (Aspect_Specifications_Present): Always return false on
 
7086
-       semicolon, do not try to see if there are aspects following it.
 
7087
-       * par-ch3.adb (P_Declarative_Items): Better message for unexpected
 
7088
-       aspect spec.
 
7089
-
 
7090
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
7091
-
 
7092
-       * sem_ch8.adb, aspects.ads: Minor reformatting.
 
7093
-
 
7094
-2011-08-02  Eric Botcazou  <ebotcazou@adacore.com>
 
7095
-
 
7096
-       * sem_ch13.ads (Analyze_Aspect_Specification): Add pragma Inline.
 
7097
-       * sem_ch13.adb (Analyze_Non_Null_Aspect_Specifications): New procedure
 
7098
-       extracted from...
 
7099
-       (Analyze_Aspect_Specifications): ...here.  Call above procedure.
 
7100
-
 
7101
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
7102
-
 
7103
-       * exp_ch6.adb (Expand_N_Subprogram_Declaration): issue error in formal
 
7104
-       mode on subprogram declaration outside of package specification, unless
 
7105
-       it is followed by a pragma Import
 
7106
-       * sem_ch3.adb (Access_Definition, Access_Subprogram_Declaration,
 
7107
-       Access_Type_Declaration): issue error in formal mode on access type
 
7108
-       (Analyze_Incomplete_Type_Decl): issue error in formal mode on
 
7109
-       incomplete type
 
7110
-       (Analyze_Object_Declaration): issue error in formal mode on object
 
7111
-       declaration which does not respect SPARK restrictions
 
7112
-       (Analyze_Subtype_Declaration): issue error in formal mode on subtype
 
7113
-       declaration which does not respect SPARK restrictions
 
7114
-       (Constrain_Decimal, Constrain_Float, Constrain_Ordinary_Fixed): issue
 
7115
-       error in formal mode on digits or delta constraint
 
7116
-       (Decimal_Fixed_Point_Type_Declaration): issue error in formal mode on
 
7117
-       decimal fixed point type
 
7118
-       (Derived_Type_Declaration): issue error in formal mode on derived type
 
7119
-       other than type extensions of tagged record types
 
7120
-       * sem_ch6.adb (Process_Formals): remove check in formal mode, redundant
 
7121
-       with check on access definition
 
7122
-       * sem_ch9.adb (Analyze_Protected_Definition): issue error in formal
 
7123
-       mode on protected definition.
 
7124
-       (Analyze_Task_Definition): issue error in formal mode on task definition
 
7125
-
 
7126
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
7127
-
 
7128
-       * make.adb, sem_ch8.adb, s-inmaop-vxworks.adb: Minor reformatting.
 
7129
-
 
7130
-2011-08-02  Javier Miranda  <miranda@adacore.com>
 
7131
-
 
7132
-       * sem_ch6.adb (Can_Override_Operator): New function.
 
7133
-       (Verify_Overriding_Indicator): Add missing code to check overriding
 
7134
-       indicator in operators. Fixes regression.
 
7135
-       (Check_Overriding_Indicator): Minor reformating after replacing the
 
7136
-       code that evaluates if the subprogram can override an operator by
 
7137
-       invocations to the above new function.
 
7138
-       * einfo.adb
 
7139
-       (Write_Field26_Name): Add missing code to ensure that, following
 
7140
-       the documentation in einfo.ads, this field is not shown as attribute
 
7141
-       "Static_Initialization" on non-dispatching functions.
 
7142
-
 
7143
-2011-08-02  Jose Ruiz  <ruiz@adacore.com>
 
7144
-
 
7145
-       * sem_res.adb (Resolve_Call): A call to
 
7146
-       Ada.Real_Time.Timing_Events.Set_Handler violates restriction
 
7147
-       No_Relative_Delay (AI-0211) only when it sets a relative timing event,
 
7148
-       i.e., when the second parameter is of type Time_Span.
 
7149
-
 
7150
-2011-08-02  Vincent Celier  <celier@adacore.com>
 
7151
-
 
7152
-       * make.adb (Gnatmake): use <library dir>/lib<library name>.a to link
 
7153
-       with an archive instead of -L<library dir> -l<library name>.
 
7154
-
 
7155
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
7156
-
 
7157
-       * sem_ch8.adb (Analyze_Use_Type): If the clause is being re-analyzed,
 
7158
-       mark the base types In_Use in addition to making the operations
 
7159
-       use_visible.
 
7160
-
 
7161
-2011-08-02  Ed Falis  <falis@adacore.com>
 
7162
-
 
7163
-       * init.c: add and setup __gnat_signal_mask for the exception signals
 
7164
-       * s-inmaop-vxworks.adb: new file.
 
7165
-       * s-intman-vxworks.adb: remove unnecessary initializations and
 
7166
-       simplify remaining
 
7167
-       * s-intman-vxworks.ads: remove unnecessary variable
 
7168
-       * s-taprop-vxworks.adb: simplify signal initialization
 
7169
-
 
7170
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
7171
-
 
7172
-       * sem_ch8.adb: Minor code reorganization, comment updates.
 
7173
-
 
7174
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
7175
-
 
7176
-       * sem_res.adb (Matching_Static_Array_Bounds): Moved to Sem_Util
 
7177
-       * sem_util.ads, sem_util.adb (Matching_Static_Array_Bounds): Moved
 
7178
-       here from Sem_Res.
 
7179
-       (Matching_Static_Array_Bounds): Use Is_Ok_Static_Expression
 
7180
-       (Matching_Static_Array_Bounds): Moved here from Sem_Res
 
7181
-
 
7182
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
7183
-
 
7184
-       * atree.h, atree.ads, atree.adb: New subprograms to manipulate Elist5.
 
7185
-       * par_ch8.adb (P_Use_Type): initialize Used_Operations for node.
 
7186
-       * sinfo.ads, sinfo.adb (Used_Operations): new attribute of
 
7187
-       use_type_clauses, to handle more efficiently use_type and use_all_type
 
7188
-       constructs.
 
7189
-       * sem_ch8.adb: Rewrite Use_One_Type and End_Use_Type to handle the
 
7190
-       Ada2012 Use_All_Type clause.
 
7191
-       (Use_Class_Wide_Operations): new procedure.
 
7192
-
 
7193
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
7194
-
 
7195
-       * exp_util.adb, par-ch10.adb, par-ch6.adb, sem.adb, sem_ch6.adb,
 
7196
-       sem_ch6.ads, sinfo.adb, sinfo.ads, sprint.adb: Change parameterized
 
7197
-       expression to expression function.
 
7198
-
 
7199
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
7200
-
 
7201
-       * sem_ch4.adb: transform simple Ada2012 membership into equality only
 
7202
-       if types are compatible.
 
7203
-
 
7204
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
7205
-
 
7206
-       * sem_res.adb (Matching_Static_Array_Bounds): new function which
 
7207
-       returns True if its argument array types have same dimension and same
 
7208
-       static bounds at each index.
 
7209
-       (Resolve_Actuals): issue an error in formal mode on actuals passed as
 
7210
-       OUT or IN OUT paramaters which are not view conversions in SPARK.
 
7211
-       (Resolve_Arithmetic_Op): issue an error in formal mode on
 
7212
-       multiplication or division with operands of fixed point types which are
 
7213
-       not qualified or explicitly converted.
 
7214
-       (Resolve_Comparison_Op): issue an error in formal mode on comparisons of
 
7215
-       Boolean or array type (except String) operands.
 
7216
-       (Resolve_Equality_Op): issue an error in formal mode on equality
 
7217
-       operators for array types other than String with non-matching static
 
7218
-       bounds.
 
7219
-       (Resolve_Logical_Op): issue an error in formal mode on logical operators
 
7220
-       for array types with non-matching static bounds. Factorize the code in
 
7221
-       Matching_Static_Array_Bounds.
 
7222
-       (Resolve_Qualified_Expression): issue an error in formal mode on
 
7223
-       qualified expressions for array types with non-matching static bounds.
 
7224
-       (Resolve_Type_Conversion): issue an error in formal mode on type
 
7225
-       conversion for array types with non-matching static bounds
 
7226
-
 
7227
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
7228
-
 
7229
-       * par-ch10.adb: Minor code reorganization (use Nkind_In).
 
7230
-
 
7231
-2011-08-02  Ed Schonberg  <schonberg@adacore.com>
 
7232
-
 
7233
-       * par-ch9.adb: save location of entry for proper error message.
 
7234
-
 
7235
-2011-08-02  Javier Miranda  <miranda@adacore.com>
 
7236
-
 
7237
-       * sem_type.ads, sem_type.adb (Is_Ancestor): Addition of a new formal
 
7238
-       (Use_Full_View) which permits this routine to climb through the
 
7239
-       ancestors using the full-view of private parents.
 
7240
-       * sem_util.adb (Collect_Interfaces_Info, Implements_Interface): Set
 
7241
-       Use_Full_View to true in calls to Is_Ancestor.
 
7242
-       * sem_disp.adb (Override_Dispatching_Operation): Set Use_Full_View to
 
7243
-       true in call to Is_Ancestor.
 
7244
-       * exp_ch3.adb (Build_Offset_To_Top_Functions, Initialize_Tag): Set
 
7245
-       Use_Full_View to true in call to Is_Ancestor.
 
7246
-       * exp_ch7.adb (Controller_Component): Set Use_Full_View to true in
 
7247
-       call to Is_Ancestor.
 
7248
-       * exp_ch4.adb (Expand_N_Type_Conversion, Tagged_Membership): Set
 
7249
-       Use_Full_View to true in calls to Is_Ancestor.
 
7250
-       * exp_disp.adb (Expand_Interface_Actuals, Make_Secondary_DT, Make_DT,
 
7251
-       Make_Select_Specific_Data_Table, Register_Primitive,
 
7252
-       Set_All_DT_Position): Set Use_Full_View to true in calls to Is_Ancestor.
 
7253
-       * exp_intr.adb (Expand_Dispatching_Constructor_Call): Set Use_Full_View
 
7254
-       to true in call to Is_Ancestor.
 
7255
-       * exp_util.adb (Find_Interface_ADT, Find_Interface_Tag): Set
 
7256
-       Use_Full_View to true in calls to Is_Ancestor.
 
7257
-       * exp_cg.adb
 
7258
-       (Write_Call_Info): Set Use_Full_View to true in call to Is_Ancestor.
 
7259
-       (Write_Type_Info): Set Use_Full_View to true in call to Is_Ancestor.
 
7260
-
 
7261
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
7262
-
 
7263
-       * gnat_rm.texi: Minor reformatting.
 
7264
-       * sem_prag.adb: Minor reformatting.
 
7265
-
 
7266
-2011-08-02  Tristan Gingold  <gingold@adacore.com>
 
7267
-
 
7268
-       * vms_data.ads: Add VMS qualifier for -gnateP.
 
7269
-
 
7270
-2011-08-02  Robert Dewar  <dewar@adacore.com>
 
7271
-
 
7272
-       * par-ch13.adb (P_Aspect_Specification): New meaning of Decl = Empty
 
7273
-       * par-ch7.adb (P_Package): Proper placement of aspects for package
 
7274
-       decl/instantiation.
 
7275
-       * par-endh.adb (Check_End): Ad Is_Sloc parameter
 
7276
-       (End_Statements): Add Is_Sloc parameterr
 
7277
-       * par.adb (P_Aspect_Specification): New meaning of Decl = Empty
 
7278
-       (Check_End): Ad Is_Sloc parameter
 
7279
-       (End_Statements): Add Is_Sloc parameterr
 
7280
-
 
7281
-2011-08-02  Vincent Celier  <celier@adacore.com>
 
7282
-
 
7283
-       * ug_words: Add VMS qualifier equivalent to -gnateP:
 
7284
-       /SYMBOL_PREPROCESSING.
 
7285
-
 
7286
-2011-08-02  Jose Ruiz  <ruiz@adacore.com>
 
7287
-
 
7288
-       * gnat-style.texi: For hexadecimal numeric literals the typical
 
7289
-       grouping of digits is 4 to represent 2 bytes.
 
7290
-       A procedure spec which is split into several lines is indented two
 
7291
-       characters.
 
7292
-
 
7293
-2011-08-02  Yannick Moy  <moy@adacore.com>
 
7294
-
 
7295
-       * exp_aggr.adb (Is_Others_Aggregate): move function to other unit.
 
7296
-       * sem_aggr.adb, sem_aggr.ads (Is_Others_Aggregate): move function here
 
7297
-       (Resolve_Aggregate): issue errors in formal modes when aggregate is not
 
7298
-       properly qualified
 
7299
-       (Resolve_Array_Aggregate): issue errors in formal modes on non-static
 
7300
-       choice in array aggregate
 
7301
-       (Resolve_Extension_Aggregate): issue errors in formal modes on subtype
 
7302
-       mark as ancestor
 
7303
-       (Resolve_Record_Aggregate): issue errors in formal modes on mixed
 
7304
-       positional and named aggregate for record, or others in record
 
7305
-       aggregate, or multiple choice in record aggregate
 
7306
-       * sem_res.adb (Resolve_Logical_Op): issue errors in formal mode when
 
7307
-       array operands to logical operations AND, OR and XOR do not have the
 
7308
-       same static lower and higher bounds
 
7309
-       * sem_ch5.adb, sinfo.ads: Correct typos in comments
 
7310
-
 
7311
-2011-08-01  Robert Dewar  <dewar@adacore.com>
 
7312
-
 
7313
-       * sem_util.ads, sem_util.adb, sem_ch6.adb (Last_Source_Statement):
 
7314
-       Replaces Last_Source_Node_In_Sequence.
 
7315
-       * err_vars.ads (Error_Msg_Lang): 16 is OK, don't need 4K
 
7316
-       * errout.adb (Set_Error_Msg_Lang): Takes arg with no parens, but stores
 
7317
-       parens and blank in string (this was inconsistently implemented).
 
7318
-       * errout.ads
 
7319
-       (Set_Error_Msg_Lang): Takes arg with no parens, but stores parens and
 
7320
-       blank in string (this was inconsistently implemented).
 
7321
-       * gnat1drv.adb
 
7322
-       (Set_Global_Switches): Set formal mode switches appropriately
 
7323
-       * opt.ads, opt.adb: Formal mode is now global switches, more consistent
 
7324
-       * par-prag.adb
 
7325
-       (Analyze_Pragma, case SPARK_95): Set opt switches appropriately and
 
7326
-       call Set_Error_Msg_Lang to set "spark" as language name.
 
7327
-       * par.adb: Remove unnecessary call to set formal language for errout
 
7328
-       * sem_prag.adb (P_Pragma, case SPARK_95): Set opt switches
 
7329
-       appropriately and call Set_Error_Msg_Lang to set "spark" as language
 
7330
-       name.
 
7331
-       * sem_ch4.adb (Analyze_Concatenation_Operand): remove procedure and
 
7332
-       calls to it, moved after resolution so that types are known
 
7333
-       * sem_res.adb (Resolve_Op_Concat): issue an error in formal mode if
 
7334
-       result of concatenation is not of type String
 
7335
-       (Resolve_Op_Concat_Arg): issue an error in formal mode if an operand of
 
7336
-       concatenation is not properly restricted
 
7337
-       * gnat_rm.texi: Add doc on pragma Spark_95.
 
7338
-       * gcc-interface/Makefile.in: Remove obsolete target pairs for
 
7339
-       Interfaces.C.* on VMS. Remove s-parame-vms-restrict.ads.
 
7340
-       * gcc-interface/Make-lang.in: Update dependencies.
 
7341
-
 
7342
-2011-08-01  Javier Miranda  <miranda@adacore.com>
 
7343
-
 
7344
-       * sem_disp.adb (Override_Dispatching_Operation): Enforce strictness of
 
7345
-       condition that detects if the overridden operation must replace an
 
7346
-       existing entity.
 
7347
-
 
7348
-2011-08-01  Javier Miranda  <miranda@adacore.com>
 
7349
-
 
7350
-       * exp_ch4.adb (Expand_N_Case_Expression): Propagate to the expanded
 
7351
-       code declarations inserted by Insert_Actions in each alternative of the
 
7352
-       N_Case_Expression node.
 
7353
-
 
7354
-2011-08-01  Robert Dewar  <dewar@adacore.com>
 
7355
-
 
7356
-       * sem_ch6.adb: Minor code reorganization.
 
7357
-       * sem_util.adb: Minor reformatting.
 
7358
-
 
7359
-2011-08-01  Pascal Obry  <obry@adacore.com>
 
7360
-
 
7361
-       * prj-env.adb: Remove <prefix>/lib/gpr/<target> project search path.
 
7362
-       * gnat_ugn.texi: Add documentation for VERSIONINFO Windows resource.
 
7363
-
 
7364
-2011-08-01  Yannick Moy  <moy@adacore.com>
 
7365
-
 
7366
-       * par-ch4.adb (P_Name): issue a syntax error in SPARK mode on character
 
7367
-       literal or operator symbol which is prefixed
 
7368
-       * sem_attr.adb (Analyze_Access_Attribute): issue an error in formal
 
7369
-       mode on access attributes.
 
7370
-       * sem_ch4.adb (Analyze_Concatenation_Operand): new procedure to check
 
7371
-       that concatenation operands are properly restricted in formal mode
 
7372
-       (Analyze_Concatenation, Analyze_Concatenation_Rest): call new procedure
 
7373
-       Analyze_Concatenation_Operand. Issue an error in formal mode if the
 
7374
-       result of the concatenation has a type different from String.
 
7375
-       (Analyze_Conditional_Expression, Analyze_Explicit_Dereference,
 
7376
-       Analyze_Quantified_Expression, Analyze_Slice,
 
7377
-       Analyze_Null): issue an error in formal mode on unsupported constructs
 
7378
-       * sem_ch5.adb
 
7379
-       (Analyze_Block_Statement): only issue error on source block statement
 
7380
-       * sem_util.ads, sem_util.adb (Last_Source_Node_In_Sequence): new
 
7381
-       function which returns the last node in a list of nodes for which
 
7382
-       Comes_From_Source returns True, if any
 
7383
-       * sem_ch6.adb (Check_Missing_Return): minor refactoring to use
 
7384
-       Last_Source_Node_In_Sequence
 
7385
-       * sem_ch8.adb (Analyze_Exception_Renaming, Analyze_Generic_Renaming,
 
7386
-       Analyze_Object_Renaming, Analyze_Use_Package): issue an error in formal
 
7387
-       mode on unsupported constructs
 
7388
-       * sem_ch9.adb Do not return after issuing error in formal mode, as the
 
7389
-       rest of the actions may be needed later on since the error is marked as
 
7390
-       not serious.
 
7391
-       * sinfo.ads: Typos in comments.
 
7392
-
 
7393
-2011-08-01  Pascal Obry  <obry@adacore.com>
 
7394
-
 
7395
-       * projects.texi: Minor editing.
 
7396
-
 
7397
-2011-08-01  Yannick Moy  <moy@adacore.com>
 
7398
-
 
7399
-       * err_vars.ads (Error_Msg_Lang, Error_Msg_Langlen): new variables for
 
7400
-       insertion character ~~
 
7401
-       * errout.ads, errout.adb (Formal_Error_Msg_...): remove procedures
 
7402
-       (Set_Error_Msg_Lang): new procedure which fixes the language for use
 
7403
-       with insertion character ~~
 
7404
-       (Set_Msg_Text): treat insertion character ~~
 
7405
-       * par-ch4.adb, par-ch5.adb, par-endh.adb, sem_attr.adb, sem_ch11.adb,
 
7406
-       sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_util.adb: Replace calls to
 
7407
-       Formal_Error_Msg_... procedures by equivalent Error_Msg_...
 
7408
-       procedures. Favor calls to Error_Msg_F(E) over Error_Msg_N(E). Make
 
7409
-       errors related to the formal language restriction not serious
 
7410
-       (insertion character |).
 
7411
-       * par.adb (Par): set formal language for error messages if needed
 
7412
-       * sem_ch6.adb (Check_Missing_Return): take into account possible
 
7413
-       generated statements at the end of the function
 
7414
-       * snames.ads-tmpl (Name_SPARK_95, Pragma_SPARK_95): new variable and
 
7415
-       enumeration value to define a new pragma SPARK_95
 
7416
-       * opt.ads, opt.adb (SPARK_Version_Type, SPARK_Version_Default,
 
7417
-       SPARK_Version): new type and variables to store the SPARK version
 
7418
-       (none by default).
 
7419
-       (SPARK_Mode): return True when SPARK_Version is set
 
7420
-       * par-prag.adb: Correct indentation
 
7421
-       (Prag): take Pragma_SPARK_95 into account
 
7422
-       * sem_prag.adb (Set_Mechanism_Value, Sig_Flags): take Pragma_SPARK_95
 
7423
-       into account.
 
7424
-
 
7425
-2011-08-01  Robert Dewar  <dewar@adacore.com>
 
7426
-
 
7427
-       * sem_ch3.adb, sem_ch3.ads, sem_ch5.adb, prj-part.adb, par-ch4.adb,
 
7428
-       sem_util.adb, sem_ch4.adb, sem_ch6.adb, sem_ch6.ads, sem_ch8.adb,
 
7429
-       sem_ch8.ads, sem_ch13.ads, par-ch5.adb, prj-env.ads: Minor reformatting
 
7430
-
 
7431
-2011-08-01  Pascal Obry  <obry@adacore.com>
 
7432
-
 
7433
-       * prj-part.ads, prj-part.adb (Parse): Add Target_Name parameter. Pass
 
7434
-       Target_Name to Get_Path call.
 
7435
-       (Parse_Single_Project): Likewise.
 
7436
-       (Post_Parse_Context_Clause): Likewise.
 
7437
-       * prj-env.ads, prj-env.adb (Find_Project): Add Target_Name parameter.
 
7438
-       Call Initialise_Project_Path with the proper Target_Name.
 
7439
-       (Initialize_Project_Path): Add <gnat_root>/<target_name>/lib/gnat
 
7440
-       search path.
 
7441
-       (Get_Path): Add Target_Name parameter. Call Initialise_Project_Path
 
7442
-       with the proper Target_Name.
 
7443
-       * prj-conf.adb (Get_Or_Create_Configuration_File): Pass Target_Name to
 
7444
-       Part.Parse routine.
 
7445
-       (Parse_Project_And_Apply_Config): Likewise.
 
7446
-       * prj-makr.adb (Initialize): Pass empty Target_Name to Parse routine.
 
7447
-       This is fine as this part of the code is supporting only native
 
7448
-       compilation.
 
7449
-       * prj-pars.adb (Parse): Pass empty Target_Name to Parse routine. This
 
7450
-       is fine as this part of the code is supporting only native compilation.
 
7451
-
 
7452
-2011-08-01  Yannick Moy  <moy@adacore.com>
 
7453
-
 
7454
-       * sem_util.adb (Enter_Name): issue error in formal mode on declaration
 
7455
-       of homonym, unless the homonym is one of the cases allowed in SPARK
 
7456
-       * par-ch5.adb (Parse_Decls_Begin_End): issue error in SPARK mode for
 
7457
-       package declaration occurring after a body.
 
7458
-
 
7459
-2011-08-01  Robert Dewar  <dewar@adacore.com>
 
7460
-
 
7461
-       * checks.adb, exp_ch4.adb: Minor reformatting.
 
7462
-
 
7463
-2011-08-01  Javier Miranda  <miranda@adacore.com>
 
7464
-
 
7465
-       * einfo.ads (Access_Disp_Table): Fix documentation.
 
7466
-       (Dispatch_Table_Wrappers): Fix documentation.
 
7467
-
 
7468
-2011-08-01  Pascal Obry  <obry@adacore.com>
 
7469
-
 
7470
-       * prj-env.adb, prj-env.ads: Minor reformatting.
 
7471
-
 
7472
-2011-08-01  Yannick Moy  <moy@adacore.com>
 
7473
-
 
7474
-       * sem_util.ads, sem_util.adb, par.adb, par_util.adb
 
7475
-       (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
 
7476
-       procedures out of these packages.
 
7477
-       * errout.ads, errout.adb
 
7478
-       (Formal_Error_Msg, Formal_Error_Msg_N, Formal_Error_Msg_SP): move
 
7479
-       procedures in of this package
 
7480
-       (Formal_Error_Msg_NE): new procedure for wrapper on Error_Msg_NE
 
7481
-       * par-ch5.adb (Parse_Decls_Begin_End): issue syntax error in SPARK mode
 
7482
-       on misplaced later vs initial declarations, like in Ada 83
 
7483
-       * sem_attr.adb (Processing for Analyze_Attribute): issue error in
 
7484
-       formal mode on attribute of private type whose full type declaration
 
7485
-       is not visible
 
7486
-       * sem_ch3.adb (Analyze_Declarations): issue error in formal mode on a
 
7487
-       package declaration inside a package specification
 
7488
-       (Analyze_Full_Type_Declaration): issue error in formal mode on
 
7489
-       controlled type or discriminant type
 
7490
-       * sem_ch6.adb (Analyze_Subprogram_Specification): only issue error on
 
7491
-       user-defined operator means that it should come from the source
 
7492
-       (New_Overloaded_Entity): issue error in formal mode on overloaded
 
7493
-       entity.
 
7494
-       * sem_ch6.ads, sem_ch13.ads: typos in comments.
 
7495
-
 
7496
-2011-08-01  Thomas Quinot  <quinot@adacore.com>
 
7497
-
 
7498
-       * atree.adb: Minor reformatting.
 
7499
-       * checks.adb: Minor reformatting.
 
7500
-
 
7501
-2011-08-01  Vincent Celier  <celier@adacore.com>
 
7502
-
 
7503
-       * s-parame-vms-ia64.ads: Fix typo in comment
 
7504
-       Minor reformatting
 
7505
-       * s-parame-vms-restrict.ads: Removed, unused.
 
7506
-
 
7507
-2011-08-01  Javier Miranda  <miranda@adacore.com>
 
7508
-
 
7509
-       * exp_ch3.adb
 
7510
-       (Is_Variable_Size_Array): Remove local subprogram Is_Constant_Bound.
 
7511
-       * sem_ch3.adb
 
7512
-       (Constrain_Index): Remove side effects in the evaluation of the bounds.
 
7513
-       * sem_ch3.ads, sem_ch3.adb
 
7514
-       (Is_Constant_Bound): New extended version of the subprogram that was
 
7515
-       previously located inside function Exp_Ch3.Is_Variable_Size_Array.
 
7516
-       Moved here since it is shared by routines of sem_ch3 and exp_ch3.
 
7517
-       * sem_aux.ads (Constant_Value): Fix typo in comment.
 
7518
-       * checks.adb (Generate_Index_Checks): New implementation which, for
 
7519
-       array objects with constant bounds, generates the runtime check
 
7520
-       referencing the bounds of the array type. For other cases this routine
 
7521
-       provides its previous behavior obtaining such values from the array
 
7522
-       object.
 
7523
-       * sem_res.adb (Set_Slice_Subtype): Link a copied range subtree with its
 
7524
-       parent type.
 
7525
-       * atree.adb (New_Copy): Reset flag Is_Overloaded in the new copy since
 
7526
-       we cannot have semantic interpretations of the new node.
 
7527
-
 
7528
-2011-08-01  Ed Schonberg  <schonberg@adacore.com>
 
7529
-
 
7530
-       * sem_ch6.adb (Fully_Conformant_Expressions): handle quantified
 
7531
-       expressions.
 
7532
-
 
7533
-2011-08-01  Arnaud Charlet  <charlet@adacore.com>
 
7534
-
 
7535
-       * sem_ch8.adb: Minor code editing.
 
7536
-       * s-vxwext.adb: Remove trailing space.
 
7537
-       * freeze.adb, freeze.ads, errout.ads, erroutc.adb: Fix GPLv3 header for
 
7538
-       consistency with other files.
 
7539
-
 
7540
-2011-08-01  Thomas Quinot  <quinot@adacore.com>
 
7541
-
 
7542
-       * s-auxdec.ads, s-auxdec-vms_64.ads: Minor reformatting.
 
7543
-
 
7544
-2011-08-01  Ed Schonberg  <schonberg@adacore.com>
 
7545
-
 
7546
-       * par-ch10.adb: reject parameterized expressions as compilation unit.
 
7547
-       * sem_ch4.adb: handle properly conditional expression with overloaded
 
7548
-       then_clause and no else_clause.
 
7549
-
 
7550
-2011-08-01  Tristan Gingold  <gingold@adacore.com>
 
7551
-
 
7552
-       * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: Redeclare C_Address
 
7553
-       like done by System.Aux_DEC.
 
7554
-       * env.c (__gnat_setenv) [VMS]: Put logicals into LNM$PROCESS table.
 
7555
-
 
7556
-2011-08-01  Yannick Moy  <moy@adacore.com>
 
7557
-
 
7558
-       * par-endh.adb (Check_End): issue a syntax error in SPARK mode for
 
7559
-       missing label at end of declaration (subprogram or package)
 
7560
-       * par-ch4.adb (P_Name): issue a syntax error in SPARK mode for mixing
 
7561
-       of positional and named parameter association
 
7562
-       * par.adb, par-util.adb (Formal_Error_Msg_SP): new wrapper on
 
7563
-       Error_Msg_SP which adds a prefix to the error message giving the name
 
7564
-       of the formal language analyzed
 
7565
-       * sem_ch6.adb (Analyze_Return_Type): issue an error in formal mode for
 
7566
-       access result type in subprogram, unconstrained array as result type,.
 
7567
-       (Analyze_Subprogram_Declaration): issue an error in formal mode for null
 
7568
-       procedure
 
7569
-       * sem_ch8.adb: Code clean up.
 
7570
-
 
7571
-2011-08-01  Javier Miranda  <miranda@adacore.com>
 
7572
-
 
7573
-       * sem_ch7.adb (Uninstall_Declarations): Remove useless code.
 
7574
-       * einfo.ads (Access_Disp_Table): Fix documentation.
 
7575
-       (Dispatch_Table_Wrappers): Fix documentation.
 
7576
-       * einfo.adb (Access_Disp_Table, Dispatch_Table_Wrappers,
 
7577
-       Set_Access_Disp_Table, Set_Dispatch_Table_Wrappers): Fix the assertions
 
7578
-       to enforce the documentation of this attribute.
 
7579
-       (Set_Is_Interface): Cleanup the assertion.
 
7580
-       * exp_ch4.adb (Expand_Allocator_Expression, Tagged_Membership): Locate
 
7581
-       the Underlying_Type entity before reading attribute Access_Disp_Table.
 
7582
-       * exp_disp.adb (Expand_Dispatching_Call, Expand_Interface_Conversion):
 
7583
-       Locate the Underlying_Type before reading attribute Access_Disp_Table.
 
7584
-       * exp_aggr.adb (Build_Array_Aggr_Code, Build_Record_Aggr_Code): Locate
 
7585
-       the Underlying_Type entity before reading attribute Access_Disp_Table.
 
7586
-       * exp_ch3.adb (Build_Record_Init_Proc, Expand_N_Object_Declaration):
 
7587
-       Locate the Underlying_Type entity before reading attribute
 
7588
-       Access_Disp_Table.
 
7589
-
 
7590
-2011-08-01  Ed Schonberg  <schonberg@adacore.com>
 
7591
-
 
7592
-       * s-poosiz.ads: Additional overriding indicators.
 
7593
-
 
7594
-2011-08-01  Yannick Moy  <moy@adacore.com>
 
7595
-
 
7596
-       * sem_ch5.adb (Analyze_Exit_Statement): add return after error in
 
7597
-       formal mode.
 
7598
-       (Analyze_Iteration_Scheme): issue error in formal mode when loop
 
7599
-       parameter specification does not include a subtype mark.
 
7600
-       * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): issue error in
 
7601
-       formal mode on abstract subprogram.
 
7602
-       (Analyze_Subprogram_Specification): issue error in formal mode on
 
7603
-       user-defined operator.
 
7604
-       (Process_Formals): issue error in formal mode on access parameter and
 
7605
-       default expression.
 
7606
-       * sem_ch9.adb (Analyze_Abort_Statement,
 
7607
-       Analyze_Accept_Statement, Analyze_Asynchronous_Select,
 
7608
-       Analyze_Conditional_Entry_Call, Analyze_Delay_Relative,
 
7609
-       Analyze_Delay_Until, Analyze_Entry_Call_Alternative,
 
7610
-       Analyze_Requeue, Analyze_Selective_Accept,
 
7611
-       Analyze_Timed_Entry_Call): issue error in formal mode on such constructs
 
7612
-       * sem_ch11.adb (Analyze_Raise_Statement, Analyze_Raise_xxx_Error):
 
7613
-       issue error in formal mode on user-defined raise statement.
 
7614
-
 
7615
-2011-08-01  Thomas Quinot  <quinot@adacore.com>
 
7616
-
 
7617
-       * sem_ch6.adb (Enter_Overloaded_Entity): Do not warn about a
 
7618
-       declaration being hidden when overriding an implicit inherited
 
7619
-       subprogram.
 
7620
-       * par-ch10.adb (P_Compilation_Unit): In syntax check only mode
 
7621
-       (-gnats), do not complain about a source file that contains only a
 
7622
-       pragma No_Body.
 
7623
-
 
7624
-2011-08-01  Ed Schonberg  <schonberg@adacore.com>
 
7625
-
 
7626
-       * sem_ch5.adb (Analyze_Iterator_Scheme): Do not overwrite type of loop
 
7627
-       variable if already set.
 
7628
-
 
7629
-2011-08-01  Arnaud Charlet  <charlet@adacore.com>
 
7630
-
 
7631
-       * g-socket-dummy.adb, s-osinte-linux.ads, g-socket-dummy.ads,
 
7632
-       g-debuti.adb, g-tasloc.adb, g-debuti.ads, g-tasloc.ads,
 
7633
-       s-osinte-hpux.ads, g-sercom.adb, g-soliop-solaris.ads, g-sercom.ads,
 
7634
-       g-sptain.ads, g-curexc.ads, s-tasloc.adb, s-tasloc.ads, s-tataat.adb,
 
7635
-       g-ctrl_c.adb, a-reatim.adb, s-tataat.ads, g-dirope.adb, g-ctrl_c.ads,
 
7636
-       g-dirope.ads, g-boubuf.adb, g-calend.adb, g-boubuf.ads, g-souinf.ads,
 
7637
-       g-table.adb, g-bytswa-x86.adb, g-wispch.adb, g-io.adb, g-table.ads,
 
7638
-       g-wispch.ads, g-io.ads, g-memdum.adb, g-memdum.ads, g-busorg.adb,
 
7639
-       g-busorg.ads, g-regpat.adb, g-sothco-dummy.adb, g-encstr.adb,
 
7640
-       g-regpat.ads, g-sothco-dummy.ads, s-osinte-aix.ads, g-encstr.ads,
 
7641
-       g-sercom-mingw.adb, s-mastop-vms.adb, g-diopit.adb, g-diopit.ads,
 
7642
-       s-vxwext.adb, g-dyntab.adb, g-dyntab.ads, g-crc32.adb,
 
7643
-       g-sercom-linux.adb, g-crc32.ads, s-regpat.adb, g-flocon.ads,
 
7644
-       s-regpat.ads, g-stheme.adb, g-sestin.ads, s-taspri-posix-noaltstack.ads,
 
7645
-       g-soliop.ads, s-inmaop-posix.adb, g-locfil.ads, g-enblsp-vms-alpha.adb,
 
7646
-       g-socthi-dummy.adb, g-socthi-dummy.ads, gnat.ads, g-moreex.adb,
 
7647
-       g-moreex.ads, g-dynhta.adb, g-dynhta.ads, g-deutst.ads, g-htable.adb,
 
7648
-       g-cgicoo.adb, g-htable.ads, g-cgicoo.ads, a-interr.adb,
 
7649
-       g-socthi-vms.adb, g-socthi-vms.ads, g-hesora.adb, g-bubsor.adb,
 
7650
-       g-hesora.ads, g-bubsor.ads, g-md5.adb, g-md5.ads, s-intman-irix.adb,
 
7651
-       s-htable.adb, s-osinte-vms.adb, s-htable.ads, s-osinte-vms.ads,
 
7652
-       s-taprob.adb, g-bytswa.adb, g-bytswa.ads, s-osinte-solaris-posix.ads,
 
7653
-       a-suenco.adb, g-comver.adb, g-comver.ads, g-exctra.adb,
 
7654
-       s-osinte-solaris.adb, g-exctra.ads, s-osinte-irix.ads,
 
7655
-       s-osinte-solaris.ads, a-caldel-vms.adb, g-socthi-vxworks.adb,
 
7656
-       g-expect.adb, g-socthi-vxworks.ads, g-expect.ads, g-comlin.ads,
 
7657
-       g-heasor.adb, g-heasor.ads, g-traceb.adb, g-traceb.ads, g-decstr.adb,
 
7658
-       g-spipat.adb, g-decstr.ads, g-spipat.ads, s-mastop-tru64.adb,
 
7659
-       g-except.ads, g-thread.adb, g-hesorg.adb, g-thread.ads, g-hesorg.ads,
 
7660
-       g-expect-vms.adb, a-stuten.ads, g-spchge.adb, g-spchge.ads,
 
7661
-       g-u3spch.adb, g-u3spch.ads, g-spitbo.adb, g-spitbo.ads,
 
7662
-       s-osinte-dummy.ads, s-osinte-posix.adb, g-pehage.adb, g-pehage.ads,
 
7663
-       s-gloloc-mingw.adb, g-sha1.ads, s-traceb-hpux.adb,
 
7664
-       g-trasym-unimplemented.adb, g-trasym-unimplemented.ads, g-io_aux.adb,
 
7665
-       g-regexp.adb, g-io_aux.ads, g-socthi-mingw.adb, g-regexp.ads,
 
7666
-       s-osinte-hpux-dce.adb, g-socthi-mingw.ads, g-cgi.adb,
 
7667
-       s-osinte-hpux-dce.ads, g-cgi.ads, g-byorma.adb, g-boumai.ads,
 
7668
-       g-byorma.ads, a-caldel.adb, s-regexp.adb, s-regexp.ads,
 
7669
-       g-soliop-mingw.ads, g-sptavs.ads, s-osinte-tru64.ads, g-speche.adb,
 
7670
-       g-speche.ads, g-socthi.adb, g-stsifd-sockets.adb, g-socthi.ads,
 
7671
-       s-osinte-darwin.ads, i-vxwork-x86.ads, g-awk.adb, i-vxwork.ads,
 
7672
-       g-awk.ads, g-zspche.adb, g-zspche.ads, g-socket.adb, g-sptabo.ads,
 
7673
-       g-socket.ads, g-semaph.adb, g-semaph.ads, s-taspri-posix.ads,
 
7674
-       g-enblsp-vms-ia64.adb, g-cgideb.adb, g-cgideb.ads, g-sothco.adb,
 
7675
-       s-osinte-freebsd.ads, g-sothco.ads, g-catiio.adb, g-casuti.adb,
 
7676
-       g-catiio.ads, g-casuti.ads, g-trasym.adb, g-trasym.ads, s-casuti.adb,
 
7677
-       g-os_lib.adb, s-traceb-mastop.adb, g-busora.adb, s-interr-dummy.adb,
 
7678
-       g-busora.ads, g-enutst.ads, s-os_lib.adb, a-tasatt.adb,
 
7679
-       s-osinte-mingw.ads: Update to GPLv3 run-time license.
 
7680
-       Use GNAT instead of GNARL.
 
7681
-
 
7682
-2011-08-01  Bob Duff  <duff@adacore.com>
 
7683
-
 
7684
-       * a-cdlili.ads, a-cihama.ads, a-coinve.ads, a-ciorse.ads, a-coorma.ads,
 
7685
-       a-cidlli.ads, a-ciormu.ads, a-cihase.ads, a-cohama.ads, a-coorse.ads,
 
7686
-       a-ciorma.ads, a-coormu.ads, a-convec.ads, a-cohase.ads: Minor
 
7687
-       reformatting.
 
7688
-
 
7689
-2011-08-01  Yannick Moy  <moy@adacore.com>
 
7690
-
 
7691
-       * debug.adb (d.D) reverve flag for the SPARK mode
 
7692
-       (d.E) reverve flag for SPARK generation mode
 
7693
-       (d.F) reverve flag for Why generation mode
 
7694
-       * opt.ads, opt.adb (ALFA_Mode, ALFA_Through_SPARK_Mode,
 
7695
-       ALFA_Through_Why_Mode, Formal_Verification_Mode, SPARK_Mode):  New
 
7696
-       functions which return True when the corresponding modes are set
 
7697
-       (Formal_Language): return "spark" or "alfa" when in formal verification
 
7698
-       mode.
 
7699
-       * sem_util.ads, sem_util.adb (Formal_Error_Msg): new wrapper on
 
7700
-       Error_Msg to prefix the error message with a tag giving the formal
 
7701
-       language
 
7702
-       (Formal_Error_Msg_N): new wrapper on Error_Msg_N to prefix the error
 
7703
-       message with a tag giving the formal language
 
7704
-       * sem_ch5.adb (Analyze_Block_Statement): issue error in formal mode on
 
7705
-       block statement
 
7706
-       (Analyze_Case_Statement): issue error in formal mode on case statement
 
7707
-       with a single "others" case alternative
 
7708
-       (Analyze_Exit_Statement): issue errors in formal mode on exit
 
7709
-       statements which do not respect SPARK restrictions
 
7710
-       (Analyze_Goto_Statement): issue error in formal mode on goto statement
 
7711
-       (Check_Unreachable_Code): always issue an error (not a warning) in
 
7712
-       formal mode on unreachable code (concerns both code after an infinite
 
7713
-       loop and after an unconditional jump, both not allowed in SPARK)
 
7714
-       * sem_ch6.adb (Analyze_Return_Statement): add call to
 
7715
-       Set_Return_Present for a procedure containing a return statement
 
7716
-       (already done for functions in Analyze_Function_Return)
 
7717
-       (Analyze_Function_Return): issue error in formal mode on extended
 
7718
-       return or if return is not last statement in function
 
7719
-       (Check_Missing_Return): issue error in formal mode if function does
 
7720
-       not end with return or if procedure contains a return
 
7721
-       * sem_ch8.ads, sem_ch8.adb (Has_Loop_In_Inner_Open_Scopes): new
 
7722
-       function to detect if there is an inner scope of its parameter S which
 
7723
-       is a loop.
 
7724
-
 
7725
-2011-08-01  Thomas Quinot  <quinot@adacore.com>
 
7726
-
 
7727
-       * sem_ch6.ads: Minor reformatting.
 
7728
-
 
7729
-2011-08-01  Javier Miranda  <miranda@adacore.com>
 
7730
-
 
7731
-       * sem_util.adb (Abstract_Interface_List): Complete condition when
 
7732
-       processing private type declarations to avoid reading unavailable
 
7733
-       attribute.
 
7734
-       (Is_Synchronized_Tagged_Type): Complete condition when processing
 
7735
-       private extension declaration nodes to avoid reading unavailable
 
7736
-       attribute.
 
7737
-
 
7738
-2011-08-01  Thomas Quinot  <quinot@adacore.com>
 
7739
-
 
7740
-       * sem_ch3.adb: Minor reformatting.
 
7741
-
 
7742
-2011-08-01  Thomas Quinot  <quinot@adacore.com>
 
7743
-
 
7744
-       * s-parame-ae653.ads, s-parame-vms-alpha.ads, s-parame-hpux.ads,
 
7745
-       i-cpoint.adb, i-cstrin.adb, i-cpoint.ads, i-cstrin.ads,
 
7746
-       s-parame-vms-ia64.ads, s-parame.ads, i-c.ads, s-parame-vxworks.ads,
 
7747
-       s-parame-vms-restrict.ads: Remove duplicated Interfaces.C.* packages
 
7748
-       for VMS, instead parametrize the common implementation with
 
7749
-       System.Parameters declarations.
 
7750
-
 
7751
-2011-08-01  Eric Botcazou  <ebotcazou@adacore.com>
 
7752
-
 
7753
-       * gnat_rm.texi: Document limitation of Pragma No_Strict_Aliasing.
 
7754
-
 
7755
-2011-08-01  Tristan Gingold  <gingold@adacore.com>
 
7756
-
 
7757
-       * seh_init.c: Fix SEH handler installation on win64.
 
7758
-
 
7759
-2011-08-01  Ed Schonberg  <schonberg@adacore.com>
 
7760
-
 
7761
-       * sem_ch3.adb (Access_Subprogram_Declaration): in Asis mode, prevent
 
7762
-       double analysis of an anonymous access to subprogram, because it can
 
7763
-       lead to improper sharing of profiles and a back-end crash.
 
7764
-
 
7765
-2011-08-01  Robert Dewar  <dewar@adacore.com>
 
7766
-
 
7767
-       * make.adb, sem_ch4.adb: Minor reformatting.
 
7768
-       * gcc-interface/Make-lang.in: Update dependencies.
 
7769
-       * sem_util.adb, exp_ch5.adb: Minor reformatting.
 
7770
-
 
7771
-2011-08-01  Arnaud Charlet  <charlet@adacore.com>
 
7772
-
 
7773
-       * gnat_rm.texi: Fix definition of Long_Integer.
 
7774
-
 
7775
-2011-08-01  Ed Schonberg  <schonberg@adacore.com>
 
7776
-
 
7777
-       * exp_aggr.adb: check limit size of static aggregate unconditionally,
 
7778
-       to prevent storage exhaustion.
 
7779
-       * exp_ch7.adb (Clean_Simple_Protected_Objects): if the scope being
 
7780
-       finalized is a function body, insert the cleanup code before the final
 
7781
-       return statement, to prevent spurious warnings.
 
7782
-       * s-pooglo.ads: add overriding indicator.
 
7783
-
 
7784
-2011-08-01  Ed Schonberg  <schonberg@adacore.com>
 
7785
-
 
7786
-       * sem_ch4.adb (Operator_Check): improve error message when both a
 
7787
-       with_clause and a use_clause are needed to make operator usage legal.
 
7788
-       * sem_util.ads, sem_util.adb (Unit_Is_Visible): new predicate to
 
7789
-       determine whether a compilation unit is visible within an other,
 
7790
-       either through a with_clause in the current unit, or a with_clause in
 
7791
-       its library unit or one one of its parents.
 
7792
-
 
7793
-2011-08-01  Ed Schonberg  <schonberg@adacore.com>
 
7794
-
 
7795
-       * exp_ch5.adb (Expand_N_Iterator_Loop): handle properly an iterator
 
7796
-       over an arbitrary expression of an array or container type.
 
7797
-       * lib-xref.adb: clarify comment.
 
7798
-
 
7799
-2011-08-01  Bob Duff  <duff@adacore.com>
 
7800
-
 
7801
-       * einfo.ads: Minor reformatting.
 
7802
-       * debug.adb: Minor comment improvement.
 
7803
-
 
7804
-2011-08-01  Javier Miranda  <miranda@adacore.com>
 
7805
-
 
7806
-       * sem_ch4.adb (Try_Object_Operation): For class-wide subprograms do not
 
7807
-       consider hidden subprograms as valid candidates.
 
7808
-
 
7809
-2011-08-01  Arnaud Charlet  <charlet@adacore.com>
 
7810
-
 
7811
-       * make.adb (Compile): Strip -mxxx switches in CodePeer mode.
 
7812
-
 
7813
-2011-08-01  Vasiliy Fofanov  <fofanov@adacore.com>
 
7814
-
 
7815
-       * gnat_ugn.texi: Fix typo.
 
7816
-
 
7817
-2011-08-01  Robert Dewar  <dewar@adacore.com>
 
7818
-
 
7819
-       * i-cstrin.adb, sem_util.adb, exp_ch11.adb, sem_ch8.adb,
 
7820
-       lib-xref.adb: Minor reformatting
 
7821
-
 
7822
-2011-08-01  Gary Dismukes  <dismukes@adacore.com>
 
7823
-
 
7824
-       * exp_ch6.adb (Expand_N_Extended_Return_Statement): Replace test of
 
7825
-       when to generate a call to Move_Final_List.
 
7826
-       (Has_Controlled_Parts): Remove this function.
 
7827
-
 
7828
-2011-08-01  Geert Bosch  <bosch@adacore.com>
 
7829
-
 
7830
-       * par-ch3.adb (P_Discrete_Choice_List): Improve error message for extra
 
7831
-       "," in choice list.
 
7832
-
 
7833
-2011-08-01  Thomas Quinot  <quinot@adacore.com>
 
7834
-
 
7835
-       * exp_ch11.adb (Expand_N_Raise_Statement): Mark N_Raise_xxx_Error for
 
7836
-       explicit raise of a predefined exception as Comes_From_Source if the
 
7837
-       original N_Raise_Statement comes from source.
 
7838
-
 
7839
-2011-08-01  Robert Dewar  <dewar@adacore.com>
 
7840
-
 
7841
-       * sinfo.ads: Add comment.
 
7842
-       * sem_ch6.adb: Minor reformatting.
 
7843
-
 
7844
-2011-08-01  Robert Dewar  <dewar@adacore.com>
 
7845
-
 
7846
-       * freeze.adb (Freeze_Entity): Refine check for bad component size
 
7847
-       clause to avoid rejecting confirming clause when atomic/aliased present.
 
7848
-
 
7849
-2011-08-01  Ed Schonberg  <schonberg@adacore.com>
 
7850
-
 
7851
-       * sem_ch8.adb (Find_Direct_Name, Analyze_Expanded_Name): use Is_LHS to
 
7852
-       better determine whether an entity reference is a write.
 
7853
-       * sem_util.adb (Is_LHS): refine predicate to handle assignment to a
 
7854
-       subcomponent.
 
7855
-       * lib-xref.adb (Output_References): Do no suppress a read reference at
 
7856
-       the same location as an immediately preceeding modify-reference, to
 
7857
-       handle properly in-out actuals.
 
7858
-
 
7859
-2011-08-01  Tristan Gingold  <gingold@adacore.com>
 
7860
-
 
7861
-       * env.c (__gnat_setenv) [VMS]: Refine previous change.
 
7862
-
 
7863
-2011-08-01  Quentin Ochem  <ochem@adacore.com>
 
7864
-
 
7865
-       * i-cstrin.adb (New_String): Changed implementation, now uses only the
 
7866
-       heap to compute the result.
 
7867
-
 
7868
-2011-08-01  Robert Dewar  <dewar@adacore.com>
 
7869
-
 
7870
-       * atree.ads: Minor reformatting.
 
7871
-
 
7872
-2011-08-01  Emmanuel Briot  <briot@adacore.com>
 
7873
-
 
7874
-       * g-expect.adb (Get_Command_Output): Fix memory leak.
 
7875
-
 
7876
-2011-08-01  Geert Bosch  <bosch@adacore.com>
 
7877
-
 
7878
-       * cstand.adb (P_Float_Type): New procedure to print the definition of
 
7879
-       predefined fpt types.
 
7880
-       (P_Mixed_Name): New procedure to print a name using mixed case
 
7881
-       (Print_Standard): Use P_Float_Type for printing floating point types
 
7882
-       * einfo.adb (Machine_Emax_Value): Add preliminary support for quad
 
7883
-       precision IEEE float.
 
7884
-
 
7885
-2011-08-01  Thomas Quinot  <quinot@adacore.com>
 
7886
-
 
7887
-       * sem_ch3.adb: Minor reformatting.
 
7888
-
 
7889
-2011-08-01  Ed Schonberg  <schonberg@adacore.com>
 
7890
-
 
7891
-       * sem_ch6.adb (Analyze_Parameterized_Expression): If the expression is
 
7892
-       the completion of a generic function, insert the new body rather than
 
7893
-       rewriting the original.
 
7894
-
 
7895
-2011-08-01  Yannick Moy  <moy@adacore.com>
 
7896
-
 
7897
-       * sinfo.ads, errout.ads: Typos in comments.
 
7898
-
 
7899
-2011-08-01  Robert Dewar  <dewar@adacore.com>
 
7900
-
 
7901
-       * par-endh.adb: Minor reformatting.
 
7902
-
 
7903
-2011-08-01  Robert Dewar  <dewar@adacore.com>
 
7904
-
 
7905
-       * aspects.ads, aspects.adb: Add aspects for library unit pragmas
 
7906
-       (Pre_Post_Aspects): New subtype.
 
7907
-       * par-ch12.adb (P_Generic): New syntax for aspects in packages
 
7908
-       * par-ch13.adb (P_Aspect_Specifications): Add Semicolon parameter
 
7909
-       * par-ch7.adb (P_Package): Remove Decl parameter
 
7910
-       (P_Package): Handle new syntax for aspects (before IS)
 
7911
-       * par-ch9.adb (P_Protected_Definition): Remove Decl parameter, handle
 
7912
-       new aspect syntax
 
7913
-       (P_Task_Definition): Remove Decl parameter, handle new aspect syntax
 
7914
-       * par.adb (P_Aspect_Specifications): Add Semicolon parameter
 
7915
-       (P_Package): Remove Decl parameter
 
7916
-       * sem_ch13.adb (Analyze_Aspect_Specifications): Handle library unit
 
7917
-       aspects
 
7918
-       * sem_ch7.adb (Analyze_Package_Declaration): Analyze new format aspect
 
7919
-       specs
 
7920
-       * sem_util.ads, sem_util.adb (Static_Boolean): New function
 
7921
-       * sinfo.ads: Document new syntax for aspects in packages etc.
 
7922
-       * sprint.adb: Handle new syntax of aspects before IS in package
 
7923
-
 
7924
-2011-08-01  Thomas Quinot  <quinot@adacore.com>
 
7925
-
 
7926
-       * atree.ads: Minor reformatting.
 
7927
-       * sem_prag.adb: Minor reformatting.
 
7928
-
 
7929
-2011-08-01  Robert Dewar  <dewar@adacore.com>
 
7930
-
 
7931
-       * exp_util.adb (Insert_Actions): Fix error in handling Actions for
 
7932
-       case expr alternative.
 
7933
-
 
7934
-2011-08-01  Ed Schonberg  <schonberg@adacore.com>
 
7935
-
 
7936
-       * sem_ch12.adb: Fix typo.
 
7937
-
 
7938
-2011-08-01  Geert Bosch  <bosch@adacore.com>
 
7939
-
 
7940
-       * sem_prag.adb (Check_No_Link_Name): New procedure.
 
7941
-       (Process_Import_Or_Interface): Use Check_No_Link_Name.
 
7942
-       * cstand.adb (Create_Standard): Use Esize (Standard_Long_Long_Float)
 
7943
-       instead of Standard_Long_Long_Float_Size global. Preparation for
 
7944
-       eventual removal of per type constants.
 
7945
-       * exp_util.ads (Get_Stream_Size): New function returning the stream
 
7946
-       size value of subtype E.
 
7947
-       * exp_util.adb (Get_Stream_Size): Implement new function.
 
7948
-       * exp_strm.adb (Build_Elementary_Input_Call): Use Get_Stream_Size
 
7949
-       function.
 
7950
-       * exp_attr.adb (Attribute_Stream_Size): Use Get_Stream_Size
 
7951
-       * einfo.adb:
 
7952
-       (Machine_Mantissa_Value): Handle 128-bit quad precision IEEE floats
 
7953
-
 
7954
-2011-08-01  Geert Bosch  <bosch@adacore.com>
 
7955
-
 
7956
-       * cstand.adb: Fix comments.
 
7957
-       * sem_prag.adb (Analyze_Pragma): Use List_Length instead of explicit
 
7958
-       count of arguments.
 
7959
-
 
7960
-2011-08-01  Robert Dewar  <dewar@adacore.com>
 
7961
-
 
7962
-       * exp_ch4.adb, sem_cat.adb: Minor reformatting.
 
7963
-
 
7964
-2011-08-01  Geert Bosch  <bosch@adacore.com>
 
7965
-
 
7966
-       * atree.ads: Fix comment.
 
7967
-
 
7968
-2011-08-01  Robert Dewar  <dewar@adacore.com>
 
7969
-
 
7970
-       * aspects.ads, aspects.adb (Aspect_Names): Moved from body to spec.
 
7971
-       * par-ch13.adb (P_Aspect_Specifications): Check misspelled aspect name.
 
7972
-       * par.adb: Add with for Namet.Sp.
 
7973
-       * par-tchk.adb: Minor reformatting.
 
7974
-
 
7975
-2011-08-01  Vincent Celier  <celier@adacore.com>
 
7976
-
 
7977
-       * mlib-tgt-specific-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb
 
7978
-       (Build_Dynamic_Library): Use new function Init_Proc_Name to get the name
 
7979
-       of the init procedure of a SAL.
 
7980
-       * mlib-tgt-vms_common.ads, mlib-tgt-vms_common.adb (Init_Proc_Name):
 
7981
-       New procedure.
 
7982
-
 
7983
-2011-08-01  Thomas Quinot  <quinot@adacore.com>
 
7984
-
 
7985
-       * exp_ch4.adb, s-tasini.ads, sem_attr.adb, s-soflin.ads: Minor
 
7986
-       reformatting.
 
7987
-
 
7988
-2011-08-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
 
7989
-
 
7990
-       * adaint.c (__gnat_file_time_name_attr): Get rid of warning.
 
7991
-
 
7992
-2011-08-01  Thomas Quinot  <quinot@adacore.com>
 
7993
-
 
7994
-       * sem_util.adb, sem_util.ads (Has_Overriding_Initialize): Make function
 
7995
-       conformant with its spec (return True only for types that have
 
7996
-       an overriding Initialize primitive operation that prevents them from
 
7997
-       having preelaborable initialization).
 
7998
-       * sem_cat.adb (Validate_Object_Declaration): Fix test for preelaborable
 
7999
-       initialization for controlled types in Ada 2005 or later mode.
 
8000
-
 
8001
-2011-08-01  Robert Dewar  <dewar@adacore.com>
 
8002
-
 
8003
-       * aspects.ads, aspects.adb: Add aspect Type_Invariant, Precondition,
 
8004
-       Postcondition.
 
8005
-       (Same_Aspect): New function.
 
8006
-       * sem_ch13.adb (Analyze_Aspect_Specifications): Add aspect
 
8007
-       Type_Invariant, Precondition, Postcondition.
 
8008
-       * snames.ads-tmpl: Add Name_Type_Invariant.
 
8009
-
 
8010
-2011-08-01  Robert Dewar  <dewar@adacore.com>
 
8011
-
 
8012
-       * freeze.adb (Freeze_Entity): Don't call Check_Aspect_At_Freeze_Point
 
8013
-       here.
 
8014
-       (Freeze_All_Ent): Fix error in handling inherited aspects.
 
8015
-       * sem_ch13.adb (Analyze_Aspect_Specifications): Skip aspect that is
 
8016
-       already analyzed, but don't skip entire processing of a declaration,
 
8017
-       that's wrong in some cases of declarations being rewritten.
 
8018
-       (Analyze_Aspect_Specification): Set Is_Delayed_Aspect in aspects.
 
8019
-       Don't delay for integer, string literals
 
8020
-       Treat predicates in usual manner for delay, remove special case code,
 
8021
-       not needed.
 
8022
-       (Analyze_Freeze_Entity): Make call to Check_Aspect_At_Freeze_Point
 
8023
-       (Build_Predicate_Function): Update saved expression in aspect
 
8024
-       (Build_Invariant_Procedure): Update saved expression in aspect
 
8025
-       * exp_ch4.adb (Expand_N_Selected_Component): Only do the optimization
 
8026
-       of replacement of discriminant references if the reference is simple.
 
8027
-
 
8028
-2011-08-01  Robert Dewar  <dewar@adacore.com>
 
8029
-
 
8030
-       * aspects.ads, aspects.adb: Add Static_Predicate and Dynamic_Predicate.
 
8031
-       * sem_ch13.adb (Analyze_Aspect_Specification): Add processing for
 
8032
-       Static_Predicate and Dynamic_Predicate.
 
8033
-       (Build_Predicate_Function): Add processing for Static_Predicate
 
8034
-       and Dynamic_Predicate.
 
8035
-       * sinfo.ads, sinfo.adb (From_Dynamic_Predicate): New flag
 
8036
-       (From_Static_Predicate): New flag
 
8037
-       * snames.ads-tmpl: Add Name_Static_Predicate and Name_Dynamic_Predicate
 
8038
-
 
8039
-2011-08-01  Robert Dewar  <dewar@adacore.com>
 
8040
-
 
8041
-       * usage.adb: Documentation cleanup for Ada version modes in usage.
 
8042
-       * expander.adb: Minor reformatting.
 
8043
-
 
8044
-2011-08-01  Robert Dewar  <dewar@adacore.com>
 
8045
-
 
8046
-       * atree.ads: Minor comment fix.
 
8047
-       * a-stwifi.adb, a-stzfix.adb, a-strfix.adb, a-ztexio.ads, a-textio.ads,
 
8048
-       a-witeio.ads, sem_prag.adb: Minor reformatting.
 
8049
-
 
8050
-2011-08-01  Doug Rupp  <rupp@adacore.com>
 
8051
-
 
8052
-       * env.c (__gnat_setenv) [VMS]: Force 32bit on item list structure
 
8053
-       pointers. Use descrip.h header file for convenience. Add some
 
8054
-       comments.
 
8055
-
 
8056
-2011-08-01  Robert Dewar  <dewar@adacore.com>
 
8057
-
 
8058
-       * freeze.adb (Freeze_Entity): Call Check_Aspect_At_Freeze_Point
 
8059
-       (Freeze_All): Call Check_Aspect_At_End_Of_Declarations
 
8060
-       * sem_ch13.ads, sem_ch13.adb (Check_Aspect_At_Freeze_Point):
 
8061
-       New procedure.
 
8062
-       (Check_Aspect_At_End_Of_Declarations): New procedure
 
8063
-       (Analye_Aspect_Specification): Minor changes for above procedures
 
8064
-       * sinfo.ads, sinfo.adb (Is_Delayed_Aspect): Now set in aspect
 
8065
-       specification node as well.
 
8066
-
 
8067
-2011-08-01  Pascal Obry  <obry@adacore.com>
 
8068
-
 
8069
-       * adaint.c (_gnat_stat): GetFilesAttributesEx() would fail on special
 
8070
-       Windows files. Use GetFilesAttributes() in this case to check for file
 
8071
-       existence instead of returning with an error code.
 
8072
-
 
8073
-2011-08-01  Vincent Celier  <celier@adacore.com>
 
8074
-
 
8075
-       * a-stzfix.adb, a-stwifi.adb (Replace_Slice): Fixed computation when
 
8076
-       High is above Source length.
 
8077
-
 
8078
-2011-08-01  Robert Dewar  <dewar@adacore.com>
 
8079
-
 
8080
-       * a-ztexio.ads, a-textio.ads, a-witeio.ads: Fix comment.
 
8081
-
 
8082
-2011-08-01  Robert Dewar  <dewar@adacore.com>
 
8083
-
 
8084
-       * aspects.ads (Boolean_Aspects): New subtype.
 
8085
-       * exp_ch13.adb (Expand_Freeze_Entity): Fix errors in handling aspects
 
8086
-       for derived types in cases where the parent type and derived type have
 
8087
-       aspects.
 
8088
-       * freeze.adb (Freeze_Entity): Fix problems in handling derived type
 
8089
-       with aspects when parent type also has aspects.
 
8090
-       (Freeze_Entity): Deal with delay of boolean aspects (must evaluate
 
8091
-       boolean expression at this point).
 
8092
-       * sem_ch13.adb (Analyze_Aspect_Specifications): Delay all aspects in
 
8093
-       accordance with final decision on the Ada 2012 feature.
 
8094
-       * sinfo.ads, sinfo.adb (Is_Boolean_Aspect): New flag.
 
8095
-
 
8096
-2011-08-01  Matthew Heaney  <heaney@adacore.com>
 
8097
-
 
8098
-       * a-chtgbo.adb (Delete_Node_Sans_Free): Replace iterator with selector.
 
8099
-
 
8100
-2011-08-01  Pascal Obry  <obry@adacore.com>
 
8101
-
 
8102
-       * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb:
 
8103
-       Fix Replace_Slice when High is above current string size.
 
8104
-       (Replace_Slice): Fix DL computation when High is above current
 
8105
-       string length.
 
8106
-
 
8107
-2011-08-01  Gary Dismukes  <dismukes@adacore.com>
 
8108
-
 
8109
-       * gnat_rm.texi: Add documentation for pragma Static_Elaboration_Desired.
 
8110
-
 
8111
-2011-08-01  Matthew Heaney  <heaney@adacore.com>
 
8112
-
 
8113
-       * a-rbtgbo.adb (Delete_Node_Sans_Free): Fixed assignment to left child
 
8114
-       of node.
 
8115
-
 
8116
-2011-08-01  Pascal Obry  <obry@adacore.com>
 
8117
-
 
8118
-       * a-stzunb-shared.adb, a-strunb-shared.adb, a-stwiun-shared.adb: Minor
 
8119
-       reformatting.
 
8120
-
 
8121
-2011-08-01  Ed Schonberg  <schonberg@adacore.com>
 
8122
-
 
8123
-       * sem_attr.adb (Analyze_Attribute, case 'Access): Handle properly named
 
8124
-       access to protected subprograms in generic bodies.
 
8125
-       * sem_ch6.adb (Analyze_Subprogram_Declaration): If the context is a
 
8126
-       protected type, indicate that the convention of the subprogram is
 
8127
-       Convention_Protected, because it may be used in subsequent declarations
 
8128
-       within the protected declaration.
 
8129
-
 
8130
-2011-08-01  Vincent Celier  <celier@adacore.com>
 
8131
-
 
8132
-       * mlib-prj.adb (Build_Library): Use "ada_" as the prefix for the "init"
 
8133
-       and "final" procedures when the name of the library is "ada", to avoid
 
8134
-       duplicate symbols "adainit" and "adafinal" in executables.
 
8135
-
 
8136
-2011-08-01  Ed Schonberg  <schonberg@adacore.com>
 
8137
-
 
8138
-       * sem_attr.adb (Analyze_Attribute, case 'Result): Handle properly a
 
8139
-       quantified expression that appears within a postcondition and uses the
 
8140
-       Ada2012 'Result attribute.
 
8141
-
 
8142
-2011-07-28  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
8143
-
 
8144
-       * init.c (__gnat_error_handler): Cast reason to int.
 
8145
-       (__gnat_install_handler): Explain sa_sigaction use.
 
8146
-
 
8147
-2011-07-24  Eric Botcazou  <ebotcazou@adacore.com>
 
8148
-
 
8149
-       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: If the
 
8150
-       subprogram has copy-in copy-out parameters, try to promote the mode of
 
8151
-       the return type if it is passed in registers.
 
8152
-
 
8153
-2011-07-24  Eric Botcazou  <ebotcazou@adacore.com>
 
8154
-
 
8155
-       * gcc-interface/utils2.c (build_binary_op) <ARRAY_REF>: Do not mark the
 
8156
-       left operand as addressable.
 
8157
-
 
8158
-2011-07-24  Eric Botcazou  <ebotcazou@adacore.com>
 
8159
-
 
8160
-       * gcc-interface/gigi.h (build_function_stub): Remove.
 
8161
-       (build_return_expr): Likewise.
 
8162
-       (convert_vms_descriptor): Declare.
 
8163
-       * gcc-interface/utils.c (convert_vms_descriptor): Make global.
 
8164
-       (build_function_stub): Move to...
 
8165
-       * gcc-interface/utils2.c (build_return_expr): Move to...
 
8166
-       * gcc-interface/trans.c (build_function_stub): ...here.
 
8167
-       (build_return_expr): ...here.
 
8168
-       (Subprogram_Body_to_gnu): Add local variable for language_function.
 
8169
-       Disconnect the parameter attributes cache, if any, once done with it.
 
8170
-       Call end_subprog_body only after setting the end_locus.
 
8171
-       Build the stub associated with the function, if any, at the very end.
 
8172
-       (gnat_to_gnu) <N_Return_Statement>: Remove couple of useless local
 
8173
-       variables and streamline control flow.
 
8174
-
 
8175
-2011-07-23  Arnaud Charlet  <charlet@adacore.com>
 
8176
-
 
8177
-       PR ada/49819
 
8178
-       * gcc-interface/Makefile.in (powerpc-linux): Remove reference to
 
8179
-       g-trasym-dwarf.adb.
 
8180
-
 
8181
-2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
8182
-
 
8183
-       PR bootstrap/49794
 
8184
-       * init.c [sun && __SVR4 && !__vxworks] (__gnat_install_handler):
 
8185
-       Assign to act.sa_sigaction.
 
8186
-       * tracebak.c [USE_GENERIC_UNWINDER] (__gnat_backtrace): Cast
 
8187
-       current->return_address to char * before arithmetic.
 
8188
-
 
8189
-2011-07-22  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
8190
-
 
8191
-       * init.c [sgi] (__gnat_error_handler): Update sigaction(2) citation.
 
8192
-       Correct argument types.
 
8193
-       Extract code from reason.
 
8194
-       (__gnat_install_handler): Assign to act.sa_sigaction.
 
8195
-
 
8196
-2011-07-21  Eric Botcazou  <ebotcazou@adacore.com>
 
8197
-
 
8198
-       * gcc-interface/Make-lang.in (GNAT1_ADA_OBJS): Move ada/b_gnat1.o to...
 
8199
-       (GNAT1_OBJS): ...here.
 
8200
-
 
8201
-2011-07-15  Eric Botcazou  <ebotcazou@adacore.com>
 
8202
-
 
8203
-       PR ada/48711
 
8204
-       * g-socthi-mingw.adb (Fill): Fix formatting.
 
8205
-
 
8206
-       * gcc-interface/gigi.h: Move around comment.
 
8207
-
 
8208
-2011-07-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
 
8209
-
 
8210
-       PR ada/46350
 
8211
-       * s-taprop-hpux-dce.adb (Abort_Task): Remove unnecessary cast.
 
8212
-
 
8213
-2011-07-14  Florian Weimer  <fw@deneb.enyo.de>
 
8214
-
 
8215
-       PR ada/48711
 
8216
-       * g-socthi-mingw.adb (Fill): Guard against invalid MSG_WAITALL.
 
8217
-
 
8218
-2011-07-13  Eric Botcazou  <ebotcazou@adacore.com>
 
8219
-
 
8220
-       * gcc-interface/utils.c (build_vms_descriptor32): Skip the 32-bit
 
8221
-       range comparison if Pmode is SImode.
 
8222
-
 
8223
-2011-07-12  Laurent GUERBY  <laurent@guerby.net>
 
8224
-           Eric Botcazou  <ebotcazou@adacore.com>
 
8225
-
 
8226
-       * adadecode.c: Wrap up in extern "C" block.
 
8227
-       * adadecode.h: Likewise.
 
8228
-       * adaint.c: Likewise.  Remove 'const' keyword.
 
8229
-       * adaint.h: Likewise.
 
8230
-       * argv.c: Likewise.
 
8231
-       * atree.h: Likewise.
 
8232
-       * cio.c: Likewise.
 
8233
-       * cstreams.c: Likewise.
 
8234
-       * env.c: Likewise.
 
8235
-       * exit.c: Likewise.
 
8236
-       * fe.h: Likewise.
 
8237
-       * final.c: Likewise.
 
8238
-       * init.c: Likewise.
 
8239
-       * initialize.c: Likewise.
 
8240
-       * link.c: Likewise.
 
8241
-       * namet.h: Likewise.
 
8242
-       * nlists.h: Likewise.
 
8243
-       * raise.c: Likewise.
 
8244
-       * raise.h: Likewise.
 
8245
-       * repinfo.h: Likewise.
 
8246
-       * seh_init.c: Likewise.
 
8247
-       * targext.c: Likewise.
 
8248
-       * tracebak.c: Likewise.
 
8249
-       * uintp.h: Likewise.
 
8250
-       * urealp.h: Likewise.
 
8251
-       * xeinfo.adb: Wrap up generated C code in extern "C" block.
 
8252
-       * xsinfo.adb: Likewise.
 
8253
-       * xsnamest.adb: Likewise.
 
8254
-       * gcc-interface/gadaint.h: Wrap up in extern "C" block.
 
8255
-       * gcc-interface/gigi.h: Wrap up some prototypes in extern "C" block.
 
8256
-       * gcc-interface/misc.c: Likewise.
 
8257
-       * gcc-interface/Make-lang.in (GCC_LINK): Use LINKER.
 
8258
-       (GNAT1_C_OBJS): Remove ada/b_gnat1.o.  List ada/seh_init.o and
 
8259
-       ada/targext.o here...
 
8260
-       (GNAT_ADA_OBJS): ...and not here.
 
8261
-       (GNAT1_ADA_OBJS): Add ada/b_gnat1.o.
 
8262
-       (GNATBIND_OBJS): Reorder.
 
8263
-
 
8264
-2011-07-07  Richard Henderson  <rth@redhat.com>
 
8265
-
 
8266
-       * gcc-interface/misc.c (gnat_init_gcc_eh): Don't call
 
8267
-       dwarf2out_frame_init.
 
8268
-
 
8269
-2011-07-07  Eric Botcazou  <ebotcazou@adacore.com>
 
8270
-
 
8271
-       * gcc-interface/misc.c (gnat_init): Tweak previous change.
 
8272
-
 
8273
-2011-07-07  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
8274
-
 
8275
-       PR target/39150
 
8276
-       * gcc-interface/Makefile.in: Handle x86_64-solaris2.
 
8277
-
 
8278
-2011-07-06  Richard Guenther  <rguenther@suse.de>
 
8279
-
 
8280
-       * gcc-interface/misc.c (gnat_init): Merge calls to
 
8281
-       build_common_tree_nodes and build_common_tree_nodes_2.
 
8282
-       Re-initialize boolean_false_node.
 
8283
-
 
8284
-2011-07-02  Eric Botcazou  <ebotcazou@adacore.com>
 
8285
-           Olivier Hainque  <hainque@adacore.com>
 
8286
-           Nicolas Setton  <setton@adacore.com>
 
8287
-
 
8288
-       * gcc-interface/utils.c (record_builtin_type): Set TYPE_ARTIFICIAL on
 
8289
-       the type according to the ARTIFICIAL_P parameter.
 
8290
-       (create_type_decl): Likewise.
 
8291
-       (create_type_stub_decl): Set TYPE_ARTIFICIAL on the type to 1.
 
8292
-
 
8293
-2011-07-01  Eric Botcazou  <ebotcazou@adacore.com>
 
8294
-
 
8295
-       * gcc-interface/Make-lang.in (gnat1): Prepend '+' to the command.
 
8296
-       (gnatbind): Likewise.
 
8297
-
 
8298
-2011-06-29  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
8299
-
 
8300
-       * gcc-interface/Makefile.in (TOOLS_LIBS): Add $(LIBINTL).
 
8301
-
 
8302
-2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
 
8303
-
 
8304
-       * gcc-interface/decl.c (gnat_to_gnu_component_type): Use GNAT_TYPE
 
8305
-       local variable throughout.  Remove useless call to Base_Type.
 
8306
-       (gnat_to_gnu_field): Use GNAT_FIELD_TYPE local variable throughout.
 
8307
-       Take it also into account for the volatileness of the field.  Set the
 
8308
-       TREE_SIDE_EFFECTS flag as well in this case.  Reorder some warnings.
 
8309
-
 
8310
-2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
 
8311
-
 
8312
-       * gcc-interface/trans.c (Identifier_to_gnu): Don't set TREE_THIS_NOTRAP
 
8313
-       on a dereference built for a by-ref object if it has an address clause.
 
8314
-
 
8315
-2011-06-18  Eric Botcazou  <ebotcazou@adacore.com>
 
8316
-
 
8317
-       * einfo.ads (Address_Taken): Document use for the second argument of
 
8318
-       Asm_Input and Asm_Output attributes.
 
8319
-       * sem_attr.adb (Analyze_Attribute) <Attribute_Asm_Input>: If the second
 
8320
-       argument is an entity name, then set Address_Taken on it.
 
8321
-       <Attribute_Asm_Output>: Likewise.
 
8322
-       * gcc-interface/trans.c (lvalue_required_for_attribute_p): Handle the
 
8323
-       Attr_Asm_Input and Attr_Asm_Output attributes explicitly.
 
8324
-       (gnat_to_gnu) <N_Code_Statement>: If an operand is going to end up in
 
8325
-       memory and is a CONST_DECL, retrieve its corresponding VAR_DECL.
 
8326
-
 
8327
-2011-06-16  Joern Rennecke  <joern.rennecke@embecosm.com>
 
8328
-
 
8329
-       PR middle-end/46500
 
8330
-       * gcc-interface/decl.c (gnat_to_gnu_param): Use pack_cumulative_args.
 
8331
-
 
8332
-2011-06-14  Joseph Myers  <joseph@codesourcery.com>
 
8333
-
 
8334
-       * gcc-interface/Make-lang.in (gnatbind$(exeext)): Use ggc-none.o.
 
8335
-       (ada/utils.o): Update dependencies.
 
8336
-       * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Add
 
8337
-       ../../../libcpp/libcpp.a.
 
8338
-       * gcc-interface/utils.c: Include common/common-target.h.
 
8339
-       (process_attributes): Use targetm_common.have_named_sections.
 
8340
-
 
8341
-2011-06-07  Richard Guenther  <rguenther@suse.de>
 
8342
-
 
8343
-       * gcc-interface/misc.c (gnat_init): Do not set size_type_node or call
 
8344
-       set_sizetype.
 
8345
-
 
8346
-2011-06-06  Eric Botcazou  <ebotcazou@adacore.com>
 
8347
-
 
8348
-       * gcc-interface/utils2.c (gnat_stabilize_reference): Propagate the
 
8349
-       TREE_THIS_NOTRAP flag.
 
8350
-
 
8351
-2011-06-06  Eric Botcazou  <ebotcazou@adacore.com>
 
8352
-
 
8353
-       * gcc-interface/utils2.c (gnat_stabilize_reference) <COMPOUND_EXPR>:
 
8354
-       Fix thinko.
 
8355
-
 
8356
-2011-06-06  Eric Botcazou  <ebotcazou@adacore.com>
 
8357
-
 
8358
-       * gcc-interface/trans.c (Identifier_to_gnu): Also handle deferred
 
8359
-       constants whose full view has discriminants specially.
 
8360
-
 
8361
-2011-06-06  Eric Botcazou  <ebotcazou@adacore.com>
 
8362
-
 
8363
-       * gcc-interface/utils.c: Include diagnostic.h.
 
8364
-       (gnat_write_global_declarations): Output debug information for all
 
8365
-       global type declarations before finalizing the compilation unit.
 
8366
-       * gcc-interface/Make-lang.in (ada/utils.o): Add dependency.
 
8367
-
 
8368
-2011-05-25  Jakub Jelinek  <jakub@redhat.com>
 
8369
-
 
8370
-       * gcc-interface/utils.c (def_fn_type): Remove extra va_end.
 
8371
-
 
8372
-2011-05-25  Kai Tietz  <ktietz@redhat.com>
 
8373
-
 
8374
-       * adaint.c (__gnat_to_canonical_file_list_next): Use array
 
8375
-       initialization instead of const/none-const pointer assignment.
 
8376
-
 
8377
-2011-05-24  Joseph Myers  <joseph@codesourcery.com>
 
8378
-
 
8379
-       * gcc-interface/Make-lang.in (GNAT1_OBJS): Don't include
 
8380
-       $(EXTRA_GNAT1_OBJS).
 
8381
-       (GNATBIND_OBJS): Don't include $(EXTRA_GNATBIND_OBJS).
 
8382
-       (EXTRA_GNAT1_OBJS, EXTRA_GNATBIND_OBJS): Remove.
 
8383
-       (gnat1$(exeext), gnatbind$(exeext)): Use libcommon-target.a.
 
8384
-       * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use
 
8385
-       libcommon-target.a instead of prefix.o.
 
8386
-
 
8387
-2011-05-21  Joseph Myers  <joseph@codesourcery.com>
 
8388
-
 
8389
-       PR ada/49097
 
8390
-       * gcc-interface/Make-lang.in (gnatbind$(exeext)): Depend on $(LIBDEPS).
 
8391
-
 
8392
-2011-05-20  Joseph Myers  <joseph@codesourcery.com>
 
8393
-
 
8394
-       * gcc-interface/Make-lang.in (EXTRA_GNATBIND_OBJS): Remove version.o.
 
8395
-       * gcc-interface/Makefile.in (EXTRA_GNATTOOLS_OBJS): Use libcommon.a
 
8396
-       instead of version.o.
 
8397
-
 
8398
-2011-05-18  Kai Tietz  <ktietz@redhat.com>
 
8399
-
 
8400
-       * gcc-interface/trans.c (Exception_Handler_to_gnu_sjlj): Use
 
8401
-       boolean_false_node instead of integer_zero_node.
 
8402
-       (convert_with_check): Likewise.
 
8403
-       * gcc-interface/decl.c (choices_to_gnu): Likewise.
 
8404
-
 
8405
-2011-05-12  Eric Botcazou  <ebotcazou@adacore.com>
 
8406
-
 
8407
-       * gcc-interface/trans.c (call_to_gnu): In the by-reference case, if the
 
8408
-       type of the parameter is an unconstrained array, convert the actual to
 
8409
-       the type of the formal in the In Out and Out cases as well.
 
8410
-
 
8411
-2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
 
8412
-
 
8413
-       * gcc-interface/utils.c (def_fn_type): Don't call build_function_type;
 
8414
-       call build_function_type_array or build_varargs_function_type_array
 
8415
-       instead.
 
8416
-       (create_subprog_type): Don't call build_function_type; call
 
8417
-       build_function_type_vec instead.
 
8418
-
 
8419
-2011-05-11  Nathan Froyd  <froydnj@codesourcery.com>
 
8420
-
 
8421
-       * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE): Use TYPE_MINVAL.
 
8422
-       (TYPE_GCC_MIN_VALUE): Use TYPE_MINVAL.
 
8423
-       (TYPE_GCC_MAX_VALUE): Use TYPE_MAXVAL.
 
8424
-
 
8425
-2011-05-07  Eric Botcazou  <ebotcazou@adacore.com>
 
8426
-
 
8427
-       * gcc-interface/decl.c (intrin_arglists_compatible_p): Remove spaces.
 
8428
-
 
8429
-       * gcc-interface/gigi.h (global_bindings_p): Adjust prototype.
 
8430
-       * gcc-interface/utils.c (global_bindings_p): Return bool and simplify.
 
8431
-
 
8432
-2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
 
8433
-
 
8434
-       * gcc-interface/trans.c (Case_Statement_to_gnu): Call build_case_label.
 
8435
-
 
8436
-2011-05-05  Nathan Froyd  <froydnj@codesourcery.com>
 
8437
-
 
8438
-       * gcc-interface/decl.c (intrin_arglists_compatible_p): Use iterators
 
8439
-       instead of accessing TYPE_ARG_TYPES directly.
 
8440
-       * gcc-interface/utils.c (handle_nonnull_attribute): Likewise.
 
8441
-
 
8442
-2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
 
8443
-
 
8444
-       PR ada/48844
 
8445
-       * gcc-interface/gigi.h (get_variant_part): Declare.
 
8446
-       * gcc-interface/decl.c (get_variant_part): Make global.
 
8447
-       * gcc-interface/utils2.c (find_common_type): Do not return T1 if the
 
8448
-       types have the same constant size, are record types and T1 has a
 
8449
-       variant part while T2 doesn't.
 
8450
-
 
8451
-2011-05-05  Eric Botcazou  <ebotcazou@adacore.com>
 
8452
-
 
8453
-       * gcc-interface/utils.c (begin_subprog_body): Do not call
 
8454
-       get_pending_sizes.
 
8455
-       (end_subprog_body): Likewise.
 
8456
-
 
8457
-2011-05-04  Richard Guenther  <rguenther@suse.de>
 
8458
-
 
8459
-       * gcc-interface/trans.c (gnat_to_gnu): Remove zero notrunc argument to
 
8460
-       int_const_binop.
 
8461
-       (pos_to_constructor): Likewise.
 
8462
-
 
8463
-2011-05-03  Nathan Froyd  <froydnj@codesourcery.com>
 
8464
-           Eric Botcazou  <ebotcazou@adacore.com>
 
8465
-
 
8466
-       * gcc-interface/trans.c (gigi): Call build_function_type_list instead
 
8467
-       of build_function_type.  Adjust calls to...
 
8468
-       (build_raise_check): ...this.  Do not take a void_tree parameter.
 
8469
-       Call build_function_type_list instead of build_function_type.
 
8470
-       Fix head comment and swap couple of conditional blocks.
 
8471
-
 
8472
-2011-04-30  Eric Botcazou  <ebotcazou@adacore.com>
 
8473
-
 
8474
-       * gnatvsn.ads (Library_Version): Bump to 4.7.
 
8475
-       (Current_Year): Bump to 2011.
 
8476
-
 
8477
-2011-04-29  Michael Matz  <matz@suse.de>
 
8478
-
 
8479
-       * gcc-interface/misc.c (gnat_handle_option): Set
 
8480
-       warn_maybe_uninitialized.
 
8481
-
 
8482
-2011-04-23  Gerald Pfeifer  <gerald@pfeifer.com>
 
8483
-
 
8484
-       * gnat_ugn.texi (Complexity Metrics Control): Update link to
 
8485
-       the Watson/McCabe paper.
 
8486
-
 
8487
-2011-04-23  Jim Meyering  <meyering@redhat.com>
 
8488
-
 
8489
-       * gnat_ugn.texi (Examples of gnatxref Usage): Fix typo: s/it it/it is/
 
8490
-
 
8491
-2011-04-22  Eric Botcazou  <ebotcazou@adacore.com>
 
8492
-
 
8493
-       * gcc-interface/decl.c (make_packable_type): Copy DECL_PARALLEL_TYPE
 
8494
-       onto the new type.
 
8495
-
 
8496
-2011-04-22  Eric Botcazou  <ebotcazou@adacore.com>
 
8497
-
 
8498
-       * gcc-interface/gigi.h (create_subprog_decl): Add ARTIFICIAL_FLAG
 
8499
-       parameter.
 
8500
-       * gcc-interface/utils.c (create_subprog_decl): Likewise.  Set
 
8501
-       DECL_ARTIFICIAL and DECL_NO_INLINE_WARNING_P on the DECL accordingly.
 
8502
-       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
 
8503
-       ARTIFICIAL_FLAG local variable and pass it to create_subprog_decl.
 
8504
-       <all>: Do not set flags on the reused DECL node coming from an alias.
 
8505
-       Set DECL_IGNORED_P on the DECL node built for subprograms if they
 
8506
-       don't need debug info here...
 
8507
-       * gcc-interface/trans.c (Subprogram_Body_to_gnu): ...and not here.
 
8508
-       (gigi): Adjust calls to create_subprog_decl.
 
8509
-       (build_raise_check): Likewise.
 
8510
-       (establish_gnat_vms_condition_handler): Likewise.
 
8511
-       (Compilation_Unit_to_gnu): Likewise.
 
8512
-       (gnat_to_gnu): Likewise.
 
8513
-
 
8514
-2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
 
8515
-
 
8516
-       * gcc-interface/Makefile.in (NO_SIBLING_ADAFLAGS): Always define.
 
8517
-       (NO_REORDER_ADAFLAGS): New variable.
 
8518
-       (EXTRA_GNATTOOLS): Always define.
 
8519
-       (../stamp-gnatlib1-$(RTSDIR): Copy tsystem.h.
 
8520
-       Clean up and adjust list of files compiled with special options.
 
8521
-       * gcc-interface/Make-lang.in: Likewise.
 
8522
-       (ada/decl.o): Cosmetical change.
 
8523
-       (ada/misc.o): Remove dependency on $(PLUGIN_H).
 
8524
-
 
8525
-2011-04-20  Jim Meyering  <meyering@redhat.com>
 
8526
-
 
8527
-       * initialize.c (__gnat_initialize): Remove useless if-before-free.
 
8528
-
 
8529
-2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
 
8530
-
 
8531
-       * gcc-interface/Make-lang.in (gnatbind): Replace $(ALL_CFLAGS) with
 
8532
-       $(CFLAGS) on the link line.
 
8533
-
 
8534
-2011-04-17  Eric Botcazou  <ebotcazou@adacore.com>
 
8535
-
 
8536
-       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Declare the
 
8537
-       padded type built for the return type if it is unconstrained.
 
8538
-
 
8539
-2011-04-14  Nathan Froyd  <froydnj@codesourcery.com>
 
8540
-
 
8541
-       * gcc-interface/utils.c (gnat_poplevel): Use block_chainon.
 
8542
-
 
8543
-2011-04-12  Nathan Froyd  <froydnj@codesourcery.com>
 
8544
-
 
8545
-       * gcc-interface/ada-tree.h (union lang_tree_node): Check for TS_COMMON
 
8546
-       before calling TREE_CHAIN.
 
8547
-       * gcc-interface/misc.c (gnat_init_ts): New function.
 
8548
-       (LANG_HOOKS_INIT_TS): Define.
 
8549
-
 
8550
-2011-04-12  Martin Jambor  <mjambor@suse.cz>
 
8551
-
 
8552
-       * gcc-interface/utils.c (end_subprog_body): Call cgraph_get_create_node
 
8553
-       instead of cgraph_node.
 
8554
-
 
8555
-2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
 
8556
-
 
8557
-       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Set minimum
 
8558
-       alignment on fields of the RETURN type built for the Copy-In Copy-Out
 
8559
-       mechanism.
 
8560
-
 
8561
-2011-04-08  Eric Botcazou  <ebotcazou@adacore.com>
 
8562
-
 
8563
-       * gcc-interface/trans.c (Identifier_to_gnu): Do not return initializers
 
8564
-       of aggregate types that contain a placeholder.
 
8565
-
 
8566
-2011-04-08  Nathan Froyd  <froydnj@codesourcery.com>
 
8567
-
 
8568
-       * gcc-interface/utils.c (handle_sentinel_attribute): Don't use
 
8569
-       TYPE_ARG_TYPES.
 
8570
-       (handle_type_generic_attribute): Likewise.
 
8571
-
 
8572
-2011-04-04  Eric Botcazou  <ebotcazou@adacore.com>
 
8573
-
 
8574
-       PR ada/47163
 
8575
-       * s-oscons-tmplt.c (MSG_WAITALL): Fix thinko in previous change.
 
8576
-
 
8577
-2011-04-04  Kai Tietz  <ktietz@redhat.com>
 
8578
-
 
8579
-       PR ada/47163
 
8580
-       * s-oscons-tmplt.c (MSG_WAITALL): Define it for native windows targets
 
8581
-       to flag value.
 
8582
-
 
8583
-2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>
 
8584
-
 
8585
-       * gcc-interface/utils2.c (build_allocator): In the unconstrained array
 
8586
-       type case, do not strip a padding type around the array type.
 
8587
-
 
8588
-2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>
 
8589
-
 
8590
-       * gcc-interface/utils.c (update_pointer_to): Finalize named pointer
 
8591
-       types.
 
8592
-
 
8593
-2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>
 
8594
-
 
8595
-       * gcc-interface/lang.opt (feliminate-unused-debug-types): Delete.
 
8596
-       * gcc-interface/misc.c (gnat_handle_option): Remove special handling
 
8597
-       code for -feliminate-unused-debug-types.
 
8598
-       (gnat_post_options): Likewise.
 
8599
-
 
8600
-2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>
 
8601
-
 
8602
-       * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
 
8603
-       declaration of a pointer type, then set DECL_ORIGINAL_TYPE to a
 
8604
-       distinct copy.
 
8605
-
 
8606
-2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>
 
8607
-
 
8608
-       * gcc-interface/decl.c (gnat_to_gnu_entity): Do not force the
 
8609
-       DECL_ARTIFICIAL flag on enumeration types.
 
8610
-
 
8611
-2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>
 
8612
-
 
8613
-       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Do not make
 
8614
-       fat pointer types artificial unconditionally.
 
8615
-       <E_Array_Subtype>: Attach the base array type as a parallel type if it
 
8616
-       isn't artificial.
 
8617
-
 
8618
-2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>
 
8619
-
 
8620
-       * gcc-interface/gigi.h (get_dummy_type): Declare.
 
8621
-       (build_dummy_unc_pointer_types): Likewise.
 
8622
-       (finish_fat_pointer_type): Likewise.
 
8623
-       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: If a dummy
 
8624
-       fat pointer type has been built, complete it in place.
 
8625
-       <E_Access_Type>: Call build_dummy_unc_pointer_types to build dummy fat
 
8626
-       and thin pointers.  Remove useless variable.
 
8627
-       (finish_fat_pointer_type): Make global and move to...
 
8628
-       * gcc-interface/utils.c (finish_fat_pointer_type): ...here.
 
8629
-       (get_dummy_type): New function.
 
8630
-       (build_dummy_unc_pointer_types): Likewise.
 
8631
-       (gnat_pushdecl): Propage the name to the anonymous variants only.
 
8632
-       (update_pointer_to): Only adjust the pointer types in the unconstrained
 
8633
-       array case.
 
8634
-
 
8635
-2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>
 
8636
-
 
8637
-       * gcc-interface/ada-tree.h (DECL_TAFT_TYPE_P): New flag.
 
8638
-       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Incomplete_Type>: Set it
 
8639
-       if this is a Taft amendment type and the full declaration is available.
 
8640
-       * gcc-interface/trans.c (process_type): Likewise.
 
8641
-       If there is an old type, mark the new one as used if DECL_TAFT_TYPE_P.
 
8642
-       (process_freeze_entity): Likewise.
 
8643
-       * gcc-interface/utils.c (dummy_global): New static variable.
 
8644
-       (gnat_write_global_declarations): If there are types declared as used
 
8645
-       at the global level, insert them in the global hash table.
 
8646
-
 
8647
-2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>
 
8648
-
 
8649
-       * gcc-interface/gigi.h (record_builtin_type): Add ARTIFICIAL_P param.
 
8650
-       * gcc-interface/utils.c (gnat_pushdecl): If this is a non-artificial
 
8651
-       declaration of an array type, then set DECL_ORIGINAL_TYPE to a distinct
 
8652
-       copy.
 
8653
-       (record_builtin_type): Add ARTIFICIAL_P parameter.  Set DECL_ARTIFICIAL
 
8654
-       flag of the type accordingly.
 
8655
-       * gcc-interface/trans.c (gigi): Adjust calls to record_builtin_type.
 
8656
-
 
8657
-2011-04-02  Eric Botcazou  <ebotcazou@adacore.com>
 
8658
-
 
8659
-       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
 
8660
-       finalizing types when updating the pointers to the designated type.
 
8661
-       <all>: Finalize the deferred types even if we didn't defer processing
 
8662
-       of incomplete types in this invocation.
 
8663
-
 
8664
-2011-04-01  Olivier Hainque  <hainque@adacore.com>
 
8665
-           Nicolas Setton  <setton@adacore.com>
 
8666
-           Eric Botcazou  <ebotcazou@adacore.com>
 
8667
-
 
8668
-       * gcc-interface/misc.c (gnat_descriptive_type): New function.
 
8669
-       (LANG_HOOKS_DESCRIPTIVE_TYPE): Redefine to gnat_descriptive_type.
 
8670
-
 
8671
-2011-03-28  Kai Tietz  <ktietz@redhat.com>
 
8672
-
 
8673
-       * gcc-interface/Makefile.in (SO_LIB): Handle multilib build for native
 
8674
-       Windows targets.
 
8675
-       (EH_MECHANISM): Use GCC exception mechanism for native Windows targets.
 
8676
-       * system-mingw.ads (System): Change ZCX_By_Default default to True.
 
8677
-
 
8678
-       * raise-gcc.c (PERSONALITY_FUNCTION): Add prototype.
 
8679
-
 
8680
-2011-03-28  Tristan Gingold  <gingold@adacore.com>
 
8681
-
 
8682
-       PR ada/44431
 
8683
-       * gcc-interface/Make-lang.in (ada/b_gnat1.adb): Replace ada/b_gnat1.c.
 
8684
-       Use ada output of gnatbind.
 
8685
-       (ada/b_gnatb.adb): Ditto.
 
8686
-       (ada/b_gnat1.o, ada/b_gnatb.o): New rules.
 
8687
-       (ada.mostlyclean, ada.stage1)
 
8688
-       (ada.stage2, ada.stage3, ada.stage4, ada.stageprofile)
 
8689
-       (ada.stagefeedback): Adjust.
 
8690
-       * gcc-interface/Makefile.in (b_gnatl.adb): Replace b_gnatl.c.
 
8691
-       Use ada output of gnatbind.
 
8692
-       (b_gnatm.adb): Ditto.
 
8693
-       (b_gnatl.o, b_gnatm.o): New rules.
 
8694
-
 
8695
-2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
 
8696
-
 
8697
-       * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
 
8698
-       for the padded type built to support a specified size or alignment.
 
8699
-
 
8700
-2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
 
8701
-
 
8702
-       * gcc-interface/gigi.h (finalize_from_with_types): Adjust comment.
 
8703
-       * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Access_Type>: Defer
 
8704
-       unconditionally to the end of the unit when the designated type is
 
8705
-       limited_with'ed.
 
8706
-       <all>: Rename local variable.  Attempt to un-defer types only and do it
 
8707
-       for limited_with'ed types as well.
 
8708
-       (finalize_from_with_types): Adjust comment.  Rename variable and tidy.
 
8709
-       * gcc-interface/trans.c (Compilation_Unit_to_gnu): Use GNAT_UNIT
 
8710
-       consistently and remove redundant call to finalize_from_with_types.
 
8711
-
 
8712
-2011-03-26  Eric Botcazou  <ebotcazou@adacore.com>
 
8713
-
 
8714
-       * inline.adb (Back_End_Cannot_Inline): Lift restriction on calls to
 
8715
-       subprograms without a previous spec declared in the same unit.
 
8716
-       * gcc-interface/trans.c (Compilation_Unit_to_gnu): Process inlined
 
8717
-       subprograms at the end of the unit instead of at the beginning.
 
8718
-       * gcc-interface/utils.c (create_subprog_decl): Check that the entity
 
8719
-       isn't public for the special handling of non-inline functions nested
 
8720
-       inside inline external functions.
 
8721
-
 
8722
-2011-03-25  Jeff Law  <law@redhat.com>
 
8723
-
 
8724
-       * gcc-interface/utils.c (def_fn_type): Add missing va_end.
 
8725
-
 
8726
-2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
 
8727
-
 
8728
-       * einfo.ads (Size_Depends_On_Discriminant): Adjust description.
 
8729
-       * layout.adb (Compute_Size_Depends_On_Discriminant): New procedure
 
8730
-       to compute Set_Size_Depends_On_Discriminant.
 
8731
-       (Layout_Type): Call it on array types in back-end layout mode.
 
8732
-       * sem_util.adb (Requires_Transient_Scope): Return true for array
 
8733
-       types only if the size depends on the value of discriminants.
 
8734
-       * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Use the RHS
 
8735
-       type if the RHS is a call to a function that returns an unconstrained
 
8736
-       type with default discriminant.
 
8737
-
 
8738
-2011-03-24  Eric Botcazou  <ebotcazou@adacore.com>
 
8739
-
 
8740
-       * gcc-interface/trans.c (gnat_to_gnu): Remove obsolete case of
 
8741
-       non-conversion to the nominal result type at the end.
 
8742
-
 
8743
-2011-03-23  Eric Botcazou  <ebotcazou@adacore.com>
 
8744
-
 
8745
-       * gcc-interface/trans.c (create_temporary): New function taken from...
 
8746
-       (create_init_temporary): ...here.  Call it.
 
8747
-       (call_to_gnu): Create the temporary for the return value early, if any.
 
8748
-       Create it for a function with copy-in/copy-out parameters if there is
 
8749
-       no target; in other cases of copy-in/copy-out, use another temporary.
 
8750
-       Push the new binding level lazily.  Add and rename local variables.
 
8751
-
 
8752
-2011-03-23  Eric Botcazou  <ebotcazou@adacore.com>
 
8753
-
 
8754
-       * gcc-interface/decl.c (validate_size): Improve comments and tweak
 
8755
-       error message.
 
8756
-       (set_rm_size): Likewise.
 
8757
-
 
8758
-2011-03-23  Eric Botcazou  <ebotcazou@adacore.com>
 
8759
-
 
8760
-       * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create TYPE_DECL
 
8761
-       for the padded type built in order to support a specified alignment.
 
8762
-       Fix incorrect formatting.
 
8763
-
 
8764
-2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
 
8765
-
 
8766
-       PR bootstrap/48216
 
8767
-       * gcc-interface/decl.c (elaborate_expression_1): Localize GNU_DECL.
 
8768
-
 
8769
-2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
 
8770
-
 
8771
-       * gcc-interface/decl.c (components_to_record): Add REORDER parameter,
 
8772
-       rename DEBUG_INFO_P into DEBUG_INFO and move P_GNU_REP_LIST parameter
 
8773
-       to the end of the list.  Adjust recursive call.  Rename local variable.
 
8774
-       If REORDER is true, reorder components of the record type.
 
8775
-       (gnat_to_gnu_entity): Pass OK_To_Reorder_Components flag as argument to
 
8776
-       components_to_record and adjust the parameter list.
 
8777
-
 
8778
-2011-03-21  Eric Botcazou  <ebotcazou@adacore.com>
 
8779
-
 
8780
-       * gcc-interface/decl.c (elaborate_expression_1): When optimization is
 
8781
-       disabled, use the variable for bounds of loop iteration scheme.
 
8782
-
 
8783
-2011-03-21  Kai Tietz  <ktietz@redhat.com>
 
8784
-
 
8785
-       PR target/12171
 
8786
-       * gcc-interface/utils.c (gnat_internal_attribute_table): Add column.
 
8787
-
 
8788
-2011-03-17  Eric Botcazou  <ebotcazou@adacore.com>
 
8789
-
 
8790
-       * gcc-interface/decl.c (elaborate_expression_1): Try harder to find
 
8791
-       out whether the expression is read-only.  Short-circuit placeholder
 
8792
-       case and rename a couple of local variables.
 
8793
-
 
8794
-2011-03-17  Eric Botcazou  <ebotcazou@adacore.com>
 
8795
-
 
8796
-       * gcc-interface/gigi.h (smaller_form_type_p): Declare.
 
8797
-       * gcc-interface/trans.c (smaller_form_type_p): Make global and move...
 
8798
-       * gcc-interface/utils.c (smaller_form_type_p): ...to here.
 
8799
-       (convert): Deal with conversions from a smaller form type specially.
 
8800
-
 
8801
-2011-02-14  Eric Botcazou  <ebotcazou@adacore.com>
 
8802
-
 
8803
-       * gcc-interface/misc.c (gnat_init_options): Do not concatenate -I and
 
8804
-       its argument, except for the special -I- switch.
 
8805
-
 
8806
-2011-02-12  Gerald Pfeifer  <gerald@pfeifer.com>
 
8807
-
 
8808
-       * gnat_ugn.texi (Compiling Different Versions of Ada): Update link to
 
8809
-       "Ada Issues".
 
8810
-
 
8811
-2011-02-08  Eric Botcazou  <ebotcazou@adacore.com>
 
8812
-
 
8813
-       * gcc-interface/Makefile.in (x86-64 darwin): Handle multilibs.
 
8814
-
 
8815
-2011-02-03  Eric Botcazou  <ebotcazou@adacore.com>
 
8816
-
 
8817
-       * gcc-interface/gigi.h (fill_vms_descriptor): Take GNU_TYPE instead of
 
8818
-       GNAT_FORMAL.
 
8819
-       * gcc-interface/utils2.c (fill_vms_descriptor): Move from here to...
 
8820
-       * gcc-interface/utils.c (fill_vms_descriptor): ...here.  Take GNU_TYPE
 
8821
-       instead of GNAT_FORMAL.  Protect the expression against multiple uses.
 
8822
-       Do not generate the check directly, instead instantiate the template
 
8823
-       check present in the descriptor.
 
8824
-       (make_descriptor_field): Move around.
 
8825
-       (build_vms_descriptor32): Build a template check in the POINTER field.
 
8826
-       (build_vms_descriptor): Remove useless suffixes.
 
8827
-       * gcc-interface/trans.c (call_to_gnu): Adjust fill_vms_descriptor call.
 
8828
-
 
8829
-2011-01-26  Eric Botcazou  <ebotcazou@adacore.com>
 
8830
-
 
8831
-       PR bootstrap/47467
 
8832
-       * targext.c: Include target files if IN_RTS is defined.
 
8833
-
 
8834
-2011-01-26  Richard Guenther  <rguenther@suse.de>
 
8835
-
 
8836
-       PR bootstrap/47467
 
8837
-       * targext.c: Include config.h.
 
8838
-       * gcc-interface/Make-lang.in (ada/targext.o): Add $(CONFIG_H)
 
8839
-       dependency.
 
8840
-
 
8841
-2011-01-04  Pascal Obry  <obry@adacore.com>
 
8842
-           Eric Botcazou  <ebotcazou@adacore.com>
 
8843
-
 
8844
-       * gcc-interface/decl.c: Disable Stdcall convention handling for 64-bit.
 
8845
-
 
8846
-2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
 
8847
-
 
8848
-       * gcc-interface/trans.c (Case_Statement_to_gnu): Put the SLOC of the
 
8849
-       end-of-case on the end label and its associated gotos, if any.
 
8850
-
 
8851
-2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
 
8852
-
 
8853
-       * gcc-interface/trans.c (Subprogram_Body_to_gnu): Evaluate the
 
8854
-       expressions of the parameter cache within the statement group of
 
8855
-       the CICO mechanism.
 
8856
-
 
8857
-2011-01-04  Olivier Hainque  <hainque@adacore.com>
 
8858
-           Eric Botcazou  <ebotcazou@adacore.com>
 
8859
-
 
8860
-       * gcc-interface/trans.c (BLOCK_SOURCE_END_LOCATION): Provide default.
 
8861
-       (set_end_locus_from_node): New function.
 
8862
-       (Subprogram_Body_to_gnu): Use it to mark both the inner BIND_EXPR we
 
8863
-       make and the function end_locus.
 
8864
-       (Compilation_Unit_to_gnu): Call it instead of a straight Sloc_to_locus
 
8865
-       for the elaboration subprogram.
 
8866
-       (set_gnu_expr_location_from_node) <default case>: Use it to attempt to
 
8867
-       set the end_locus of the expression as well.
 
8868
-
 
8869
-2011-01-04  Eric Botcazou  <ebotcazou@adacore.com>
 
8870
-
 
8871
-       PR ada/47131
 
8872
-       * gcc-interface/trans.c (Identifier_to_gnu): In SJLJ mode, do not make
 
8873
-       variables that are referenced in exception handlers volatile.
 
8874
-
 
8875
-
 
8876
-
 
8877
-Copyright (C) 2011 Free Software Foundation, Inc.
 
8878
-
 
8879
-Copying and distribution of this file, with or without modification,
 
8880
-are permitted in any medium without royalty provided the copyright
 
8881
-notice and this notice are preserved.
1722
8882
Index: gcc/fortran/trans-array.c
1723
8883
===================================================================
1724
8884
--- a/src/gcc/fortran/trans-array.c     (revision
323507
330667
        {
323508
330668
          pro_epilogue_adjust_stack (stack_pointer_rtx, hard_frame_pointer_rtx,
323509
330669
                                     GEN_INT (m->fs.fp_offset
 
330670
@@ -32028,7 +32080,19 @@
 
330671
 {
 
330672
   rtx this_param = x86_this_parameter (function);
 
330673
   rtx this_reg, tmp, fnaddr;
 
330674
+  unsigned int tmp_regno;
 
330675
 
 
330676
+  if (TARGET_64BIT)
 
330677
+    tmp_regno = R10_REG;
 
330678
+  else
 
330679
+    {
 
330680
+      unsigned int ccvt = ix86_get_callcvt (TREE_TYPE (function));
 
330681
+      if ((ccvt & (IX86_CALLCVT_FASTCALL | IX86_CALLCVT_THISCALL)) != 0)
 
330682
+       tmp_regno = AX_REG;
 
330683
+      else
 
330684
+       tmp_regno = CX_REG;
 
330685
+    }
 
330686
+
 
330687
   emit_note (NOTE_INSN_PROLOGUE_END);
 
330688
 
 
330689
   /* If VCALL_OFFSET, we'll need THIS in a register.  Might as well
 
330690
@@ -32054,7 +32118,7 @@
 
330691
        {
 
330692
          if (!x86_64_general_operand (delta_rtx, Pmode))
 
330693
            {
 
330694
-             tmp = gen_rtx_REG (Pmode, R10_REG);
 
330695
+             tmp = gen_rtx_REG (Pmode, tmp_regno);
 
330696
              emit_move_insn (tmp, delta_rtx);
 
330697
              delta_rtx = tmp;
 
330698
            }
 
330699
@@ -32067,18 +32131,7 @@
 
330700
   if (vcall_offset)
 
330701
     {
 
330702
       rtx vcall_addr, vcall_mem, this_mem;
 
330703
-      unsigned int tmp_regno;
 
330704
 
 
330705
-      if (TARGET_64BIT)
 
330706
-       tmp_regno = R10_REG;
 
330707
-      else
 
330708
-       {
 
330709
-         unsigned int ccvt = ix86_get_callcvt (TREE_TYPE (function));
 
330710
-         if ((ccvt & (IX86_CALLCVT_FASTCALL | IX86_CALLCVT_THISCALL)) != 0)
 
330711
-           tmp_regno = AX_REG;
 
330712
-         else
 
330713
-           tmp_regno = CX_REG;
 
330714
-       }
 
330715
       tmp = gen_rtx_REG (Pmode, tmp_regno);
 
330716
 
 
330717
       this_mem = gen_rtx_MEM (ptr_mode, this_reg);
 
330718
@@ -32153,6 +32206,19 @@
 
330719
     emit_jump_insn (gen_indirect_jump (fnaddr));
 
330720
   else
 
330721
     {
 
330722
+      if (ix86_cmodel == CM_LARGE_PIC && SYMBOLIC_CONST (fnaddr))
 
330723
+       fnaddr = legitimize_pic_address (fnaddr,
 
330724
+                                        gen_rtx_REG (Pmode, tmp_regno));
 
330725
+
 
330726
+      if (!sibcall_insn_operand (fnaddr, Pmode))
 
330727
+       {
 
330728
+         tmp = gen_rtx_REG (Pmode, tmp_regno);
 
330729
+         if (GET_MODE (fnaddr) != Pmode)
 
330730
+           fnaddr = gen_rtx_ZERO_EXTEND (Pmode, fnaddr);
 
330731
+         emit_move_insn (tmp, fnaddr);
 
330732
+         fnaddr = tmp;
 
330733
+       }
 
330734
+
 
330735
       tmp = gen_rtx_MEM (QImode, fnaddr);
 
330736
       tmp = gen_rtx_CALL (VOIDmode, tmp, const0_rtx);
 
330737
       tmp = emit_call_insn (tmp);
323510
330738
Index: gcc/config/mn10300/mn10300.c
323511
330739
===================================================================
323512
330740
--- a/src/gcc/config/mn10300/mn10300.c  (revision
323999
331227
 
324000
331228
 ;; Define the subtract-one-and-jump insns, starting with the template
324001
331229
 ;; so loop.c knows what to generate.
 
331230
Index: libgo/mksysinfo.sh
 
331231
===================================================================
 
331232
--- a/src/libgo/mksysinfo.sh    (revision
 
331233
+++ b/src/libgo/mksysinfo.sh    (revision
 
331234
@@ -522,10 +522,10 @@
 
331235
 # The rusage struct.
 
331236
 rusage=`grep '^type _rusage struct' gen-sysinfo.go`
 
331237
 if test "$rusage" != ""; then
 
331238
+  # Remove anonymous unions from GNU/Linux <bits/resource.h>.
 
331239
+  rusage=`echo $rusage | sed -e 's/Godump_[0-9]* struct {\([^}]*\)};/\1/g'`
 
331240
   rusage=`echo $rusage | sed -e 's/type _rusage struct //' -e 's/[{}]//g'`
 
331241
   rusage=`echo $rusage | sed -e 's/^ *//'`
 
331242
-  # Remove anonymous unions from GNU/Linux <bits/resource.h>.
 
331243
-  rusage=`echo $rusage | sed -e 's/Godump_[0-9]* struct {\([^}]*\)};/\1/g'`
 
331244
   nrusage=
 
331245
   while test -n "$rusage"; do
 
331246
     field=`echo $rusage | sed -e 's/^\([^;]*\);.*$/\1/'`