aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeffrey A Law <law@cygnus.com>1998-03-04 23:03:14 +0000
committerJeff Law <law@gcc.gnu.org>1998-03-04 16:03:14 -0700
commitcb37ce6295e5676c1693aafae9b5c7a63c73a6d4 (patch)
treee3072e4dbf52a5ae003ad0408332afc974711d6d
parent68ff1582a9b995b7f4f41b226e6be544fe3fe03a (diff)
downloadgcc-cb37ce6295e5676c1693aafae9b5c7a63c73a6d4.zip
gcc-cb37ce6295e5676c1693aafae9b5c7a63c73a6d4.tar.gz
gcc-cb37ce6295e5676c1693aafae9b5c7a63c73a6d4.tar.bz2
cccp.c (main): Avoid undefined behavior when setting pend_includes and pend_files.
* cccp.c (main): Avoid undefined behavior when setting pend_includes and pend_files. From-SVN: r18409
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/cccp.c8
2 files changed, 11 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3e95a5a..7e345f6 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+Thu Mar 5 00:05:40 1998 Jeffrey A Law (law@cygnus.com)
+
+ * cccp.c (main): Avoid undefined behavior when setting pend_includes
+ and pend_files.
+
Wed Mar 4 21:58:25 1998 Franz Sirl <franz.sirl-kernel@lauterbach.com>
* rs6000/linux.h: don't define DEFAULT_VTABLE_THUNKS to 1 if
diff --git a/gcc/cccp.c b/gcc/cccp.c
index f8877be..6616f2c 100644
--- a/gcc/cccp.c
+++ b/gcc/cccp.c
@@ -1301,16 +1301,20 @@ main (argc, argv)
case 'i':
if (!strcmp (argv[i], "-include")) {
+ int temp = i++;
+
if (i + 1 == argc)
fatal ("Filename missing after `-include' option");
else
- simplify_filename (pend_includes[i] = argv[++i]);
+ simplify_filename (pend_includes[temp] = argv[temp]);
}
if (!strcmp (argv[i], "-imacros")) {
+ int temp = i++;
+
if (i + 1 == argc)
fatal ("Filename missing after `-imacros' option");
else
- simplify_filename (pend_files[i] = argv[++i]);
+ simplify_filename (pend_files[temp] = argv[temp]);
}
if (!strcmp (argv[i], "-iprefix")) {
if (i + 1 == argc)