Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
bfeec33d
Commit
bfeec33d
authored
Aug 16, 2003
by
Nathan Sidwell
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Remove 3.4 change list, point to gcc-3.4/changes.html
From-SVN: r70506
parent
e895113a
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
1 additions
and
88 deletions
+1
-88
gcc/cp/NEWS
+1
-88
No files found.
gcc/cp/NEWS
View file @
bfeec33d
*** Changes in GCC 3.4:
*** Changes in GCC 3.4:
* The C++ parser in G++ has been rewritten from scratch. As a result, G++
* Changes in GCC 3.4 are described in 'gcc-3.4/changes.html'
is considerably more compliant to the C++ standard. As a result, it
accepts more valid programs, and rejects more invalid programs.
Many of the changes below are a consequence of the new parser.
* Friend declarations that refer to template specializations are rejected
if the template has not already been declared.
For example:
template <typename T>
class C {
friend void f<>(C&);
};
is rejected; you must first declare `f' as a template:
template <typename T>
void f(T);
* You must use "template <>" to introduce template specializations, as
required by the standard. For example:
template <typename T>
struct S;
struct S<int> { };
is rejected; you must write:
template <> struct S<int> {};
* You must now use the `typename' and `template' keywords to disambiguate
dependent names, as required by the C++ standard.
* The "named return value" extension has been removed.
* The "implicit typename" extension has been removed.
* Default arguments in function types have been deprecated and will be
removed.
* G++ used to accept code like this:
struct S {
int h();
void f(int i = g());
int g(int i = h());
};
This behavior is not mandated by the standard.
Now G++ issues an error about this code. To avoid the error, you must
move the declaration of `g' before the declaration of `f'. The
default arguments for `g' must be visible at the point where it is
called.
* When -pedantic is used, G++ now issues errors about spurious semicolons;
for example:
namespace N {}; // Invalid semicolon.
void f() {}; // Invalid semicolon.
* G++ no longer accepts attributes for a declarator after the
initializer associated with that declarator. For example:
X x(1) __attribute__((...));
is no longer accepted. Instead, use:
X x __attribute__((...)) (1);
* Covariant returns are implemented for all but varadic functions that
require an adjustment.
* Inside the scope of a template class, the name of the class itself
is no longer a valid template template argument. Instead, you now have
to qualify the name by its scope. For example:
template <template <class> class TT> class X {};
template <class T> class Y {
X<Y> x; // Invalid.
};
The valid code for the above example is:
X< ::Y> x; // Valid. Note that `<:' is a digraph and means `['.
*** Changes in GCC 3.3:
*** Changes in GCC 3.3:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment