ນີ້ແມ່ນຄໍາສັ່ງ sparse ທີ່ສາມາດດໍາເນີນການໄດ້ໃນ OnWorks ຜູ້ໃຫ້ບໍລິການໂຮດຕິ້ງຟຣີໂດຍໃຊ້ຫນຶ່ງໃນຫຼາຍສະຖານີເຮັດວຽກອອນໄລນ໌ຂອງພວກເຮົາເຊັ່ນ Ubuntu Online, Fedora Online, Windows online emulator ຫຼື MAC OS emulator ອອນໄລນ໌.
ໂຄງການ:
NAME
sparse - Semantic Parser ສໍາລັບ C
ສະຫຼຸບສັງລວມ
ເລັກນ້ອຍ [ຄໍາເຕືອນ OPTIONS] ... file.c
ລາຍລະອຽດ
Sparse parses C source ແລະຊອກຫາຄວາມຜິດພາດ, ຜະລິດຄໍາເຕືອນກ່ຽວກັບຄວາມຜິດພາດມາດຕະຖານ.
Sparse ຍອມຮັບທາງເລືອກໃນການຄວບຄຸມຊຸດຂອງຄໍາເຕືອນທີ່ຈະສ້າງ. ເພື່ອເປີດການແຈ້ງເຕືອນ
Sparse ບໍ່ມີບັນຫາໂດຍຄ່າເລີ່ມຕົ້ນ, ໃຊ້ຕົວເລືອກເຕືອນທີ່ສອດຄ້ອງກັນ - ບາງສິ່ງບາງຢ່າງ.
sparse ອອກບາງຄໍາເຕືອນໂດຍຄ່າເລີ່ມຕົ້ນ; ເພື່ອປິດການເຕືອນໄພເຫຼົ່ານັ້ນ, ຜ່ານການປະຕິເສດຂອງ
ທາງເລືອກການເຕືອນໄພທີ່ກ່ຽວຂ້ອງ, -Wno-ບາງສິ່ງບາງຢ່າງ.
ຄໍາເຕືອນ OPTIONS
-Wsparse-ທັງໝົດ
ເປີດການເຕືອນໄພເລັກນ້ອຍທັງໝົດ, ຍົກເວັ້ນສຳລັບສິ່ງທີ່ປິດການໃຊ້ງານຢ່າງຊັດເຈນ
-Wno-ບາງສິ່ງບາງຢ່າງ.
-Waddress-ຊ່ອງ
ເຕືອນກ່ຽວກັບລະຫັດທີ່ປະສົມຕົວຊີ້ໄປຫາທີ່ຢູ່ຕ່າງກັນ.
Sparse ອະນຸຍາດໃຫ້ມີຄຸນສົມບັດຂະຫຍາຍ __attribute__((address_space(num))) on
pointers, ເຊິ່ງກໍານົດເປົ້າຫມາຍ pointer ໃນພື້ນທີ່ທີ່ຢູ່ num (ຄົງທີ່
ຈຳນວນເຕັມ). ກັບ -Waddress-ຊ່ອງ, Sparse ປະຕິບັດຕົວຊີ້ກັບປະເພດເປົ້າຫມາຍທີ່ຄືກັນ
ແຕ່ສະຖານທີ່ທີ່ຢູ່ທີ່ແຕກຕ່າງກັນເປັນປະເພດທີ່ແຕກຕ່າງກັນ. ເພື່ອ override ຄໍາເຕືອນນີ້, ເຊັ່ນ:
ສໍາລັບຟັງຊັນທີ່ປ່ຽນຕົວຊີ້ລະຫວ່າງທີ່ຢູ່, ໃຫ້ໃຊ້ປະເພດນັ້ນ
ປະກອບມີ __ຄຸນລັກສະນະ__((ບັງຄັບ)).
ເບົາບາງອອກຄໍາເຕືອນເຫຼົ່ານີ້ຕາມຄ່າເລີ່ມຕົ້ນ. ເພື່ອປິດພວກມັນ, ໃຫ້ໃຊ້ -Wno-address-space.
-Wbitwise
ເຕືອນກ່ຽວກັບການດໍາເນີນການທີ່ບໍ່ສະຫນັບສະຫນູນຫຼືພິມບໍ່ກົງກັນກັບປະເພດຈໍານວນຈໍາກັດ.
Sparse ສະຫນັບສະຫນູນຄຸນລັກສະນະຂະຫຍາຍ, __ຄຸນລັກສະນະ__((ບິດບິດ)), ເຊິ່ງສ້າງ
ປະເພດຈຳນວນເຕັມທີ່ຈຳກັດໃໝ່ຈາກປະເພດຈຳນວນເຕັມພື້ນຖານ, ແຕກຕ່າງຈາກຖານ
ປະເພດ integer ແລະຈາກປະເພດ integer ຈໍາກັດອື່ນໆທີ່ບໍ່ໄດ້ປະກາດໃນອັນດຽວກັນ
ຖະແຫຼງການ ຫຼື ພິມປະເພດ. ຕົວຢ່າງ, ນີ້ອະນຸຍາດໃຫ້ໂຄງການສ້າງ ພິມປະເພດs for
ປະເພດຈໍານວນເຕັມທີ່ມີ endianness ສະເພາະ. ກັບ -Wbitwise, ກະແຈກກະຈາຍຈະເຕືອນກ່ຽວກັບການໃດໆ
ການນໍາໃຊ້ປະເພດຈໍາກັດໃນການດໍາເນີນງານເລກຄະນິດສາດນອກຈາກການດໍາເນີນການ bitwise,
ແລະການແປງໃດໆຂອງປະເພດທີ່ຖືກຈໍາກັດເປັນປະເພດອື່ນ, ຍົກເວັ້ນໂດຍຜ່ານສຽງໂຫວດທັງຫມົດ
ປະກອບມີ __ຄຸນລັກສະນະ__((ບັງຄັບ)).
__bitwise ຈົບລົງດ້ວຍການເປັນ "ການແຍກຈຳນວນເຕັມທີ່ແຂງແຮງກວ່າ". ອັນນັ້ນບໍ່ອະນຸຍາດໃຫ້ເຈົ້າ
ເພື່ອປະສົມກັບຈຳນວນບໍ່ບິດບິດ, ສະນັ້ນດຽວນີ້ມັນຍາກກວ່າທີ່ຈະສູນເສຍປະເພດໂດຍ
ຜິດພາດ.
__bitwise ແມ່ນສໍາລັບ *ປະເພດທີ່ເປັນເອກະລັກ* ທີ່ບໍ່ສາມາດປະສົມກັບປະເພດອື່ນໆ, ແລະນັ້ນ
ທ່ານບໍ່ຕ້ອງການພຽງແຕ່ໃຊ້ເປັນຈໍານວນເຕັມແບບສຸ່ມ (ແຕ່ຈໍານວນເຕັມ 0 ແມ່ນພິເສດ, ເຖິງແມ່ນວ່າ,
ແລະໄດ້ຮັບການຍອມຮັບຢ່າງງຽບໆ iirc - ມັນຄ້າຍຄືກັບ "NULL" ສໍາລັບຕົວຊີ້). ດັ່ງນັ້ນ
"gfp_t" ຫຼືປະເພດ "endianness ປອດໄພ" ຈະເປັນ __bitwise: ທ່ານພຽງແຕ່ສາມາດດໍາເນີນການໄດ້.
ພວກເຂົາໂດຍການດໍາເນີນການສະເພາະທີ່ຮູ້ກ່ຽວກັບ * ປະເພດນັ້ນ * ໂດຍສະເພາະ.
ໂດຍທົ່ວໄປ, ທ່ານຕ້ອງການ bitwise ຖ້າຫາກວ່າທ່ານກໍາລັງຊອກຫາຄວາມປອດໄພປະເພດ. Sparse ບໍ່
ອອກຄໍາເຕືອນເຫຼົ່ານີ້ໂດຍຄ່າເລີ່ມຕົ້ນ.
-Wcast-to-as
ເຕືອນກ່ຽວກັບການຄາສທທີ່ເພີ່ມພື້ນທີ່ທີ່ຢູ່ໃຫ້ກັບປະເພດຕົວຊີ້.
ນັກສະແດງທີ່ປະກອບມີ __ຄຸນລັກສະນະ__((ບັງຄັບ)) ຈະສະກັດກັ້ນການເຕືອນໄພນີ້.
Sparse ບໍ່ອອກຄໍາເຕືອນເຫຼົ່ານີ້ຕາມຄ່າເລີ່ມຕົ້ນ.
-Wcast-ຫຍໍ້
ເຕືອນກ່ຽວກັບການຄາສທທີ່ຕັດຄ່າຄົງທີ່.
ເບົາບາງອອກຄໍາເຕືອນເຫຼົ່ານີ້ຕາມຄ່າເລີ່ມຕົ້ນ. ເພື່ອປິດພວກມັນ, ໃຫ້ໃຊ້ -Wno-cast-truncate.
-Wcontext
ເຕືອນກ່ຽວກັບຄວາມຜິດພາດທີ່ອາດຈະເກີດຂຶ້ນໃນ synchronization ຫຼືສະພາບການ delimited ອື່ນໆ.
Sparse ສະຫນັບສະຫນູນວິທີການກໍານົດຫນ້າທີ່ຫຼືຄໍາຖະແຫຼງທີ່ກໍານົດຂອບເຂດ
ສະພາບການ, ເຊັ່ນ: synchronization. ຟັງຊັນທີ່ມີຄຸນສົມບັດຂະຫຍາຍ
__ຄຸນລັກສະນະ__((ບໍລິບົດ(ການສະແດງອອກ,in_context,out_context)) ຮຽກຮ້ອງໃຫ້ມີສະພາບການ
ການສະແດງອອກ (ຕົວຢ່າງ, lock) ເພື່ອໃຫ້ມີມູນຄ່າ in_context (ຄົງທີ່
nonnegative integer) ເມື່ອຖືກເອີ້ນ, ແລະກັບຄືນດ້ວຍຄ່າ out_context (ຄົງທີ່
nonegative integer). ສໍາລັບ APIs ທີ່ກໍານົດຜ່ານ macros, ໃຊ້ແບບຟອມຄໍາຖະແຫຼງການ
__ສະພາບການ__(ການສະແດງອອກ,in_value,out_value) ຢູ່ໃນຮ່າງກາຍຂອງມະຫາພາກ.
ກັບ -Wcontext Sparse ຈະເຕືອນເມື່ອມັນເຫັນຫນ້າທີ່ປ່ຽນແປງສະພາບການໂດຍບໍ່ມີ
ຊີ້ບອກນີ້ດ້ວຍ a context ຄຸນລັກສະນະ, ໂດຍການຫຼຸດຜ່ອນສະພາບການຂ້າງລຸ່ມນີ້ສູນ
(ເຊັ່ນ: ໂດຍການປ່ອຍ lock ໂດຍບໍ່ມີການໄດ້ຮັບມັນ), ຫຼືກັບຄືນມາດ້ວຍການປ່ຽນແປງ
ສະພາບການ (ເຊັ່ນ: ການໄດ້ຮັບ lock ໂດຍບໍ່ມີການປ່ອຍມັນ). ກະແຈກກະຈາຍຍັງຈະເຕືອນ
ກ່ຽວກັບບລັອກຂອງລະຫັດທີ່ອາດຈະດໍາເນີນການກັບສະພາບການທີ່ແຕກຕ່າງກັນ.
ເບົາບາງອອກຄໍາເຕືອນເຫຼົ່ານີ້ຕາມຄ່າເລີ່ມຕົ້ນ. ເພື່ອປິດພວກມັນ, ໃຫ້ໃຊ້ -Wno-context.
-Wdecl ເຕືອນກ່ຽວກັບການບໍ່ມີໄຟຟ້າສະຖິດ ຕົວແປຫຼືການກໍານົດຫນ້າທີ່ທີ່ບໍ່ມີກ່ອນຫນ້ານີ້
ການປະກາດ.
ສັນຍາລັກສ່ວນຕົວ (ຫນ້າທີ່ແລະຕົວປ່ຽນແປງ) ພາຍໃນຂອງໄຟລ໌ທີ່ໃຫ້ມາຄວນຈະ
ການນໍາໃຊ້ ໄຟຟ້າສະຖິດ, ເພື່ອອະນຸຍາດໃຫ້ການເພີ່ມປະສິດທິພາບການລວບລວມເພີ່ມເຕີມ, ອະນຸຍາດໃຫ້ກວດພົບສິ່ງທີ່ບໍ່ໄດ້ໃຊ້
ສັນຍາລັກ, ແລະປ້ອງກັນບໍ່ໃຫ້ລະຫັດອື່ນໆຈາກການອີງໃສ່ສັນຍາລັກພາຍໃນເຫຼົ່ານີ້. ສາທາລະນະ
ສັນຍາລັກທີ່ໃຊ້ໂດຍໄຟລ໌ແຫຼ່ງອື່ນໆຈະຈໍາເປັນຕ້ອງມີການປະກາດທີ່ສາມາດເບິ່ງເຫັນໄດ້
ໄຟລ໌ຕົ້ນສະບັບ, ເຊັ່ນໃນໄຟລ໌ຫົວ. ການປະກາດທັງໝົດຄວນຕົກຢູ່ໃນອັນໜຶ່ງ
ສອງປະເພດນີ້. ດັ່ງນັ້ນ, ກັບ -Wdecl, Sparse ເຕືອນກ່ຽວກັບຄໍານິຍາມຂອງສັນຍາລັກໃດໆ
ກັບທັງສອງ ໄຟຟ້າສະຖິດ ຫຼືການປະກາດ. ເພື່ອແກ້ໄຂຄໍາເຕືອນນີ້, ປະກາດສ່ວນຕົວ
ສັນຍາລັກ ໄຟຟ້າສະຖິດ, ແລະໃຫ້ແນ່ໃຈວ່າໄຟລ໌ທີ່ກໍານົດສັນຍາລັກສາທາລະນະມີສັນຍາລັກ
ການປະກາດທີ່ມີຢູ່ກ່ອນ (ເຊັ່ນ: ໂດຍການລວມເອົາໄຟລ໌ຫົວຂໍ້ທີ່ເຫມາະສົມ).
ເບົາບາງອອກຄໍາເຕືອນເຫຼົ່ານີ້ຕາມຄ່າເລີ່ມຕົ້ນ. ເພື່ອປິດພວກມັນ, ໃຫ້ໃຊ້ -Wno-decl.
-Wdeclaration ຫຼັງຈາກການຖະແຫຼງການ
ເຕືອນກ່ຽວກັບການປະກາດທີ່ບໍ່ໄດ້ຢູ່ໃນຈຸດເລີ່ມຕົ້ນຂອງຕັນ.
ການປະກາດເຫຼົ່ານີ້ແມ່ນອະນຸຍາດໃຫ້ຢູ່ໃນ C99 ແຕ່ບໍ່ແມ່ນຢູ່ໃນ C89.
Sparse ອອກຄໍາເຕືອນເຫຼົ່ານີ້ໂດຍຄ່າເລີ່ມຕົ້ນພຽງແຕ່ເມື່ອພາສາ C ເປັນ C89 (ie -ansi
ຫຼື -std=c89). ເພື່ອປິດພວກມັນ, ໃຫ້ໃຊ້ -Wno-declaration-ຫຼັງຈາກຖະແຫຼງການ.
-Wdefault-bitfield-sign
ເຕືອນກ່ຽວກັບ bitfield ທີ່ບໍ່ມີການລົງນາມຢ່າງຈະແຈ້ງ.
Bitfields ບໍ່ມີມາດຕະຖານທີ່ລະບຸໄວ້ໃນຕອນຕົ້ນ. (C99 6.7.2) A bitfield
ໂດຍບໍ່ມີການຊັດເຈນ ເຊັນເຂົ້າ or ລົງນາມ ສ້າງບັນຫາການເຄື່ອນທີ່ສໍາລັບຊອບແວ
ທີ່ຂຶ້ນກັບຂອບເຂດຂອງຄ່າທີ່ມີຢູ່. ເພື່ອແກ້ໄຂບັນຫານີ້, ໃຫ້ລະບຸ bitfield
ພິມເປັນ ເຊັນເຂົ້າ or ລົງນາມ ຢ່າງຈະແຈ້ງ.
Sparse ບໍ່ອອກຄໍາເຕືອນເຫຼົ່ານີ້ຕາມຄ່າເລີ່ມຕົ້ນ.
-Wdesignated-init
ເຕືອນກ່ຽວກັບການເລີ່ມຕົ້ນຕໍາແຫນ່ງຂອງໂຄງສ້າງທີ່ຖືກຫມາຍວ່າຕ້ອງການກໍານົດ
ຕົວເລີ່ມຕົ້ນ.
Sparse ອະນຸຍາດໃຫ້ມີຄຸນລັກສະນະ __attribute__((designated_init)) ເຊິ່ງໝາຍເຖິງໂຄງສ້າງເປັນ
ຮຽກຮ້ອງໃຫ້ມີການກໍານົດເບື້ອງຕົ້ນ. Sparse ຈະເຕືອນກ່ຽວກັບຕໍາແຫນ່ງ
ການເລີ່ມຕົ້ນຂອງຕົວແປໂຄງສ້າງ ຫຼືຕົວແປໂຄງສ້າງຂອງປະເພດທີ່ມີອັນນີ້
attribute
ການຮຽກຮ້ອງໃຫ້ມີການກໍານົດເບື້ອງຕົ້ນສໍາລັບປະເພດໂຄງສ້າງສະເພາະໃດຫນຶ່ງຈະ insulate ລະຫັດ
ການນໍາໃຊ້ໂຄງສ້າງປະເພດນັ້ນຈາກການປ່ຽນແປງຮູບແບບຂອງປະເພດ, ຫຼີກເວັ້ນການຈໍາເປັນ
ປ່ຽນຕົວເລີ່ມຕົ້ນສຳລັບປະເພດນັ້ນ ເວັ້ນເສຍແຕ່ວ່າພວກມັນຈະເລີ່ມການລຶບອອກ ຫຼື ບໍ່ເຂົ້າກັນໄດ້
ການປ່ຽນແປງພາກສະຫນາມ.
ຕົວຢ່າງທົ່ວໄປຂອງໂຄງສ້າງປະເພດນີ້ປະກອບມີການລວບລວມຕົວຊີ້ຟັງຊັນສໍາລັບ
ການປະຕິບັດຂອງຊັ້ນຂອງການດໍາເນີນງານທີ່ກ່ຽວຂ້ອງ, ເຊິ່ງຄ່າເລີ່ມຕົ້ນ NULL
ສໍາລັບພາກສະຫນາມທີ່ບໍ່ໄດ້ກ່າວມາໃນການເລີ່ມຕົ້ນທີ່ກໍານົດໄວ້ຈະຊີ້ບອກໄດ້ຢ່າງຖືກຕ້ອງ
ຂາດການດໍາເນີນການນັ້ນ.
ເບົາບາງອອກຄໍາເຕືອນເຫຼົ່ານີ້ຕາມຄ່າເລີ່ມຕົ້ນ. ເພື່ອປິດພວກມັນ, ໃຫ້ໃຊ້
-Wno-designated-init.
-Wdo- ໃນຂະນະທີ່
ເຕືອນກ່ຽວກັບ loops do-while ທີ່ບໍ່ delimit the loop body with braces.
Sparse ບໍ່ອອກຄໍາເຕືອນເຫຼົ່ານີ້ຕາມຄ່າເລີ່ມຕົ້ນ.
-Wenum ບໍ່ກົງກັນ
ເຕືອນກ່ຽວກັບການໃຊ້ການສະແດງອອກທີ່ບໍ່ຖືກຕ້ອງ enum ພິມເມື່ອເລີ່ມຕົ້ນ
ອື່ນ enum ປະເພດ, ມອບຫມາຍໃຫ້ຄົນອື່ນ enum ປະເພດ, ຫຼືຖ່າຍທອດການໂຕ້ຖຽງກັບ a
ຟັງຊັນທີ່ຄາດຫວັງອີກອັນຫນຶ່ງ enum ປະເພດ
ເບົາບາງອອກຄໍາເຕືອນເຫຼົ່ານີ້ຕາມຄ່າເລີ່ມຕົ້ນ. ເພື່ອປິດພວກມັນ, ໃຫ້ໃຊ້ -wno-enum-mismatch.
-Winit-cstring
ເຕືອນກ່ຽວກັບການເລີ່ມຕົ້ນຂອງ char array ທີ່ມີສາຍ C ຄົງທີ່ຍາວເກີນໄປ.
ຖ້າຂະຫນາດຂອງ char array ແລະຄວາມຍາວຂອງ string ແມ່ນຄືກັນ, ບໍ່ມີ
space ສໍາລັບ nul char ສຸດທ້າຍຂອງ string ໃນ array:
char s[3] = "abc";
ຖ້າ array ຖືກນໍາໃຊ້ເປັນ byte array, ບໍ່ແມ່ນ C string, ການເຕືອນນີ້ແມ່ນພຽງແຕ່ສິ່ງລົບກວນ.
ຢ່າງໃດກໍຕາມ, ຖ້າ array ຖືກສົ່ງກັບຫນ້າທີ່ຈັດການກັບ C string ເຊັ່ນ printf(%s)
ແລະ strcmp, ມັນອາດຈະເຮັດໃຫ້ເກີດບັນຫາ.
Sparse ບໍ່ອອກຄໍາເຕືອນເຫຼົ່ານີ້ຕາມຄ່າເລີ່ມຕົ້ນ.
-Wnon-pointer-null
ເຕືອນກ່ຽວກັບການໃຊ້ 0 ເປັນຕົວຊີ້ NULL.
0 ມີປະເພດຈໍານວນເຕັມ. NULL ມີປະເພດຕົວຊີ້.
ເບົາບາງອອກຄໍາເຕືອນເຫຼົ່ານີ້ຕາມຄ່າເລີ່ມຕົ້ນ. ເພື່ອປິດພວກມັນ, ໃຫ້ໃຊ້
-Wno-ບໍ່ແມ່ນຕົວຊີ້-null.
-Wold-initializer
ເຕືອນກ່ຽວກັບການໃຊ້ syntax ກ່ອນ C99 GCC ສໍາລັບຕົວກໍານົດເບື້ອງຕົ້ນ.
C99 ສະໜອງ syntax ມາດຕະຖານສຳລັບຊ່ອງຂໍ້ມູນທີ່ກຳນົດໄວ້ໃນ ໂຄງສ້າງ or ສະຫະພາບ
ຕົວເລີ່ມຕົ້ນ:
struct structname var = { .field = ຄ່າ };
GCC ຍັງມີ syntax ເກົ່າ, ບໍ່ແມ່ນມາດຕະຖານສໍາລັບຕົວກໍານົດເບື້ອງຕົ້ນທີ່ predates
C99:
struct structname var = { field: value };
Sparse ຈະເຕືອນກ່ຽວກັບການນໍາໃຊ້ syntax ທີ່ບໍ່ແມ່ນມາດຕະຖານຂອງ GCC ສໍາລັບການກໍານົດ
ຕົວເລີ່ມຕົ້ນ. ເພື່ອແກ້ໄຂຄໍາເຕືອນນີ້, ປ່ຽນຕົວກໍານົດເບື້ອງຕົ້ນທີ່ກໍານົດເພື່ອໃຊ້
ມາດຕະຖານ C99 syntax.
ເບົາບາງອອກຄໍາເຕືອນເຫຼົ່ານີ້ຕາມຄ່າເລີ່ມຕົ້ນ. ເພື່ອປິດພວກມັນ, ໃຫ້ໃຊ້
-Wno-old-initializer.
-wone-bit-signed-bitfield
ເຕືອນກ່ຽວກັບການຫນຶ່ງບິດ ເຊັນເຂົ້າ bitfields.
ໜ້ອຍໜຶ່ງ ເຊັນເຂົ້າ bitfield ສາມາດມີພຽງແຕ່ຄ່າ 0 ແລະ -1, ຫຼືກັບບາງ compilers
ພຽງແຕ່ 0; ນີ້ສົ່ງຜົນໃຫ້ພຶດຕິກໍາທີ່ບໍ່ຄາດຄິດສໍາລັບໂຄງການທີ່ຄາດຫວັງວ່າຄວາມສາມາດ
ເພື່ອເກັບຮັກສາ 0 ແລະ 1.
ເບົາບາງອອກຄໍາເຕືອນເຫຼົ່ານີ້ຕາມຄ່າເລີ່ມຕົ້ນ. ເພື່ອປິດພວກມັນ, ໃຫ້ໃຊ້
-Wno-one-bit-signed-bitfield.
-Wparen-string
ເຕືອນກ່ຽວກັບການໃຊ້ string ວົງເລັບເພື່ອເລີ່ມຕົ້ນ array.
ມາດຕະຖານ C syntax ບໍ່ອະນຸຍາດໃຫ້ໃຊ້ສະຕຣິງວົງເລັບເປັນຕົວຕັ້ງຕົ້ນຂອງ array.
GCC ອະນຸຍາດໃຫ້ syntax ນີ້ເປັນສ່ວນຂະຫຍາຍ. ກັບ -Wparen-string, ກະແຈກກະຈາຍຈະເຕືອນ
ກ່ຽວກັບ syntax ນີ້.
Sparse ບໍ່ອອກຄໍາເຕືອນເຫຼົ່ານີ້ຕາມຄ່າເລີ່ມຕົ້ນ.
-Wptr-subtraction-blows
ເຕືອນເມື່ອລົບສອງຕົວຊີ້ໄປຫາປະເພດທີ່ມີຂະໜາດທີ່ບໍ່ແມ່ນກຳລັງສອງ.
ການຫັກສອງຕົວຊີ້ໄປຫາປະເພດໃດນຶ່ງໃຫ້ຄວາມແຕກຕ່າງໃນແງ່ຂອງຕົວເລກ
ຂອງລາຍການຂອງປະເພດນັ້ນ. ເພື່ອສ້າງມູນຄ່ານີ້, ປົກກະຕິແລ້ວ compilers ຈະຕ້ອງ
ແບ່ງຄວາມແຕກຕ່າງໂດຍຂະຫນາດຂອງປະເພດ, ການດໍາເນີນງານທີ່ມີລາຄາແພງ
ສໍາລັບຂະຫນາດອື່ນນອກຈາກອໍານາດຂອງສອງ.
ລະຫັດທີ່ຂຽນໂດຍໃຊ້ຕົວລົບຕົວຊີ້ມັກຈະໃຊ້ວິທີອື່ນແທນ, ເຊັ່ນ
ເປັນ array indexing with an explicit index array variable, which may allow compilers
ເພື່ອສ້າງລະຫັດທີ່ມີປະສິດທິພາບຫຼາຍຂຶ້ນ.
Sparse ບໍ່ອອກຄໍາເຕືອນເຫຼົ່ານີ້ຕາມຄ່າເລີ່ມຕົ້ນ.
-Wreturn-void
ເຕືອນຖ້າຟັງຊັນທີ່ມີປະເພດກັບຄືນ void ສົ່ງຄືນການສະແດງອອກ void.
C99 ອະນຸຍາດໃຫ້ນີ້, ແລະໃນບາງກໍລະນີນີ້ອະນຸຍາດໃຫ້ສໍາລັບລະຫັດທົ່ວໄປຫຼາຍໃນ macro
ທີ່ໃຊ້ typeof ຫຼືເອົາປະເພດເປັນ macro argument. ຢ່າງໃດກໍຕາມ, ບາງໂຄງການ
ພິຈາລະນາຮູບແບບທີ່ບໍ່ດີນີ້, ແລະໂຄງການເຫຼົ່ານັ້ນສາມາດນໍາໃຊ້ໄດ້ -Wreturn-void ເພື່ອໃຫ້ໄດ້ຮັບຄໍາເຕືອນ
ກ່ຽວກັບມັນ.
Sparse ບໍ່ອອກຄໍາເຕືອນເຫຼົ່ານີ້ຕາມຄ່າເລີ່ມຕົ້ນ.
- ເງົາ
ເຕືອນໃນເວລາທີ່ປະກາດສັນຍາລັກທີ່ shadows ການປະກາດທີ່ມີຊື່ດຽວກັນໃນ an
ຂອບເຂດນອກ.
ການປະກາດດັ່ງກ່າວສາມາດນໍາໄປສູ່ລະຫັດທີ່ມີຄວາມຜິດພາດ.
Sparse ບໍ່ອອກຄໍາເຕືອນເຫຼົ່ານີ້ຕາມຄ່າເລີ່ມຕົ້ນ.
-Wtransparent-ສະຫະພັນ
ເຕືອນກ່ຽວກັບການປະກາດໃດໆໂດຍໃຊ້ສ່ວນຂະຫຍາຍ GCC
__ຄຸນລັກສະນະ__((transparent_union)).
ເບົາບາງອອກຄໍາເຕືອນເຫຼົ່ານີ້ຕາມຄ່າເລີ່ມຕົ້ນ. ເພື່ອປິດພວກມັນ, ໃຫ້ໃຊ້
-Wno-ໂປ່ງໃສ-ສະຫະພັນ.
-Wtypesign
ເຕືອນເມື່ອປ່ຽນຕົວຊີ້ໄປຫາປະເພດຈຳນວນເຕັມເປັນຕົວຊີ້ໄປຫາປະເພດຈຳນວນເຕັມ
ມີການລົງນາມທີ່ແຕກຕ່າງກັນ.
Sparse ບໍ່ອອກຄໍາເຕືອນເຫຼົ່ານີ້ຕາມຄ່າເລີ່ມຕົ້ນ.
-Wundef
ເຕືອນກ່ຽວກັບເງື່ອນໄຂ preprocessor ທີ່ໃຊ້ຄ່າຂອງ undefined
ສັນຍາລັກເຄື່ອງປະມວນຜົນກ່ອນ.
ມາດຕະຖານ C (C99 6.10.1) ອະນຸຍາດໃຫ້ໃຊ້ຄ່າຂອງສັນຍາລັກເຄື່ອງປະມວນຜົນກ່ອນກຳນົດ.
ໃນເງື່ອນໄຂ preprocessor, ແລະລະບຸວ່າມັນມີມູນຄ່າ 0. ແນວໃດກໍ່ຕາມ,
ພຶດຕິກໍານີ້ສາມາດນໍາໄປສູ່ຄວາມຜິດພາດເລັກນ້ອຍ.
Sparse ບໍ່ອອກຄໍາເຕືອນເຫຼົ່ານີ້ຕາມຄ່າເລີ່ມຕົ້ນ.
MISC OPTIONS
-gcc-base-dir dir
ຊອກຫາສ່ວນຫົວຂອງລະບົບທີ່ compiler ສະໜອງໃຫ້ໃນ dir/include/ ແລະ dir/include-fixed/.
-multiarch-dir dir
ຊອກຫາສ່ວນຫົວຂອງລະບົບຢູ່ໃນໄດເຣັກທໍຣີຍ່ອຍຂອງ multiarch dir. ໄດ້ dir ຊື່ຈະ
ໂດຍປົກກະຕິເອົາຮູບແບບຂອງ GNU triplet ປົກກະຕິຂອງເປົ້າຫມາຍ. (ຕົວຢ່າງ: i386-linux-
gnu).
ອື່ນໆ OPTIONS
-ftabstop=WIDTH
ກໍານົດໄລຍະຫ່າງລະຫວ່າງແຖບຢຸດ. ອັນນີ້ຊ່ວຍໃຫ້ການລາຍງານຫຍໍ້ຂອງຖັນທີ່ຖືກຕ້ອງ
ຕົວເລກໃນຄໍາເຕືອນຫຼືຄວາມຜິດພາດ. ຖ້າຄ່າໜ້ອຍກວ່າ 1 ຫຼືໃຫຍ່ກວ່າ 100,
ທາງເລືອກແມ່ນຖືກລະເລີຍ. ຄ່າເລີ່ມຕົ້ນແມ່ນ 8.
ໃຊ້ອອນໄລນ໌ແບບກະແຈກກະຈາຍໂດຍໃຊ້ບໍລິການ onworks.net