comparison gcc/config/darwin-c.c @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
comparison
equal deleted inserted replaced
111:04ced10e8804 131:84e7813d76e9
1 /* Darwin support needed only by C/C++ frontends. 1 /* Darwin support needed only by C/C++ frontends.
2 Copyright (C) 2001-2017 Free Software Foundation, Inc. 2 Copyright (C) 2001-2018 Free Software Foundation, Inc.
3 Contributed by Apple Computer Inc. 3 Contributed by Apple Computer Inc.
4 4
5 This file is part of GCC. 5 This file is part of GCC.
6 6
7 GCC is free software; you can redistribute it and/or modify 7 GCC is free software; you can redistribute it and/or modify
282 if (fast_dir && dir != fast_dir) 282 if (fast_dir && dir != fast_dir)
283 return 0; 283 return 0;
284 284
285 frname = XNEWVEC (char, strlen (fname) + dir->len + 2 285 frname = XNEWVEC (char, strlen (fname) + dir->len + 2
286 + strlen(".framework/") + strlen("PrivateHeaders")); 286 + strlen(".framework/") + strlen("PrivateHeaders"));
287 strncpy (&frname[0], dir->name, dir->len); 287 memcpy (&frname[0], dir->name, dir->len);
288 frname_len = dir->len; 288 frname_len = dir->len;
289 if (frname_len && frname[frname_len-1] != '/') 289 if (frname_len && frname[frname_len-1] != '/')
290 frname[frname_len++] = '/'; 290 frname[frname_len++] = '/';
291 strncpy (&frname[frname_len], fname, fname_len); 291 memcpy (&frname[frname_len], fname, fname_len);
292 frname_len += fname_len; 292 frname_len += fname_len;
293 strncpy (&frname[frname_len], ".framework/", strlen (".framework/")); 293 memcpy (&frname[frname_len], ".framework/", strlen (".framework/"));
294 frname_len += strlen (".framework/"); 294 frname_len += strlen (".framework/");
295 295
296 if (fast_dir == 0) 296 if (fast_dir == 0)
297 { 297 {
298 frname[frname_len-1] = 0; 298 frname[frname_len-1] = 0;
314 } 314 }
315 315
316 /* Append framework_header_dirs and header file name */ 316 /* Append framework_header_dirs and header file name */
317 for (i = 0; framework_header_dirs[i].dirName; i++) 317 for (i = 0; framework_header_dirs[i].dirName; i++)
318 { 318 {
319 strncpy (&frname[frname_len], 319 memcpy (&frname[frname_len],
320 framework_header_dirs[i].dirName, 320 framework_header_dirs[i].dirName,
321 framework_header_dirs[i].dirNameLen); 321 framework_header_dirs[i].dirNameLen);
322 strcpy (&frname[frname_len + framework_header_dirs[i].dirNameLen], 322 strcpy (&frname[frname_len + framework_header_dirs[i].dirNameLen],
323 &fname[fname_len]); 323 &fname[fname_len]);
324 324
376 376
377 bufptr += strlen (dot_framework); 377 bufptr += strlen (dot_framework);
378 378
379 sfrname_len = bufptr - pname; 379 sfrname_len = bufptr - pname;
380 380
381 strncpy (&sfrname[0], pname, sfrname_len); 381 memcpy (&sfrname[0], pname, sfrname_len);
382 382
383 strncpy (&sfrname[sfrname_len], "Frameworks/", strlen ("Frameworks/")); 383 memcpy (&sfrname[sfrname_len], "Frameworks/", strlen ("Frameworks/"));
384 sfrname_len += strlen("Frameworks/"); 384 sfrname_len += strlen("Frameworks/");
385 385
386 strncpy (&sfrname[sfrname_len], fname, fname_len); 386 memcpy (&sfrname[sfrname_len], fname, fname_len);
387 sfrname_len += fname_len; 387 sfrname_len += fname_len;
388 388
389 strncpy (&sfrname[sfrname_len], ".framework/", strlen (".framework/")); 389 memcpy (&sfrname[sfrname_len], ".framework/", strlen (".framework/"));
390 sfrname_len += strlen (".framework/"); 390 sfrname_len += strlen (".framework/");
391 391
392 /* Append framework_header_dirs and header file name */ 392 /* Append framework_header_dirs and header file name */
393 for (i = 0; framework_header_dirs[i].dirName; i++) 393 for (i = 0; framework_header_dirs[i].dirName; i++)
394 { 394 {
395 strncpy (&sfrname[sfrname_len], 395 memcpy (&sfrname[sfrname_len],
396 framework_header_dirs[i].dirName, 396 framework_header_dirs[i].dirName,
397 framework_header_dirs[i].dirNameLen); 397 framework_header_dirs[i].dirNameLen);
398 strcpy (&sfrname[sfrname_len + framework_header_dirs[i].dirNameLen], 398 strcpy (&sfrname[sfrname_len + framework_header_dirs[i].dirNameLen],
399 &fname[fname_len]); 399 &fname[fname_len]);
400 400
401 if (stat (sfrname, &st) == 0) 401 if (stat (sfrname, &st) == 0)
402 { 402 {