Changeset 1588 for branches/GNU/src/gcc/BUGS
- Timestamp:
- Nov 3, 2004, 6:47:21 AM (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/GNU/src/gcc/BUGS
-
Property cvs2svn:cvs-rev
changed from
1.1.1.3
to1.1.1.4
r1587 r1588 319 319 return A(); 320 320 321 This problem occur ed in a number of variants; in throw321 This problem occurred in a number of variants; in throw 322 322 statements, people also frequently put the object in 323 323 parentheses. … … 377 377 C 378 378 379 Increment/decrement operator (++/--) not working as expected - a 380 [32]problem with many variations. 381 The following expressions have unpredictable results: 382 383 x[i]=++i 384 foo(i,++i) 385 i*(++i) /* special case with foo=="operator*" */ 386 std::cout << i << ++i /* foo(foo(std::cout,i),++i) */ 387 388 since the i without increment can be evaluated before or after 389 ++i. 390 391 The C and C++ standards have the notion of "sequence points". 392 Everything that happens between two sequence points happens in 393 an unspecified order, but it has to happen after the first and 394 before the second sequence point. The end of a statement and a 395 function call are examples for sequence points, whereas 396 assignments and the comma between function arguments are not. 397 398 Modifying a value twice between two sequence points as shown in 399 the following examples is even worse: 400 401 i=++i 402 foo(++i,++i) 403 (++i)*(++i) /* special case with foo=="operator*" */ 404 std::cout << ++i << ++i /* foo(foo(std::cout,++i),++i) */ 405 406 This leads to undefined behavior (i.e. the compiler can do 407 anything). 408 379 409 Casting does not work as expected when optimization is turned on. 380 410 This is often caused by a violation of aliasing rules, which … … 453 483 454 484 For some more insight into the subject, please have a look at 455 [3 2]this article.485 [33]this article. 456 486 457 487 Cannot use preprocessor directive in macro arguments. … … 528 558 There is a common misconception that the GCC developers are 529 559 responsible for GNU libc. These are in fact two entirely 530 separate projects; please check the [3 3]GNU libc web pages for560 separate projects; please check the [34]GNU libc web pages for 531 561 details. 532 562 _________________________________________________________________ … … 644 674 necessary to recompile if you have changed to a bug-fix release of the 645 675 same version of the compiler; bug-fix releases are careful to avoid 646 ABI changes. See also the [3 4]compatibility section of the GCC manual.676 ABI changes. See also the [35]compatibility section of the GCC manual. 647 677 648 678 Remark: A major release is designated by a change to the first or … … 657 687 658 688 With each release, we try to make G++ conform closer to the ISO C++ 659 standard (available at [3 5]http://www.ncits.org/cplusplus.htm). We689 standard (available at [36]http://www.ncits.org/cplusplus.htm). We 660 690 have also implemented some of the core and library defect reports 661 691 (available at 662 [3 6]http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html &663 [3 7]http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html692 [37]http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html & 693 [38]http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html 664 694 respectively). 665 695 … … 766 796 767 797 In addition to the problems listed above, the manual contains a 768 section on [3 8]Common Misunderstandings with GNU C++.798 section on [39]Common Misunderstandings with GNU C++. 769 799 770 800 References … … 801 831 30. http://gcc.gnu.org/PR323 802 832 31. http://www.validlab.com/goldberg/paper.ps 803 32. http://mail-index.NetBSD.org/tech-kern/2003/08/11/0001.html 804 33. http://www.gnu.org/software/libc/ 805 34. http://gcc.gnu.org/onlinedocs/gcc/Compatibility.html 806 35. http://www.ncits.org/cplusplus.htm 807 36. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html 808 37. http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html 809 38. http://gcc.gnu.org/onlinedocs/gcc/C---Misunderstandings.html 833 32. http://gcc.gnu.org/PR11751 834 33. http://mail-index.NetBSD.org/tech-kern/2003/08/11/0001.html 835 34. http://www.gnu.org/software/libc/ 836 35. http://gcc.gnu.org/onlinedocs/gcc/Compatibility.html 837 36. http://www.ncits.org/cplusplus.htm 838 37. http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_defects.html 839 38. http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-defects.html 840 39. http://gcc.gnu.org/onlinedocs/gcc/C---Misunderstandings.html -
Property cvs2svn:cvs-rev
changed from
Note:
See TracChangeset
for help on using the changeset viewer.